Menu

AI

MCP Server Command Not Found on macOS (PATH Issues): How to Fix It (Claude Desktop, Cursor, Claude Code)

Fix MCP servers that fail on a Mac because npx, node, uvx or python is not found. Why GUI apps miss your shell PATH, and how absolute paths in the config fix it.

By: Irina ShvayaNovember 2, 2026

MCP Server Command Not Found on macOS (PATH Issues): How to Fix It (Claude Desktop, Cursor, Claude Code)

This fix is part of MCP troubleshooting, within The MCP Guide. Still stuck? Request a free MCP readiness review.

On macOS, an MCP server that works in Terminal but fails in Claude Desktop or Cursor is usually a PATH problem. Apps opened from the Dock or Finder do not load your .zshrc, so tools installed by Homebrew, nvm or uv may be invisible to them. The fastest fix is to run which npx (or which uvx, which node) in Terminal and paste that full path into the command field of your MCP config, then quit and reopen the app.

Checked against: the MCP debugging guide, the MCP local server guide, Cursor's MCP docs, Homebrew's installation docs and the nvm README on 2 November 2026. eSEOspace did not run these steps on a Mac.

Key Takeaways

  • The MCP debugging guide tells you to "try using an absolute path for command" when a server will not start.
  • Stdio servers inherit only a limited set of environment variables, so your shell's PATH changes may not reach them.
  • Homebrew installs to /opt/homebrew on Apple silicon Macs, which is not on every app's default search path.
  • nvm keeps Node under ~/.nvm/versions/node/<version>/, and only shells that load nvm can find it.
  • The working directory of a server started by Claude Desktop "may be undefined (like / on macOS)," so every file path in args must be absolute too.

What this error means

When you type npx in Terminal, zsh searches the folders in your PATH. Your .zshrc or .zprofile adds Homebrew, nvm or uv folders to that list. A desktop app does not run those files, so its PATH is shorter.

The client then tries to start npx and cannot find it. Depending on the client, you see spawn npx ENOENT, "command not found," or simply a server marked as failed. The MCP debugging guide lists "incorrect server executable path" first among common startup problems.

A second version of the same problem is a relative file path. The guide says the working directory for a client-launched server may be / on macOS. So ./data points at the root of your disk, not your project.

Quick fix

  1. Open Terminal and run which npx, which node, which uvx or which python3, whichever your server uses.
  2. Copy the full path it prints.
  3. Put that path in the command field instead of the bare name.
  4. Replace every relative path in args with an absolute one, such as /Users/you/project/data.
  5. If the launcher itself calls node (as npx does), also set PATH in the server's env block so child processes can find it.
  6. Quit the app with Cmd+Q and open it again.

Example for a Node server when Node comes from nvm:

{
  "mcpServers": {
    "filesystem": {
      "command": "/Users/you/.nvm/versions/node/v22.11.0/bin/npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/you/Desktop"],
      "env": {
        "PATH": "/Users/you/.nvm/versions/node/v22.11.0/bin:/usr/bin:/bin"
      }
    }
  }
}

Your version folder will differ. nvm which current prints the path of the active node, according to the nvm README. The README also warns that nvm needs its shell setup to run, and that non-interactive shells do not source the usual profile files.

Fix by client / OS

Claude Desktop

The config file is ~/Library/Application Support/Claude/claude_desktop_config.json. Open it from Settings > Developer > Edit Config, as the local server guide shows. Its troubleshooting list also asks you to make sure paths in the file "are valid and that they are absolute and not relative." Our Claude Desktop Mac setup guide walks through the full file.

Cursor

Cursor's MCP docs say command "must be available on your system path or contain its full path." Cursor also expands ${userHome} and ${workspaceFolder} in command and args, which helps when a team shares .cursor/mcp.json. Cursor's help page adds that variables from your shell profile must be available to Cursor, and to restart Cursor after you change the profile.

Claude Code

Claude Code runs in your terminal, so it inherits that shell's PATH. PATH problems are rarer there, but they can appear when the server needs a different Node version than your shell's default. Pass the absolute command after --:

claude mcp add filesystem -- /opt/homebrew/bin/npx -y @modelcontextprotocol/server-filesystem /Users/you/Desktop

Claude Code's docs also set CLAUDE_PROJECT_DIR in the server's environment, so a server can resolve project paths without relying on the working directory.

VS Code

The VS Code troubleshooting table says to check "the command, arguments, runtime installation, and PATH in the execution environment." If you opened VS Code from the Dock, the same rule applies: use full paths.

Homebrew, nvm and uv locations

  • Homebrew on Apple silicon: /opt/homebrew/bin, per Homebrew's docs.
  • nvm: ~/.nvm/versions/node/<version>/bin. The path changes when you switch versions, so update the config after nvm install.
  • uv and uvx: installed in your user executable directory by default, per uv's installer docs. Run which uvx to see the exact folder. See also uvx not found.

Where to find the logs

Claude Desktop writes mcp.log and mcp-server-SERVERNAME.log to ~/Library/Logs/Claude. Follow them live with:

tail -n 20 -F ~/Library/Logs/Claude/mcp*.log

In Cursor, open the Output panel with Cmd+Shift+U and select MCP Logs. In VS Code, run MCP: List Servers, pick the server and choose Show Output. In Claude Code, run /mcp.

If it still fails

  • spawn npx ENOENT stays. Read our full spawn npx ENOENT fix.
  • Wrong Node version. A full path to an old Node can start, then crash on new syntax. See MCP Node version errors.
  • Permission denied. Check that the file is executable and that macOS privacy settings allow access to folders such as Desktop or Documents.
  • The server prints to stdout. Any banner on stdout breaks the JSON stream, even with the right path.

Decode JSON-RPC codes from the log with the MCP error code lookup, or rebuild your block with the MCP config generator.

Next step

Absolute paths also make your setup easier to review, because you can see exactly what runs. If you roll MCP out to a team of Mac users, eSEOspace's MCP development team can help package servers so nobody edits JSON by hand.

More in the MCP Guide

Free tools: MCP Error Code Lookup · MCP Config Generator

Latest research: State of MCP: October 2026

Frequently asked questions

Why does npx work in Terminal but not in Claude Desktop?

Terminal loads your shell profile, which adds Homebrew or nvm folders to PATH. Claude Desktop, opened from the Dock, does not. Point command at the full path from which npx.

Will opening the app from Terminal fix it?

Often, because the app then inherits the shell's environment. It is a useful test, but you would need to do it every time. Absolute paths in the config are the lasting fix.

Do I need absolute paths in args too?

Yes, for any file or folder. The MCP debugging guide says the working directory may be / on macOS, so relative paths resolve from the wrong place.

My path breaks after updating Node. Why?

nvm stores each version in its own folder. When you install a new version, the old path may vanish. Run which npx again and update the config, or point to a stable install such as Homebrew's.

You Might Also like to Read

Get a FREE Website Audit

Enter your website and get a 20–30 page SEO, GEO, AEO & CRO audit within 24 hours. Completely free.

Don't have a site yet? Get in touch →

Ready to speak with a marketing expert?
Give us a call! (916) 866-7893

Websites Launched
1407
Websites Launched
Marketing Experts
29
Marketing Experts
Hours of Dedicated Work
204533
Hours of Dedicated Work
Irina S.Benjamin G.Jeanette M.David G.