MCP reload reuses startup workspace config after .github/mcp.json changes
Chưa có ai nhận issue này.
- Ngôn ngữ chính
- Shell
- Star
- 11.2k
- Fork
- 1.9k
- Merge trung bình
- 14 giờ 16 phút
- Pull request đã merge (30 ngày)
- 6
Mô tả
Describe the bug
Copilot CLI keeps using the MCP configuration snapshot loaded when the session started. If a workspace MCP server fails to initialize and .github/mcp.json is corrected while the session remains open, reloading/restarting MCP servers retries the old command instead of reading the updated file.
The on-disk file contains the corrected command, but reload diagnostics report that the configuration signature is unchanged and launch the original command again.
Affected version
- Copilot CLI: 1.0.81-7
- Platform: Windows
- MCP transport: stdio
Steps to reproduce
-
Create
.github/mcp.jsonin a workspace with a deliberately observable failing server:{ "mcpServers": { "config-probe": { "type": "stdio", "command": "python", "args": [ "-c", "import sys; print('OLD_CONFIG', file=sys.stderr)" ], "tools": ["*"] } } } -
Start Copilot CLI in that workspace. The server exits during initialization and its stderr contains
OLD_CONFIG. -
Without exiting Copilot CLI, change only
OLD_CONFIGtoNEW_CONFIGin.github/mcp.json. -
Open
/mcpand reload/restart the MCP servers. -
Inspect the MCP status and session log.
Expected behavior
Reload should reread .github/mcp.json, compute a new configuration signature, and launch the command containing NEW_CONFIG.
Actual behavior
Reload keeps the startup signature and launches the original command containing OLD_CONFIG. In the observed session, the equivalent diagnostics were:
mcp discover_and_start_root {
"signature_matches": true,
"previous_signature": "...old command...",
"signature": "...old command..."
}
mcp unchanged reload reuses live graph
MCP server stderr: ...old command output...
Recorded failure for server config-probe
The file on disk already contained the new command when these messages were recorded.
This also occurs when replacing a nonexistent relative launcher path with a valid absolute path and adding an environment override: subsequent reloads continue retrying the original relative path.
Impact
A user cannot repair a failed workspace MCP server without terminating and relaunching Copilot CLI. The reload/restart action appears to run, but it retries stale settings, which makes configuration troubleshooting confusing.
Workaround
Exit Copilot CLI completely and start a new process after editing the workspace MCP configuration.
Related issues
- #2198 covered workspace MCP configuration not loading at startup; that issue was fixed by making reload discover the config. This report is the inverse: startup discovers the config, but reload does not observe later edits.
- #4542 covers workspace configuration being detected but not wired into newly started sessions. This report concerns in-session configuration refresh after the server was already discovered.
Hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Hướng nghiên cứu
Bắt đầu bằng cách tái hiện sự cố với .github/mcp.json, hành động /mcp reload/restart và nhật ký phiên. So sánh chữ ký cấu hình và lệnh được khởi chạy trước và sau khi thay đổi OLD_CONFIG thành NEW_CONFIG; được xem là hoàn tất khi reload phát hiện tệp đã chỉnh sửa và khởi động máy chủ bằng lệnh mới mà không khởi động lại Copilot CLI.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- python, shell
- Lĩnh vực
- cli, tooling
- Loại issue
- Lỗi
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức độ hoạt động
- Sôi nổi
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 48/100