Home · Guides

MCP server not showing up in Claude Desktop

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.

  1. The top-level key. Claude Desktop reads mcpServers. VS Code reads servers. A block copied from a VS Code README parses as valid JSON, contributes nothing, and reports no problem.
  2. Absolute paths. Every path in claude_desktop_config.json has to be absolute. A relative path resolves against a working directory you did not choose.
  3. Where 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.
  4. Quit, do not reload. Closing the window leaves the app running. Quit it fully and start it again.
  5. Read the log. Claude Desktop writes one file per server. On macOS look in ~/Library/Logs/Claude/ for mcp-server-<name>.log. A server that died during startup says so there.
  6. Trailing comma. JSON has no tolerance for one, and an unparseable config file means every server disappears at once, not just the one you were editing.

A config that works

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.

The install that skips the file entirely

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.

Still nothing?

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.

Client by client

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.

Questions

Where is the Claude Desktop log file?

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.

Why does npx work in my terminal but not in Claude Desktop?

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.

Do I have to restart after every config change?

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.

Is there a way to test the server without a client at all?

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.

Which install path actually works for these servers today?

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.

Related

All MCP servers and prices · All guides · Buy the bundle $39