Claude Desktop MCP Troubleshooting 5 min read

Claude Desktop MCP Not Showing Up — How to Fix It

You added a server to claude_desktop_config.json but the tools icon never appears, or the server just isn't listed. This is almost always a silent JSON parsing failure or a restart that didn't actually happen — here's how to find the real cause.

Not sure if it's your config or an outage?

Prismix tracks live status for Anthropic, OpenAI, and 80+ AI services · Check live AI status →

Check now →

Why MCP tools silently don't appear

Unlike a connection-failed error, this failure mode gives you nothing to go on — no error dialog, no red status indicator, just an app that behaves as if you never configured a server at all. That's the key clue:

Symptom Likely cause Fix
No hammer/tools icon at all, no servers listed anywhere Config JSON failed to parse Validate JSON, restart
Server listed in Settings but shows an error state Process crashed on startup Check mcp-server-{name}.log
Edited the file but nothing changed Wrong file path, or app not restarted Confirm path + full quit/reopen
Only some of your servers show up Duplicate server key name Give each server a unique key

5 steps to get MCP tools showing again

1

Confirm the config path for your OS

Claude Desktop reads exactly one config file. Editing anything else — a copy in your home folder, a project directory, or the wrong Application Support path — has no effect:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • Fastest way to find it: open Claude Desktop → Settings → Developer → "Edit Config" button, which opens the exact file the app reads.
2

Validate the JSON — this is the #1 cause

Claude Desktop does not show any error dialog when claude_desktop_config.json is malformed — it just quietly loads zero MCP servers and the app looks completely normal otherwise. This single behavior accounts for most "MCP not showing" reports.

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/you/Documents"]
    },
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": { "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_xxxxxxxxxxxx" }
    }
  }
}

Validate before restarting:

# macOS / Linux — exits with an error and line number if invalid
python3 -m json.tool "$HOME/Library/Application Support/Claude/claude_desktop_config.json"

# Windows PowerShell
Get-Content "$env:APPDATA\Claude\claude_desktop_config.json" -Raw | ConvertFrom-Json
3

Check for the "mcpServers" root key and name collisions

Two structural mistakes that pass a basic "is this valid JSON" check but still stop servers from loading:

  • Missing root key: server blocks placed directly at the top level of the file, instead of nested under "mcpServers", are ignored entirely.
  • Duplicate server keys: if you copy-pasted a server block to add a second one and forgot to rename the key, valid JSON only keeps the last occurrence — the other server silently disappears.
4

Read Claude Desktop's own MCP logs

If the config is valid JSON and a server still doesn't show tools, the process likely started and then exited. Claude Desktop logs every server's stdout/stderr separately:

  • In the app menu: Help → View Logs Folder... (jumps straight to the logs directory).
  • macOS: ~/Library/Logs/Claude/mcp-server-{name}.log plus the general mcp.log.
  • Windows: %APPDATA%\Claude\logs\mcp-server-{name}.log plus mcp.log.

You can also check Settings → Developer inside Claude Desktop, which lists each configured server with a running/error status — click a failed one to see the last error line without leaving the app.

5

Fully quit and reopen — not just close the window

Claude Desktop reads claude_desktop_config.json once, at launch. Closing the window (the red traffic-light button on macOS) leaves the app running in the background with the old config still loaded:

  • macOS: Cmd+Q, or Claude menu (top menu bar) → Quit Claude — then reopen from Spotlight or Applications.
  • Windows: right-click the Claude icon in the system tray (near the clock) and choose Quit, or end the process via Task Manager if it's not in the tray.

After relaunching, open Settings → Developer to confirm the server now shows a running state, then start a new chat — the tools icon appears in the message composer once at least one tool is available.

FAQ

Why don't my MCP tools show up after adding a server?

The two most common reasons are a JSON syntax error in claude_desktop_config.json (Claude Desktop silently ignores the whole file if it can't parse it) and not fully quitting the app after editing the config. Also confirm the config is at the correct OS-specific path and nested under the "mcpServers" key.

Why is there no hammer/tools icon in the chat box?

The tools icon only appears once at least one MCP server has connected successfully and exposed a tool. Check Settings → Developer to see each server's status, and check the per-server log for the startup error if one shows an error state.

Does Claude Desktop show an error for invalid config JSON?

No — this is the most common source of confusion. Malformed JSON causes Claude Desktop to silently load zero MCP servers with no popup or warning. Always validate the file with a JSON linter before restarting.

Where are Claude Desktop's MCP logs?

macOS: ~/Library/Logs/Claude/mcp.log and mcp-server-{name}.log. Windows: %APPDATA%\Claude\logs\mcp.log and mcp-server-{name}.log. Use Help → View Logs Folder... from the app menu to open the folder directly.

Can duplicate server names cause tools to not appear?

Yes. If two servers share the same key under "mcpServers" (often from copy-pasting a block), valid JSON keeps only the last one and the other is silently dropped. Give every server a unique key.

Related guides