Background
Carved out of #2507 (its gap 3, explicitly deferred there): Qwen Code v0.18.1 (QwenLM/qwen-code PR #4713, issue #4615) added <projectRoot>/.mcp.json as a Claude-parity project MCP source (packages/cli/src/config/mcpJson.ts normalizes Claude's type-based transport shape; precedence: user settings < .mcp.json < workspace/system settings < --mcp-config; servers untrusted until approved). The surface is implemented in code only — it is not yet in the published mcp.md docs.
rulesync's QwencodeMcp.getSettablePaths returns .qwen/settings.json for both scopes. Generated servers sit at workspace scope and outrank .mcp.json, so nothing rulesync writes is broken — the gap is one-directional: a repo whose servers live in a checked-in .mcp.json is invisible to rulesync import --targets qwencode.
Proposal
Import-only: have the qwencode import path also read <projectRoot>/.mcp.json, merged beneath settings.json (settings win, matching upstream precedence). Do not emit to .mcp.json — that would subject managed servers to the approval gate for no benefit.
Deferred until upstream documents the surface in mcp.md (re-check before implementing).
Background
Carved out of #2507 (its gap 3, explicitly deferred there): Qwen Code v0.18.1 (QwenLM/qwen-code PR #4713, issue #4615) added
<projectRoot>/.mcp.jsonas a Claude-parity project MCP source (packages/cli/src/config/mcpJson.tsnormalizes Claude'stype-based transport shape; precedence: user settings <.mcp.json< workspace/system settings <--mcp-config; servers untrusted until approved). The surface is implemented in code only — it is not yet in the published mcp.md docs.rulesync's
QwencodeMcp.getSettablePathsreturns.qwen/settings.jsonfor both scopes. Generated servers sit at workspace scope and outrank.mcp.json, so nothing rulesync writes is broken — the gap is one-directional: a repo whose servers live in a checked-in.mcp.jsonis invisible torulesync import --targets qwencode.Proposal
Import-only: have the qwencode import path also read
<projectRoot>/.mcp.json, merged beneathsettings.json(settings win, matching upstream precedence). Do not emit to.mcp.json— that would subject managed servers to the approval gate for no benefit.Deferred until upstream documents the surface in mcp.md (re-check before implementing).