github / github/copilot-cli

MCP server collision detection is case-sensitive across configuration scopes

Abierto
#4,478 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

area:mcp
Lenguaje dominante
Shell
Estrellas
11.2k
Forks
1.9k
Merge medio
14 h 16 min
PR fusionados (30 d)
6

Descripción

Describe the bug

Copilot CLI can discover MCP servers from multiple scopes, including user configuration and installed plugins. Server-name collision detection is case-sensitive, so logically identical names such as MCPBrowser and mcpbrowser are treated as separate servers and both processes are launched.

This causes redundant startup work, duplicate tool registrations, additional startup delays, and confusing output where one declaration may fail or time out while the other connects successfully.

Affected version

GitHub Copilot CLI 1.0.79 on Windows x64.

Steps to reproduce the behavior
  1. Add a user-scoped MCP server named MCPBrowser to ~/.copilot/mcp-config.json:
{
  "mcpServers": {
    "MCPBrowser": {
      "type": "local",
      "command": "npx",
      "args": ["-y", "mcpbrowser@latest"],
      "tools": ["*"]
    }
  }
}
  1. Install a Copilot plugin that contributes the same MCP server using the name mcpbrowser.
  2. Run copilot plugins list --kind mcp --json.
  3. Observe both entries: user-scoped MCPBrowser and plugin-scoped mcpbrowser.
  4. Start Copilot CLI and observe that both MCP processes are started independently.
Expected behavior

Copilot CLI should detect MCP name collisions case-insensitively across all discovery scopes and should not launch duplicate logical servers.

Suggested behavior:

  • Canonicalize MCP names for collision detection, for example with Unicode case folding.
  • Apply a documented precedence rule across user, repository, organization, and plugin scopes.
  • Start only the winning declaration.
  • Emit a clear warning that identifies both sources and explains which declaration was selected.
  • Alternatively, fail fast with an actionable conflict error rather than silently launching both.

Exact duplicate names may already receive precedence handling; case-only differences should not bypass it.

Additional context

This is especially easy to encounter when a server was first configured manually and is later installed through a plugin. Individual MCP server packages cannot reliably prevent or repair duplicate declarations because discovery and scope resolution happen in Copilot CLI before the server process starts.

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Comienza con el descubrimiento de MCP y la resolución de ámbitos ejercidos mediante copilot plugins list --kind mcp --json, comparando la declaración del usuario en ~/.copilot/mcp-config.json con la declaración del plugin. Rastrea dónde se comparan los nombres de los servidores entre ámbitos. Se considera terminado cuando se detectan los duplicados que solo difieren en mayúsculas y minúsculas, una declaración sigue una regla de precedencia documentada y el conflicto se informa o rechaza claramente antes de que se inicien ambos procesos.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
shell
Área
cli
Tipo de issue
Error
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Tranquilo
Claridad
Bastante claro
Aptitud para principiantes
52/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.