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
- Open GitHub Copilot CLI
- Ask: "Add the Azure MCP Server to my sessions"
- The agent reads
llms-install.md (or the README) and generates ~/.copilot/mcp-config.json with "Azure MCP Server" as the key
- 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
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.
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)
Problem
When an AI agent (GitHub Copilot CLI, Claude Code, etc.) is asked to install the Azure MCP Server, it reads
llms-install.mdand generates a config using"Azure MCP Server"as the JSON key — exactly as documented. However, GitHub Copilot CLI rejects this name:Reproduction
llms-install.md(or the README) and generates~/.copilot/mcp-config.jsonwith"Azure MCP Server"as the keyRoot 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.mdunder 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:
github-mcp-server,kusto-mcp,adx-mcp-server). The Copilot CLI's own built-in server isgithub-mcp-server.@azure/mcp(lowercase), soazure-mcp-serveris a natural derivative.eng/tools/CopilotCliTester/uses"azure"(lowercase).Files to update
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.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
@azure/mcp@latest(npm)