Workspace .mcp.json detected by 'mcp list'/'mcp get' but not connected in actual agent session (interactive/-i/-p)
まだ誰も着手していません。
- 主要言語
- Shell
- スター
- 11.2k
- フォーク
- 1.9k
- 平均マージ
- 14時間 16分
- マージ済み PR(30日)
- 6
説明
Bug Report
Summary
Workspace .mcp.json MCP servers are correctly detected by copilot mcp list / copilot mcp get <name> (shown as Status: Enabled, Source: Workspace), but are not actually connected/available inside an agent session (interactive default session, -i auto-prompt, or -p non-interactive prompt) unless the same config is re-passed explicitly via --additional-mcp-config @.mcp.json.
This looks like a regression of #2198 (closed as fixed in 1.0.12) — the config-loading layer (mcp list/mcp get) now works, but the session-bootstrapping layer that actually wires servers into the running agent still doesn't pick up workspace config without an explicit flag.
Version
1.0.80 (macOS 26.5 / Sequoia, arm64, terminal-only workflow, no IDE attached)
Steps to Reproduce
- In a project directory, create
.mcp.json:{ "mcpServers": { "my-server": { "type": "http", "url": "https://example.com/mcp", "oauth": { "clientId": "example-client" } } } } - From that directory, run
copilot mcp get my-server→ showsStatus: Enabled,Source: Workspace (.../.mcp.json). - From the same directory, start a session and ask it to list available MCP servers, e.g.:
or interactively withcopilot --allow-all-tools -p "List the MCP servers currently available in this session (just names)."copilot(no extra flags). my-serveris missing from the tools/servers actually available to the agent.- Re-run with the config re-passed explicitly:
→copilot --allow-all-tools --additional-mcp-config @.mcp.json -p "List the MCP servers currently available in this session (just names)."my-servernow appears correctly.
Expected Behavior
If copilot mcp get <name> reports a workspace server as Status: Enabled, that server should be connected and its tools available in the actual agent session (interactive, -i, and -p) without needing to duplicate the same file via --additional-mcp-config.
Actual Behavior
copilot mcp list/copilot mcp get— correctly detect and report the workspace server as enabled.- Interactive session (no flags) — workspace server not available to the agent.
-i "<prompt>"(interactive with auto-prompt) — workspace server not available.-p "<prompt>"(non-interactive) — workspace server not available.- Adding
--additional-mcp-config @.mcp.jsonon the command line — workspace server becomes available (redundant since the CLI already found the same file via workspace discovery).
Impact
This makes committed, repo-scoped .mcp.json files (the main use case — e.g. an internal MCP server URL with repo-specific query parameters scoping it to that project) effectively non-functional out of the box for terminal workflows. Users have to manually pass --additional-mcp-config @.mcp.json every single invocation, or write a shell wrapper to auto-detect and inject it — defeating the purpose of committing project-scoped MCP config to the repo for the whole team to use transparently.
Workaround
Manually pass --additional-mcp-config @.mcp.json on every invocation (or wrap copilot in a shell function that auto-detects .mcp.json in the cwd and injects the flag).
Related
- #2198 (closed as fixed in 1.0.12) — appears to have regressed, or only fixed the
mcp list/mcp getdiscovery layer without fixing actual session wiring.
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
調査の方向性
copilot mcp list と copilot mcp get で確認できる workspace .mcp.json の検出から始め、続いて default、-i、-p のエントリーポイントでのセッション起動を追跡します。これらの経路を --additional-mcp-config @.mcp.json を使った実行と比較します。追加の flag なしで、3 つすべてのセッションモードで workspace のサーバーを利用できれば完了です。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- shell
- 領域
- cli
- issue の種類
- バグ
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 活発さ
- 活発
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 52/100