Driver FixRecommendedSound, Wi-Fi or graphics acting up? Check drivers firstFind missing or outdated drivers fast.Check DriversOctober DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsWindows FixRecommendedWindows errors stealing your time? Find the fix fastScan stability, cleanup and performance issues.Fix Now×
Skip to content
cursor

How to Fix “MCP No Server Info Found”: A Log-First Handshake Troubleshooting Guide

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

“No server info found” is a client symptom, not a root-cause code. It means the MCP client does not have usable server initialization data. The server may never have launched, may have exited, may have polluted a stdio stream, may have broken the transport, or may have returned an invalid or unsupported initialize response. Start with the first error in the client log and the process boundary; do not begin by changing protocol fields at random.

What the message actually means

MCP starts with a mandatory handshake. The client sends an initialize request. A healthy server returns a JSON-RPC result containing a negotiated protocolVersion, a capabilities object, and serverInfo identifying the implementation. The client then sends notifications/initialized before requesting tools, resources or prompts.

A visible process is not proof that this exchange completed. “No server info found” can appear after an executable cannot be created, a process exits during startup, a connection closes, or the client rejects the response. Treat the wording as the end of a failure chain and find the earliest event in the logs.

1. Find the first useful error

Open the client’s server or MCP log and inspect the lines immediately before the message. Record the first occurrence of any of these:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  • command not found, ENOENT, spawn ... ENOENT, or a permission error;
  • a non-zero exit code, connection-closed event, or transport exception;
  • an import or dependency error such as ERR_MODULE_NOT_FOUND;
  • malformed JSON, an invalid JSON-RPC response, or a protocol-version error.

Also record the client and server versions, operating system, transport (stdio or Streamable HTTP), configured command, arguments, working directory, and the first server-side error. Remove API keys, cookies and other credentials before sharing logs. A Cursor community report from July 2025 paired this symptom with spawn npx ENOENT; a separate GitHub issue opened in May 2025 paired it with a process that exited after a missing dependency. Those reports demonstrate launch and crash categories, not a universal fix.

2. Prove that the configured process can launch

Check the exact executable

Run the same executable and arguments outside the client, then verify that the client can see that executable. IDEs often have a different PATH, home directory and working directory from your interactive shell. Use an absolute interpreter and script path where practical. Confirm the file exists, is executable, and targets the intended runtime version.

Check configuration and environment

  • Validate the JSON syntax and required fields in the client configuration.
  • Confirm argument quoting, especially paths containing spaces.
  • Set required environment variables explicitly instead of assuming the IDE inherits your shell.
  • Verify the project’s dependencies are installed in the directory from which the client starts the process.
  • Check permissions and the configured working directory; a client-launched directory may be undefined.

On Windows, test a direct executable path instead of relying on a shell wrapper or batch-file lookup. The cited Cursor report describes a user changing to a direct Node path after command-line errors; use that as a diagnostic experiment, not as a guaranteed remedy.

3. Keep stdio protocol traffic clean

With stdio transport, stdout is the MCP protocol channel. The Model Context Protocol debugging documentation states: “Local MCP servers should not log messages to stdout (standard out), as this will interfere with protocol operation.” Startup banners, progress messages, stack traces and debug prints on stdout can make an otherwise valid handshake unparsable.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Send diagnostics to stderr instead. In Node.js use console.error(); in Python use print(..., file=sys.stderr). Capture stdout separately and check that it contains only the protocol messages expected by the SDK. For Streamable HTTP, inspect HTTP requests, responses and server logs rather than assuming stdio rules apply.

4. Inspect the initialize exchange

If launch succeeds, capture the raw exchange using the client’s trace facility, server logging, or an appropriate protocol inspector. Verify each item:

  1. The first request is an initialize JSON-RPC request with an identifier.
  2. The response is a JSON-RPC result tied to that identifier, not an error, HTML page or log line.
  3. The result includes protocolVersion, capabilities, and serverInfo with implementation identity fields.
  4. The returned protocol version is supported by the client. MCP version negotiation requires a client that cannot support the selected revision to disconnect.
  5. After the successful result, the client sends notifications/initialized.

Do not add fake capabilities merely to make a user interface advance. The capability map must describe features the server really implements. An invalid version, missing field, wrong JSON-RPC envelope, or response written to the wrong transport is evidence of a protocol or SDK integration problem.

5. Compare an independent test with the target client

Use MCP Inspector, the interactive tool recommended by the official debugging guidance, against the same server command, arguments, environment and transport. Inspector can separate a server/runtime failure from a host-specific failure:

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  • Client logs show how the host created the process and handled the connection.
  • Server stderr and runtime logs show dependency, import and application failures.
  • Inspector shows whether an independent client can complete the protocol exchange.
  • The intended client is the final authority for its own configuration and UI.

