Six things break this, and they break it silently. Work down the list in order; the first four account for nearly everything, and none of them produce an error message you would ever see.
mcpServers. VS Code reads
servers. A block copied from a VS Code README parses as valid JSON, contributes nothing,
and reports no problem.claude_desktop_config.json has to be
absolute. A relative path resolves against a working directory you did not choose.npx lives. A stdio server launched by Claude Desktop inherits
a limited subset of your shell environment. If node came from nvm, asdf or Homebrew, the bare word
npx is not on the inherited PATH. Paste what which npx prints.~/Library/Logs/Claude/ for mcp-server-<name>.log. A server that died
during startup says so there.On macOS this file is at ~/Library/Application Support/Claude/claude_desktop_config.json,
on Windows at %APPDATA%\Claude\claude_desktop_config.json. Settings, then the Developer
tab, then Edit Config creates it if it is not there.
{
"mcpServers": {
"invoice": {
"command": "/Users/you/.nvm/versions/node/v22.14.0/bin/node",
"args": ["/Users/you/mcp-servers/servers/invoice/dist/index.js"]
}
}
}
Absolute node, absolute script, no shell involved. That form survives all three of the failures above at once.
Claude Desktop takes .mcpb bundles, which are a zip of the server plus its manifest,
and it ships its own Node runtime, so nothing about your PATH matters. Download a bundle from the
latest release and double
click it. The v0.20.0 release carries 31 of them, one per server, measured with
gh api repos/theluckystrike/mcp-servers/releases/latest on 2026-09-07.
If you built a bundle yourself, it goes in through Settings, Extensions, Advanced settings, Extension Developer, Install Extension.
Two cases the list above does not cover. First, the tool ceiling: some clients cap how many tools they will surface at once, so a large bundle can crowd out a small server. The office-suite bundle in this repository exposes every child at once, which is convenient and is also the fastest way to hit that ceiling; install the two or three servers you actually use instead. Second, a server that starts and then exits: that is a crash, not a config problem, and the log file names it.
You can also sidestep local processes completely. mcp/connect mints a free anonymous token and prints an HTTPS URL per server that any client taking a remote URL will accept. Nothing is installed and no PATH is consulted.
The config path, the key name and the one caveat that bites for each client are on the setup pages, one per client and server, with the client's own documentation URL and the date it was read.
macOS: ~/Library/Logs/Claude/, with one mcp-server-<name>.log per configured server plus mcp.log for the client side. Windows: %APPDATA%\Claude\logs\. A server that fails at startup writes its stderr there, which is usually a missing binary or a stack trace from the server itself.
Because the app does not run your shell profile. Your terminal PATH is built by .zshrc or .bash_profile; a stdio server spawned by a GUI app inherits a smaller, platform-dependent environment. Run `which npx` and paste the absolute result into the command field.
In Claude Desktop, yes, and it has to be a full quit rather than closing the window. Claude Code does not need one at all: the entry is live in the next session and /mcp reconnects on demand. Cursor picks the server up when its Customize page next lists it.
Yes. Run the server binary directly from a terminal and it speaks JSON-RPC over stdio. If it prints a startup banner and waits, the server is fine and the problem is in the client config. If it exits, you have the error text in front of you.
The .mcpb bundle or a clone and build. The npm packages are not published yet: a probe of registry.npmjs.org on 2026-09-07 returned no versions for @theluckystrike/mcp-invoice, mcp-time-tracker, mcp-spreadsheet, mcp-zip, mcp-pdf or mcp-quotes, which matches the npm status section of the repository README. The hosted URLs need no install.
All MCP servers and prices · All guides · Buy the bundle $39