github / github/copilot-cli

MCP reload reuses startup workspace config after .github/mcp.json changes

Đang mở
#4,562 1 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

area:configuration area:mcp
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

  1. Create .github/mcp.json in 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": ["*"]
        }
      }
    }
    
  2. Start Copilot CLI in that workspace. The server exits during initialization and its stderr contains OLD_CONFIG.

  3. Without exiting Copilot CLI, change only OLD_CONFIG to NEW_CONFIG in .github/mcp.json.

  4. Open /mcp and reload/restart the MCP servers.

  5. 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

Mở hướng dẫn đóng góp

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. 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.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. 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

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.