If Inspector succeeds but Cursor or another host fails, compare launch environments and protocol-version support rather than rewriting working server code. Success in one client does not prove compatibility with another.

Common symptom-to-check map

Evidence Likely layer Next action
ENOENT, command not found Process creation or PATH Use an absolute executable path; verify the client environment and working directory.
Process exits with module/import error Runtime or dependency Install dependencies in the launched project, then rerun the exact command manually.
Process remains alive but client reports no info Stdio contamination or blocked handshake Move all ordinary logs to stderr and inspect stdout and initialization timing.
Connection closes during initialize Transport, crash or timeout Read server stderr, check startup duration, endpoint/port and proxy behavior.
Response lacks required fields or uses an unsupported version Protocol/SDK compatibility Compare the server’s initialize result with the client’s supported revision and correct the implementation.

6. Make one controlled change and verify

Change only the layer identified by evidence: path, arguments, JSON configuration, environment, dependency, stdout logging, transport or protocol response. Restart the server and client as needed, then repeat the same log capture. Keep a before-and-after copy of the configuration so a new change does not hide the original failure.

Consider the fix complete only when the intended client completes initialization and displays the expected tools, resources or prompts. If the server intentionally exposes none of those capabilities, a successful handshake can still produce an empty tool view; distinguish that from “no server info.”

Cursor-specific checks

For Cursor, inspect the MCP server entry actually loaded by the current profile, not only the file you edited. Confirm the command is available to the Cursor process, arguments are valid JSON strings, and required environment variables are present. A terminal success using npx does not prove Cursor can resolve npx. Test the direct runtime path and the project’s absolute entry point, then read the first Cursor log error before changing SDK or protocol versions.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

When the process is “running” but no tools appear

“Running” may only mean a child process exists. Check that initialization completed, notifications/initialized was sent, and the server advertises the tools capability. Then request the tool list and inspect the server response for an empty result, an error, or a timeout. An empty but valid list is a server configuration or implementation decision; a missing server identity is an earlier handshake failure.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Or skip the browser setup

If your goal is dependable website screenshots for an MCP workflow, ScreenshotNeo provides an API and MCP server rather than requiring you to maintain a browser launcher. One GET request returns PNG, JPEG, WebP or PDF. Cookie/consent banners, newsletter popups and chat widgets are removed before capture; bot checks, blank pages, timeouts, failed loads and cache hits are not billed, and response headers identify the page verdict and billing status. Its MCP tools—take_screenshot, get_page_info and capture_pdf—work with Claude, Cursor and other MCP clients.

See the ScreenshotNeo API documentation for all options, including full-page and selector capture, device presets, custom CSS/JavaScript, waits, blocking rules, headers, cookies, geolocation, PDFs, caching, signed links, webhooks and bulk capture.

cURL

curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp

Python

import requests
r = requests.get("https://api.screenshotneo.com/v1/shot", params={"access_key": "YOUR_API_KEY", "url": "https://stripe.com"}, timeout=90)
open("shot.webp", "wb").write(r.content)

Node.js

const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://stripe.com' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);

The Free plan includes 1,000 screenshots per month with no card; paid plans start at $5 for 3,000 shots, and every feature is included on every plan. Create a free ScreenshotNeo account.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

FAQ

Does reinstalling Node fix this error?

Only if your logs establish a broken or missing runtime. Reinstalling without identifying the failing layer can leave the real path, dependency or protocol problem unchanged.

Should I downgrade the MCP SDK?

Not as a first step. Confirm the returned protocol version and the client’s supported revision, then change SDK versions only when that evidence shows incompatibility.

Why does Inspector work while my client fails?

The two clients may use different environment variables, working directories, transports, timeouts or supported protocol revisions. Compare their launch and initialize traces.

Can a valid handshake still show no tools?

Yes. A server can initialize successfully while advertising no tools or while returning an empty tool list. That is different from missing serverInfo or a failed initialization.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Frequently Asked Questions

Does reinstalling Node fix this error?

Only when logs show a broken or missing runtime; otherwise verify the launch path, dependencies and handshake first.

Should I downgrade the MCP SDK?

Only after confirming a protocol-version incompatibility. Do not use a downgrade as a blind workaround.

Why does Inspector work while my client fails?

The clients may differ in environment, working directory, transport, timeout or supported protocol revision.

Can a valid handshake still show no tools?

Yes. Successful initialization can legitimately expose an empty tool list.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Read next

Recommended PC Tool
Recommended PC Tool
PC Slower Than It Used to Be?Free scan - under a minute
Crashes, No Sound, or Screen Glitches?Free driver scan

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.