github / github/copilot-cli

Add --no-mcp-auto-discover flag to disable automatic .mcp.json discovery

Aberta
#3,419 0 comentários 1 reação 0 responsáveis Ver no GitHub
area:configuration area:mcp area:non-interactive
Linguagem predominante
Shell
Estrelas
11.2k
Forks
1.9k
Merge médio
14h 16min
PRs com merge (30d)
6

Descrição

When running Copilot CLI in headless/automated scenarios (e.g., as a bot backend, CI pipeline, or background service), the CLI auto-discovers `.mcp.json` from the workspace root and loads all MCP servers defined there. Some MCP servers (e.g., GenevaMonitoring) require interactive browser authentication and will hang or fail in headless environments. There's currently no way to prevent auto-discovery — you can only add more servers via `--additional-mcp-config`, not exclude the auto-discovered ones.

Proposed solution
Add a flag like --no-mcp-auto-discover (or --mcp-config-only) that disables automatic loading of .mcp.json from the workspace root. When used with --additional-mcp-config, it gives full control over exactly which MCP servers are loaded — essential for headless automation.

# Only load the explicitly specified MCP config, skip .mcp.json auto-discovery
copilot --no-mcp-auto-discover --additional-mcp-config "@.copilot-mcp-enrichment.json" -p "..."

Example prompts or workflows
1. Bot running Copilot CLI as subprocess for ICM incident enrichment — needs kusto + icm MCPs only, must avoid any server requiring interactive auth.
2. CI pipeline using Copilot CLI for automated code review — needs only ado MCP, repo's .mcp.json has servers that need credentials unavailable in CI.
3. Scheduled background tasks using Copilot CLI — any MCP server that triggers browser auth will hang the process indefinitely.
4. Multi-purpose repos where .mcp.json is configured for interactive developer use but automated tooling needs a subset.

Additional context

- Currently the only workaround is modifying .mcp.json locally (causes git conflicts on pull) or using git update-index --assume-unchanged (fragile)
- The --additional-mcp-config flag already exists for adding servers — this is the complementary "opt-out" counterpart
- .vscode/mcp.json serves interactive VS Code users; .mcp.json is for CLI — but there's no way to differentiate headless CLI from interactive CLI usage
- Version: Copilot CLI v1.0.49

Guia de contribuição

Abrir o guia de contribuição

Direção de pesquisa

Start with the existing --additional-mcp-config handling and the automatic .mcp.json discovery path. Compare this with .vscode/mcp.json, which is intended for interactive VS Code users. Done means a new opt-out flag prevents loading the workspace .mcp.json while still allowing explicitly supplied MCP configuration, including in headless workflows.

Escrita pelo modelo de indexação a partir do texto da issue.

Avaliação

Stack de tecnologia
shell
Domínio
cli
Tipo de issue
Funcionalidade
Dificuldade
3/5
Tempo estimado
1-2 dias
Status de atividade
Pouca atividade
Clareza
Razoavelmente clara
Facilidade para iniciantes
48/100

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.