MCP server "not showing up"? It's almost always the config. Paste your .mcp.json or claude_desktop_config.json and get the exact errors — wrong keys, missing fields, trailing commas — with fixes. API keys never leave your browser.
Paste your config to validate it live, or load an example — including a broken one showing the five classic mistakes.
100% client-side · your API keys never leave the page · works for Claude Code & Claude Desktop configs
MCP fails quietly: a malformed config usually means the server just never appears. These are the checks that catch 95% of "my MCP server isn't working".
Trailing commas, comments, single quotes — the classics. Each gets a specific message, not just 'parse error'.
Must be exactly mcpServers. Catches mcp_servers, servers, and servers accidentally placed at the top level.
command present and a string, args an array of separate strings (not one long string), npx with -y so installs don't hang.
url present and http(s) for http/sse servers, headers well-formed, and no leftover command fields being silently ignored.
Object shape, string values, and placeholder detection — <your password> and YOUR_API_KEY get flagged before you spend an hour debugging auth.
Valid type values (stdio / http / sse) and kebab-case server names so your tool names stay clean.
Both Claude Code and Claude Desktop read MCP configs at startup. Edits while running do nothing until you restart (or run claude mcp list to check status).
Claude Code: .mcp.json at the project root (or claude mcp add). Claude Desktop: claude_desktop_config.json in Application Support (macOS) / AppData (Windows). Same shape, different files.
stdio servers need their runtime on PATH — GUI apps don't always inherit your shell's PATH. Use absolute paths (/usr/local/bin/npx) if servers die instantly.
Claude Code has three scopes: local (just you, this repo), project (.mcp.json, committed), user (all projects). claude mcp add --scope project writes the shareable one.
claude mcp add (local or user scope) instead.${API_KEY}) over hardcoding secrets in committed configs.npx waiting for a 'need to install package, ok?' prompt that Claude can't answer. Add -y as the first arg. Second most common: the package name is wrong, so npx sits resolving it.${VAR} expansion in command, args, env, url, and headers — ideal for keeping tokens out of the committed .mcp.json. Claude Desktop is more limited; there you typically hardcode values in the env block.Once your servers connect, the ClaudeThings kits give Claude the playbooks — 103 production-grade skills plus the agents and commands that use your MCP tools well.
Battle-tested Claude skills & workflows for builders.
Turn Claude into your growth team.
Or grab all 89 agents, 103 skills & 181 commands in the Complete Bundle →