Result: reproduced and isolated. Closing.
A URL of 104 characters or more, written into a body through the GitHub MCP, is stored wrapped in a double-backtick code span. 103 and below store verbatim.
| Variable |
Finding |
| Length |
104 is the boundary — 96/98/100/101/102/103 clean, 104/106/108/128/148/168/188 wrapped |
| Host |
Irrelevant — example.com at 184 wrapped, same as docs.github.com |
| Construct |
Irrelevant — markdown link destination, bare URL and autolink all wrapped; the autolink's </> were additionally HTML-escaped to </> |
| Surface |
Not PR-specific — reproduced here on an issue body (issue_write), and originally seen on a PR description (update_pull_request) |
The span's closing backticks land inside the link's parens around 104–130 but outside them (swallowing the )) from ~148 up, which may help whoever traces the cause.
The stored text was read back with curl https://api.github.com/..., bypassing the MCP read path — which was faithful in every case checked, so reads can be trusted and only writes are affected.
Result: reproduced and isolated. Closing.
A URL of 104 characters or more, written into a body through the GitHub MCP, is stored wrapped in a double-backtick code span. 103 and below store verbatim.
example.comat 184 wrapped, same asdocs.github.com</>were additionally HTML-escaped to</>issue_write), and originally seen on a PR description (update_pull_request)The span's closing backticks land inside the link's parens around 104–130 but outside them (swallowing the
)) from ~148 up, which may help whoever traces the cause.The stored text was read back with
curl https://api.github.com/..., bypassing the MCP read path — which was faithful in every case checked, so reads can be trusted and only writes are affected.