[BUG] MCP servers defined in global.json are not applied to projects

Resolved 💬 6 comments Opened Mar 15, 2025 by aaronlippold Closed Mar 17, 2025

Description

Global MCP servers configured in ~/.claude-code/mcp/global.json are not being detected or applied to projects automatically. This defeats the purpose of having global configuration.

Steps to reproduce

  1. Configure MCP servers in ~/.claude-code/mcp/global.json under the "mcpServers" key
  2. Open Claude Code in a project directory
  3. Run claude mcp list - no servers are shown despite being in global config
  4. Manually adding servers with claude mcp add-json works as a workaround

Expected behavior

MCP servers defined in the global config should be automatically available to all projects without requiring per-project configuration.

Environment

Using Claude Code CLI with globally configured MCP servers in ~/.claude-code/mcp/global.json

Configuration reference (API keys redacted)

{
  "brave-search": {
    "command": "npx",
    "args": [
      "-y",
      "@modelcontextprotocol/server-brave-search"
    ],
    "env": {
      "BRAVE_API_KEY": "API_KEY_REDACTED"
    }
  },
  "puppeteer": {
    "command": "npx",
    "args": [
      "-y",
      "@modelcontextprotocol/server-puppeteer"
    ]
  }
}

This is from the mcpServers field in global.json.

Workaround applied

As a workaround, we were able to add the MCP servers to the project-specific configuration using:

claude mcp add-json brave-search "$(cat ~/.claude-code/mcp/global.json | jq '.mcpServers."brave-search"')"
claude mcp add-json puppeteer "$(cat ~/.claude-code/mcp/global.json | jq '.mcpServers.puppeteer')"

After running these commands, claude mcp list properly showed both servers as configured.

View original on GitHub ↗

This issue has 6 comments on GitHub. Read the full discussion on GitHub ↗