Skip to content

Copilot CLI 1.0.58 does not auto-load project-level .copilot/mcp-config.json #3642

Closed

Description

@tamirdresher

Summary

Copilot CLI 1.0.58 does not auto-load .copilot/mcp-config.json from the current working directory (project root). Only ~/.copilot/mcp-config.json is read automatically. As a result, MCP servers declared at the project level are silently absent from the session until the user passes --additional-mcp-config @<path> explicitly on every invocation.

This breaks any project that expects per-repo MCP configuration to be applied transparently (the same pattern used by VS Code / Claude Code / cursor).

Reproduction

  1. Install @github/copilot@1.0.58 globally.
  2. In an empty repo, create .copilot/mcp-config.json:
    {
      "mcpServers": {
        "example": {
          "type": "local",
          "command": "node",
          "args": ["-e", "console.error('example MCP loaded')"]
        }
      }
    }
  3. Run copilot from the repo root.
  4. Ask the model list available MCP servers.

Expected: example is listed.
Actual: No project-level servers; only those in ~/.copilot/mcp-config.json.

Workaround

Pass the config explicitly on every spawn:

copilot --additional-mcp-config @./.copilot/mcp-config.json

The @ prefix is required (means "read JSON from file"). We are shipping this workaround in @bradygaster/squad-cli 0.9.6-preview.8 across all 10 of our copilot spawn sites.

Why this matters

Project-local MCP config is the natural way for frameworks (squad, etc.) to ship a curated MCP surface alongside the code. With the current behavior the framework must wrap every copilot invocation, which is fragile and easy to miss.

Ask

  1. Document the current behavior (no auto-load of project .copilot/mcp-config.json) in CLI docs.
  2. Consider auto-merging project-level config when present (with precedence rules vs ~/.copilot/mcp-config.json).

Environment

  • Copilot CLI: 1.0.58
  • OS: Windows 11 (reproduced; same behavior expected on macOS/Linux)
  • Node: 22.x

Activity

  1. added
    area:mcpMCP server configuration, discovery, connectivity, OAuth, policy, and registry
    area:configurationConfig files, instruction files, settings, and environment variables
    on Jun 2, 2026
  2. added theissue type on Jun 2, 2026
  3. caarlos0 commented on Jun 2, 2026

    @caarlos0
    Member

    Hey Tamir!

    Project's MCP settings are loaded from .mcp.json.

    You can see the list of paths in copilot mcp --help.

  4. tamirdresher commented on Jun 2, 2026

    @tamirdresher
    Author

    Thanks @caarlos0 — confirmed via copilot mcp --help on 1.0.58:

    Configuration is loaded from multiple sources:
      User       ~/.copilot/mcp-config.json
      Workspace  .mcp.json
      Plugin     Installed plugins with MCP servers
    

    So .mcp.json at repo root is the supported project-local path. Closing as resolved — we'll move @bradygaster/squad-cli to that path on our side (additive migration, so existing .copilot/mcp-config.json files aren't broken on upgrade).

    Friendly doc nit while I'm here: the README documents the LSP config paths (.github/lsp.json, ~/.copilot/lsp-config.json) but is silent on the MCP equivalents. Mirroring that LSP section for MCP would have saved this round trip. 🙂

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:configurationConfig files, instruction files, settings, and environment variablesarea:mcpMCP server configuration, discovery, connectivity, OAuth, policy, and registrymcp_host

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions