# Claude Desktop: MCP tools do not appear after restart

Why Claude Desktop sometimes ignores your claude_desktop_config.json, the file paths to check, and the log lines that surface the real error.

**Quick answer**

If MCP tools do not appear in Claude Desktop, it is almost always the config, not the server. Check you edited the right file (~/Library/Application Support/Claude/claude_desktop_config.json on macOS), validate the JSON (one stray comma silently disables every server), add -y to any npx command so it does not hang on a first-run prompt, then fully quit and relaunch rather than reloading. If tools still do not show, read ~/Library/Logs/Claude/mcp-server-\<name>.log for the real error.

## The symptom

You edited `claude_desktop_config.json`, restarted Claude Desktop, and opened a new conversation. The hammer icon does not show your server. Or it shows the server name but zero tools.

## Check 1: you are editing the right file

Claude Desktop only reads the file at these exact paths:

- **macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`
- **Windows:** `%APPDATA%\Claude\claude_desktop_config.json`

The file is created the first time you open Settings → Developer → Edit Config. If you wrote it by hand to `~/.config/claude/` or anywhere else, Claude Desktop never sees it.

## Check 2: the JSON parses

A trailing comma, an unbalanced brace, or a stray comment turns the whole file into an error and Claude Desktop loads zero servers without telling you in the UI. Run the file through `jq .` or paste it into the [MCP Config Validator](https://hjarni.com/mcp-config-validator) (it validates in your browser; nothing is sent to a server).

## Check 3: every npx command has -y

Stdio servers launched with `npx` need the `-y` (or `--yes`) flag. Without it, `npx` waits for you to confirm the install. Claude Desktop cannot answer that prompt. The server hangs forever and never registers its tools.

```
{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/me/Documents"]
    }
  }
}
```

## Check 4: you actually quit, not closed

Closing the window leaves Claude Desktop running. The config is re-read on full quit and relaunch only. macOS: `Cmd+Q`. Windows: right-click the tray icon and choose Exit.

## Check 5: read the MCP server logs

If the server still does not show up, the real error is in the per-server log:

- **macOS:** `~/Library/Logs/Claude/mcp-server-<name>.log`
- **Windows:** `%APPDATA%\Claude\logs\mcp-server-<name>.log`

`tail -f` it during launch. Common errors: missing binary on PATH, env vars not interpolated (Claude Desktop's config is JSON, not a shell), wrong absolute path for a stdio command.
