MCP Tools Not Showing Up in Claude
Quick fix: MCP tools vanish when a server fails to start. Open the MCP log (~/Library/Logs/Claude/mcp-server-NAME.log on macOS), find the error, and fix it. The two most likely causes: a bare npx or uvx in your config that needs an absolute path, or a JSON syntax error in claude_desktop_config.json that disables every server silently.
In this guide
How tools appear in Claude
When Claude Desktop starts, it reads claude_desktop_config.json, spawns each configured MCP server as a child process, and completes the MCP initialization handshake (which includes a tools/list call). Only servers that complete that handshake contribute tools to the UI. The hammer icon appears only if at least one server connected successfully.
This means: no hammer icon = all servers failed to start. Hammer icon with missing tools = some servers failed, or a server returned an unexpected tools list.
No hammer icon at all
Work through this checklist in order:
1. Validate your JSON config
# macOS/Linux cat ~/Library/Application\ Support/Claude/claude_desktop_config.json | python3 -m json.tool # Windows Get-Content "$env:APPDATA\Claude\claude_desktop_config.json" | ConvertFrom-Json
A syntax error here silently disables all servers with no UI feedback. Fix any error before continuing.
2. Check you are editing the right file
The config must be at the exact path for your OS:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
3. Use absolute paths for commands
Claude Desktop does not inherit your terminal PATH. Replace:
// WRONG - will fail silently on most systems "command": "npx" // RIGHT - use the output of: which npx "command": "/usr/local/bin/npx" // RIGHT - Apple Silicon Mac (Homebrew) "command": "/opt/homebrew/bin/npx" // RIGHT - Windows "command": "C:/Users/you/AppData/Roaming/npm/npx.cmd"
4. Fully quit and restart Claude Desktop
macOS: Cmd+Q (not Cmd+W). Windows: right-click the system tray icon → Quit. Closing the window does not stop the background process.
Hammer icon appears but shows no tools
This means at least one server started but returned an empty tools list or failed after initialization. Read the log:
tail -50 ~/Library/Logs/Claude/mcp-server-YOURSERVERNAME.log
Common causes:
- Server crashed after starting — look for a Python traceback,
Error:line, or401/403response in the log - Missing required file — filesystem server with a path that does not exist, sqlite server before the database file is created
- npx first-run download — wait 60 seconds on first use; npx downloads the package before starting. Test by running the command manually in a terminal first
- Wrong API key format — some servers validate the key format on startup and crash silently if it does not match the expected pattern
Fewer tools than expected
If you have three servers configured but only one set of tools appears, the other servers failed. Check each server's log file:
# List all MCP log files
ls ~/Library/Logs/Claude/mcp*.log
Each file is named mcp-server-SERVERNAME.log where SERVERNAME matches the key in your mcpServers config object. Open each file and find the most recent error.
/usr/local/bin/npx -y @modelcontextprotocol/server-github — this often shows a clearer error than the log file.
Tools disappeared after an update
Both Claude Desktop updates and MCP package updates can break server compatibility. To diagnose:
- Check the log file for the now-failing server — the error will show what changed
- If a package was auto-updated by
npx -y, pin a known-good version:"args": ["-y", "@modelcontextprotocol/server-filesystem@1.0.3"] - If Claude Desktop itself updated, check the Anthropic changelog for MCP protocol version changes
Automated diagnosis: paste your claude_desktop_config.json into the free MCP Config Auditor to get a per-server report flagging bare commands, placeholder tokens, and JSON errors. 100% client-side.
To check live server health (does the server respond to MCP protocol calls?): MCP Server Health Check.
FAQ
Tools do not appear when servers fail to start. The most common causes: bare npx/uvx command that needs an absolute path, JSON syntax error in the config, missing or placeholder API key, or Claude Desktop not fully restarted. Read the MCP log file at ~/Library/Logs/Claude/mcp-server-NAME.log for the exact error.
The hammer icon shows when at least one server started. Zero tools means the server started but returned an empty list or crashed after initialization. Check the server log for runtime errors — missing files, invalid credentials, or a connection failure are the most common causes.
Package updates via npx -y can silently break things. Pin a version in args: ["-y", "@modelcontextprotocol/server-NAME@1.0.0"] and check the server log for the specific error after the update.
Click the hammer icon in the chat input area. If the icon is absent, no servers connected. If fewer tools appear than expected, some servers failed — check each server log file.