Reference
claude_desktop_config.json, explained
Path, schema, examples, and the mistakes that break it
claude_desktop_config.json is where Claude Desktop stores its local MCP servers — the ones Claude launches as subprocesses and talks to over stdio. Remote MCP servers (added through the Connectors UI) don't live here.
Where the file lives
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
If it doesn't exist, create it — Claude only reads it, never requires it. Open Claude → Settings → Developer → Edit Config to let Claude open the file in your default editor.
Schema
{
"mcpServers": {
"<display-name>": {
"command": "<executable>",
"args": ["<arg-1>", "<arg-2>"],
"env": { "KEY": "value" }
}
}
}- command — the executable Claude runs.
npx,node,python,uvx, or an absolute path to a binary. - args — arguments passed to the command.
- env — optional environment variables the child process should see (API keys, feature flags).
Working examples
Filesystem server (Anthropic reference):
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/you/docs"]
}
}
}Python server via uvx:
{
"mcpServers": {
"sqlite": {
"command": "uvx",
"args": ["mcp-server-sqlite", "--db", "/Users/you/dev.db"]
}
}
}Local Node server with an API key:
{
"mcpServers": {
"weather": {
"command": "node",
"args": ["/Users/you/dev/weather-mcp/dist/index.js"],
"env": { "WEATHER_API_KEY": "sk-..." }
}
}
}Common mistakes
- Editing while Claude is running. Claude reads the file at startup. Fully quit (⌘Q on macOS), then reopen.
- Using
~in a path. Some commands don't expand it; use the absolute path from your home directory. - Assuming your shell's PATH. Claude launches commands with a minimal PATH. Use absolute paths for
node,python,uvxif you installed them via a version manager. - Trailing commas or comments. The file is strict JSON — no comments, no trailing commas, or Claude fails silently to load it.
Remote servers don't need this file
If the MCP server is hosted at a URL — like https://muninn.ferbutech.no/mcp — add it through Claude's Connectors UI instead. See How to add an MCP server to Claude.