Menu

AI

MCP Server Node.js Version Errors: How to Fix Them (Claude Desktop, Cursor, Claude Code)

Fix MCP servers that fail because of the wrong Node.js version. Check engines requirements, find which node the client really runs, and pin a supported LTS release.

By: Irina ShvayaNovember 2, 2026

MCP Server Node.js Version Errors: How to Fix Them (Claude Desktop, Cursor, Claude Code)

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

An MCP server fails with a Node.js version error when the node that your client runs is older (or sometimes newer) than the server package supports. Symptoms include syntax errors at startup, missing built-in modules, EBADENGINE warnings, or a server that exits right after it starts. The fastest fix is to check the package's engines field with npm view <package> engines, find which node the client actually uses, and point the config at a supported LTS release by full path.

Checked against: the Node.js releases page, the npm package.json docs, the MCP Inspector docs, the MCP build-a-server tutorial and the npm registry entries for the MCP packages named below, all on 2 November 2026. eSEOspace did not run each package on each Node version.

Key Takeaways

  • As of 2 November 2026, nodejs.org lists Node 26 (Lithium), 24 (Krypton) and 22 (Jod) as LTS lines; Node 20 and 18 are end-of-life.
  • Requirements differ by package: the npm registry lists >=18 for @modelcontextprotocol/sdk 1.32.2, >=20 for @modelcontextprotocol/server 2.4.0, and >=24 for @modelcontextprotocol/server-filesystem 2.1.0.
  • The MCP Inspector docs say it "requires Node 22.19.0 or newer."
  • npm's docs say engines is "advisory only" unless engine-strict is set, so an install can succeed and the server still fail.
  • With nvm or similar tools, the client may run a different node than your terminal.

What this error means

Each npm package can declare the Node versions it supports in engines. The npm docs say this field is "advisory only" and "will only produce warnings when your package is installed as a dependency." So npx -y some-server may download a package and then crash on an old Node.

These requirements move. When checked on 2 November 2026, the npm registry showed:

PackageVersionengines.node
@modelcontextprotocol/sdk1.32.2>=18
@modelcontextprotocol/server2.4.0>=20
@modelcontextprotocol/inspector2.13.0>=22.19.0
@modelcontextprotocol/server-filesystem2.1.0>=24

The filesystem server's 2.1.0 release was published on 28 October 2026. If your setup used it with Node 20 or 22 before, a fresh npx -y now pulls a version that asks for Node 24.

The Node.js releases page says "production applications should only use Active LTS or Maintenance LTS releases." It lists v26.13.0 as the latest LTS.

Quick fix

  1. Read the requirement. Run npm view <package> engines.
  2. Check your Node. Run node --version in a terminal.
  3. Find which node the client runs. Run which node (macOS, Linux) or where node (Windows). If you use nvm, the client may not see the same one.
  4. Install a supported LTS from nodejs.org or your version manager. The local server guide recommends the LTS version.
  5. Point the config at it with a full path, and add its folder to PATH in env so npx finds the matching node.
  6. Or pin an older package version that supports your Node, for example @scope/package@x.y.z in args.
  7. Restart the client.
{
  "mcpServers": {
    "filesystem": {
      "command": "/Users/you/.nvm/versions/node/v24.11.0/bin/npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/you/Desktop"],
      "env": {
        "PATH": "/Users/you/.nvm/versions/node/v24.11.0/bin:/usr/bin:/bin"
      }
    }
  }
}

Your version folder will differ.

Fix by client / OS

Claude Desktop with a JSON config

Claude Desktop launches the command you give it. A GitHub thread on nvm reports that with nvm, "the app tries to use an incorrect Node and fails," and recommends absolute paths to the Node executable and the server script.

Claude Desktop extensions

Claude's help article says Claude Desktop "includes a built-in Node.js environment" for desktop extensions. You do not control that version. A bug report on SAP's Fiori MCP extension describes a server that exited under the built-in runtime and worked with a system Node. If you hit this, ask the extension's maintainer, or run the server from a JSON config with your own Node.

Cursor and VS Code

Both start stdio servers with the command you give them. Use a full path to a supported node or npx. Check MCP Logs in Cursor, or MCP: List Servers > Show Output in VS Code.

Claude Code

Claude Code inherits your terminal's environment, so node --version in the same terminal usually tells you what servers get. The Claude Code MCP docs show adding a server with an explicit command after --.

Building your own server

The MCP build tutorial says its TypeScript example needs "Node.js version 20 or higher" and uses the @modelcontextprotocol/server package. Set engines in your own package.json so users get a warning early.

Where to find the logs

  • Claude Desktop: mcp-server-SERVERNAME.log shows the Node error text. Folders: ~/Library/Logs/Claude, %APPDATA%\Claude\logs, ~/.config/Claude/logs.
  • Cursor: Output panel, MCP Logs.
  • VS Code: Show Output on the server.
  • Claude Code: claude mcp get <name>.

If it still fails

Our course lesson on the MCP dev environment covers a clean setup. For teams, MCP development support can pin versions across machines.

More in the MCP Guide

Free tools: MCP Error Code Lookup · MCP Config Generator

Latest research: State of MCP: October 2026

Frequently asked questions

Which Node.js version should I use for MCP servers?

Use a current LTS release that meets the server's engines field. As of November 2026, nodejs.org lists Node 26, 24 and 22 as LTS.

Why did my server break without any change on my side?

If your config uses npx -y package-name without a version, npx can pick up a newer release of the package. A new release can raise its Node requirement. Pin the version to avoid this.

Does npm stop me from installing a package that needs newer Node?

Not by default. npm's docs say engines is advisory unless engine-strict is set. You get a warning, and the failure shows up at runtime.

Can I use different Node versions for different servers?

Yes. Give each server its own full path to node or npx, and set PATH in that server's env block.

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.