Skip to content

llms-install.md and README use invalid MCP server name for GitHub Copilot CLI (spaces in JSON key) #2589

@mike-mo

Description

@mike-mo

Problem

When an AI agent (GitHub Copilot CLI, Claude Code, etc.) is asked to install the Azure MCP Server, it reads llms-install.md and generates a config using "Azure MCP Server" as the JSON key — exactly as documented. However, GitHub Copilot CLI rejects this name:

Error: MCP server 'Azure MCP Server' in C:\Users\<user>\.copilot/mcp-config.json
contains invalid characters: '  '. Only alphanumeric characters, underscores, and
hyphens are allowed. Consider renaming to 'Azure-MCP-Server'.

Reproduction

  1. Open GitHub Copilot CLI
  2. Ask: "Add the Azure MCP Server to my sessions"
  3. The agent reads llms-install.md (or the README) and generates ~/.copilot/mcp-config.json with "Azure MCP Server" as the key
  4. Restart the CLI → error on startup

Root cause

llms-install.md (the file specifically designed for AI agents to follow) uses "Azure MCP Server" with spaces as the JSON key in all config examples:

{
  "mcpServers": {
    "Azure MCP Server": {
      "command": "npx",
      "args": ["-y", "@azure/mcp@latest", "server", "start"]
    }
  }
}

The same pattern appears in servers/Azure.Mcp.Server/README.md under the "GitHub Copilot CLI" manual setup section.

Note: the project's own Copilot CLI E2E tester (eng/tools/CopilotCliTester/) already uses "azure" as the key, so the team is aware that spaces don't work in this context.

Suggested fix

Rename "Azure MCP Server""azure-mcp-server" in all JSON key positions across the docs.

I'd recommend lowercase with hyphens specifically because:

  • Convention: MCP ecosystem overwhelmingly uses lowercase-hyphenated names (github-mcp-server, kusto-mcp, adx-mcp-server). The Copilot CLI's own built-in server is github-mcp-server.
  • Matches the npm package: The npm package is @azure/mcp (lowercase), so azure-mcp-server is a natural derivative.
  • Client compatibility: Some MCP clients are case-sensitive or impose naming restrictions. Lowercase-hyphenated is the safest common denominator.
  • This project's own tester uses it: eng/tools/CopilotCliTester/ uses "azure" (lowercase).

Files to update

  1. llms-install.md — Rename the key in all JSON config blocks. Also add a GitHub Copilot CLI section (currently missing) pointing to ~/.copilot/mcp-config.json.
  2. servers/Azure.Mcp.Server/README.md — Same rename in the "GitHub Copilot CLI" config block under "Manual Setup", and ideally all other client examples for consistency.

Workaround

Manually rename the key in ~/.copilot/mcp-config.json:

{
  "mcpServers": {
    "azure-mcp-server": {
      "command": "npx",
      "args": ["-y", "@azure/mcp@latest", "server", "start"]
    }
  }
}

Environment

  • GitHub Copilot CLI v1.0.42
  • Windows 11
  • @azure/mcp@latest (npm)

Metadata

Metadata

Assignees

Labels

customer-reportedneeds-team-attentionWorkflow: This issue needs attention from Azure service team or MCP team.questionFurther information is requestedserver-Azure.McpAzure.Mcp.Servertools-CoreAZMCP Core functionality that all other tools build on top of

Type

No type
No fields configured for issues without a type.

Projects

Status

In Progress

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions