fix(#3384): strip mcp__* tool grants from zcode-installed subagents (#3483)

* fix(#3384): strip mcp__* tool grants from zcode-installed subagents

ZCode's dispatcher treats every mcp__<server>__* entry in an agent's
tools: frontmatter as a required MCP server and hard-fails the subagent
spawn (CONFIGURATION_ERROR) when it is not connected, whereas Claude Code
treats the same grants as an optional allowlist. ZCode shared Claude's
verbatim agents copy (converter: null), so all 8 MCP-granted agents
failed to spawn out of the box with zero MCP servers configured.

Add convertClaudeAgentToZcodeAgent — a line-surgical converter that
filters mcp__* entries out of the frontmatter tools: grant list (both
inline comma and YAML block-list shapes) and preserves every other byte.
Declare it on both of zcode's capability.json agents entries and cut
zcode over to the descriptor-driven agents path
(_DESCRIPTOR_AGENTS_RUNTIMES) so the legacy inline loop stops
deleting+re-copying the converted agents raw. Claude Code, Kimi, and
Gemini install behavior is unchanged.

* chore(#3384): link changeset fragment to pr 3483

---------

Co-authored-by: sim <sim@local>
This commit is contained in:
Tom Boucher
2026-08-14 11:49:01 -04:00
committed by GitHub
parent 362d0434b2
commit 967bddba37
8 changed files with 293 additions and 9 deletions

View File

@@ -43,7 +43,7 @@
"prefix": "gsd-",
"nesting": "flat",
"recursive": false,
"converter": null
"converter": "convertClaudeAgentToZcodeAgent"
}
],
"local": [
@@ -69,7 +69,7 @@
"prefix": "gsd-",
"nesting": "flat",
"recursive": false,
"converter": null
"converter": "convertClaudeAgentToZcodeAgent"
}
]
},