Repository navigation
Claude Code workflow (.github/workflows/claude.yml) and .mcp.json lost in the v2 tree swap — @claude no longer triggers #1850
Description
Same regression class as #1843 (SECURITY.md): the v2 tree swap in #1817 replaced the default branch's tree, and .github/workflows/claude.yml did not exist in the v2 tree, so it was silently removed from main.
Two files are missing, not one — claude.yml and the .mcp.json it depends on. See Scope below.
Impact
@claude mentions no longer trigger anything, repo-wide — on any PR or issue. issue_comment / pull_request_review_comment / issues events always run workflows from the default branch, so the loss on main disables the integration everywhere, including for PRs targeting v2/main.
Evidence
- The workflow's API state is now
deleted:gh api repos/modelcontextprotocol/inspector/actions/workflows/173749385 --jq "{name, path, state}" # => {"name":"Claude Code","path":".github/workflows/claude.yml","state":"deleted"}
- Its last three runs (all
issue_comment, latest 2026-07-28T03:10:05Z) areskipped. - The last commit carrying the file,
ac3c1a12("Bump to version 1.0.0", Bump to version 1.0.0 #1720), is not an ancestor of currentmain. .github/workflows/onmaintoday contains onlymain.yml.- Reproduced live: two
@claude reviewcomments on fix(core): mirror SEP-2243 x-mcp-header args to Mcp-Param-* on tools/call #1847 (19:08 and 19:10 UTC) produced no bot reply and no workflow run.
The last successful run was on #1825 (run 30315124707), which is where the file content can be recovered from:
gh api "repos/modelcontextprotocol/inspector/contents/.github/workflows/claude.yml?ref=ac3c1a12" --jq .content | base64 -dScope
Restoring the workflow alone is not enough. It runs with:
--mcp-config .mcp.json
--allowedTools "Bash,mcp__mcp-docs"
.mcp.json registers the mcp-docs HTTP server (https://modelcontextprotocol.io/mcp), and it went missing in the same swap — it survives only on v1/main and is absent from both main and v2/main:
git ls-tree --name-only origin/main .mcp.json # (empty)
git ls-tree --name-only origin/v2/main .mcp.json # (empty)
git ls-tree --name-only origin/v1/main .mcp.json # .mcp.jsonWithout it the mcp__mcp-docs tools never resolve, so the workflow's MCP-documentation lookups — the thing --append-system-prompt explicitly instructs it to use for MCP-related reviews — silently do nothing. Both files must land together.
Fix
Restore both files byte-for-byte, to v2/main:
| File | Source | sha256 | Bytes |
|---|---|---|---|
.github/workflows/claude.yml |
ac3c1a12 |
1c44f2d9… |
3592 |
.mcp.json |
47f92841 (v1/main) |
b0f0b8ea… |
123 |
The @claude trigger is gated to OWNER / MEMBER / COLLABORATOR author associations, which remains the behavior we want under the issues-only contribution model (#1820).
Target branch: v2/main, not main. v2/main is the develop branch merged into main at milestone releases, so restoring to main alone would be undone by the next tree swap — exactly how these files were lost. The trade-off is that @claude stays non-functional until the next milestone merge reaches main, since issue_comment events only consult the default branch. If it's needed sooner, that wants a separate direct-to-main PR in addition to this one.
Related
SECURITY.md (#1843, and #1864 for the v2/main half), claude.yml, and .mcp.json are now three instances of one pattern, none caught by CI. A systematic sweep of what else the swap dropped is worth doing separately — since the two histories share no common ancestor, no git tooling will surface them on its own.
Activity
ci: restore the Claude Code workflow, lost in the v2 tree swap
[-]Claude Code workflow (.github/workflows/claude.yml) lost in the v2 tree swap — @claude no longer triggers[/-][+]Claude Code workflow (.github/workflows/claude.yml) and .mcp.json lost in the v2 tree swap — @claude no longer triggers[/+]ci: restore the Claude Code workflow and .mcp.json, lost in the v2 tr…
cliffhall commentedon Aug 1, 2026
Closed by #1869, merged to
v2/main. (Closing manually:Closes #Nonly auto-closes for PRs targeting the default branch, and v2 PRs targetv2/main.)