Claude Desktop MCP server not showing up, or not connecting: the fixes
By Jake Marsh, who builds Taskhold. Updated 2026-11-10. Facts about other tools checked 2026-11-10. 5 min read.
Short answer: Open the config from the Claude menu in the menu bar: Settings > Developer > Edit Config. Fix any JSON error, use absolute paths, then quit Claude Desktop completely and reopen it: closing the window isn't enough. If the server still doesn't appear under + > Connectors, read mcp.log and mcp-server-<name>.log in ~/Library/Logs/Claude (Windows: %APPDATA%\Claude\logs). A server with a URL goes in as a custom connector, not in this file.
You added a server to claude_desktop_config.json, restarted, and nothing: it isn't in the Connectors menu, or it shows up and its tools fail. Claude Desktop starts every server in that file itself, as a program on your computer, so most failures come from the file, the restart, or the environment the program starts in. This guide goes through each, in the order worth checking.
The last section covers Taskhold, a remote server that skips the config file entirely and feeds the live board where Claude's tasks and steps show up. For connectors added by URL, see Claude custom connector won't connect.
Edit the file Claude Desktop reads
Use the Claude menu in your system's menu bar, not the settings inside the chat window: Claude > Settings, then the Developer tab, then Edit Config. That creates the file if it's missing and opens the one the app reads:
- macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
- Windows: %APPDATA%\Claude\claude_desktop_config.json
- Linux: ~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/you/Desktop"],
"env": { "SOME_API_KEY": "..." }
}
}
}Quit completely, then check the Connectors menu
Claude Desktop reads the file only at launch. Quit the app completely (Cmd+Q on macOS) and open it again; closing the window leaves it running with the old config. Then click the + (Add files, connectors, and more) button in the message box and hover over Connectors, or open Manage connectors, to see each server and its tools.
Server not showing up
- Check the JSON. A trailing comma, a missing brace or a comment makes the whole file invalid. Paste it into a JSON validator if you can't spot it.
- Use absolute paths everywhere, in args and in any .env file the server reads. A server Claude Desktop starts may get / as its working directory on macOS, so ./data points somewhere else.
- Run the exact command and args in a terminal. If it errors there, it errors in Claude Desktop too, and you see the message straight away.
- Read the logs (next section). They say whether Claude Desktop tried to start the server and why it stopped.
Read the MCP logs
Claude Desktop writes MCP logs to ~/Library/Logs/Claude on macOS, %APPDATA%\Claude\logs on Windows and ~/.config/Claude/logs on Linux. mcp.log covers connections and connection failures; mcp-server-<name>.log holds everything the named server printed to stderr, which for many servers is all of their logging, not only errors.
tail -n 20 -F ~/Library/Logs/Claude/mcp*.logFor errors in the app itself, turn on DevTools: create developer_settings.json next to the config file containing {"allowDevTools": true}, then press Cmd+Option+I (Ctrl+Alt+I on Windows). Two DevTools windows open, one for the main content and one for the title bar; the Console shows client-side errors.
Command not found, missing keys and Windows paths
- Servers started from the config get only a small, platform-dependent set of environment variables, not everything your shell profile sets. Put API keys and other variables the server needs in its env object.
- If the log says the command can't be found, give command its absolute path, for example the one which npx or which uv prints in your terminal.
- On Windows, an ENOENT error with ${APPDATA} in a path means the variable didn't expand. Add "APPDATA": "C:\\Users\\you\\AppData\\Roaming\\" to the server's env. If npx still fails, check that %APPDATA%\npm exists; if it doesn't, run npm install -g npm.
- Writing your own server: log to stderr only. Anything printed to stdout corrupts the protocol messages and the connection drops.
Tools show up but calls fail
Check mcp-server-<name>.log for the server's own error, make sure the server builds and runs on its own, and restart Claude Desktop after any change to the server's code. The MCP Inspector (npx @modelcontextprotocol/inspector) lets you call the tools outside Claude to see whether the fault is in the server or the client.
Servers with a URL go in as connectors
claude_desktop_config.json starts local programs with command and args. A hosted server with an https URL is added as a custom connector instead (Customize > Connectors, + Add, Add custom connector), and Claude reaches it from Anthropic's cloud. If that's what fails, the fixes are different: see Claude custom connector won't connect.
Taskhold in Claude Desktop
Taskhold is a remote server, so it needs no entry in the config file and nothing to install. Add it from Claude's connector directory or as a custom connector with the URL https://taskhold.com/api/mcp. It connects with no sign-up, and the first time Claude uses Taskhold it gives you a link to start the 7-day trial. Steps are on the Claude Desktop page.
Once connected, the tasks Claude files, the steps it plans and the questions it asks show on the live board next to your coding agents, where you can answer from any browser or your phone. The same checks for other clients: Claude Code, Cursor and Cline.
Answer your coding agents from anywhere.
$12/month or $120/year after the trial. Card up front. Cancel before day 7 and you pay nothing. Every agent you run is included.
Or connect your agent first, no sign-up: add https://taskhold.com/api/mcp as an MCP server. The first time it uses Taskhold, it gives you the trial link.
Questions
- Where is claude_desktop_config.json?
- ~/Library/Application Support/Claude/claude_desktop_config.json on macOS, %APPDATA%\Claude\claude_desktop_config.json on Windows and ~/.config/Claude/claude_desktop_config.json on Linux. Claude > Settings > Developer > Edit Config opens it, and creates it if it doesn't exist.
- Do I need to restart Claude Desktop after editing the config?
- Yes, and fully: quit the app and open it again. Closing the window keeps it running with the old config.
- Where are Claude Desktop's MCP logs?
- ~/Library/Logs/Claude on macOS, %APPDATA%\Claude\logs on Windows, ~/.config/Claude/logs on Linux. mcp.log has connection events and mcp-server-<name>.log has each server's stderr.
Sources
Related
Updated 2026-11-10. Something wrong or out of date? Email hello@greatwork.company.