MCP servers crashing immediately after V2.5.20 update

Where does the bug appear (feature/product)?

Somewhere else…

Describe the Bug

User-configured MCP servers (defined in ~/.cursor/mcp.json) intermittently drop out of the agent’s API tool payload during an active conversation, despite the MCP server process remaining healthy and Cursor’s own MCP subsystem successfully connecting to it and listing all tools.

The behavior has three observed failure modes, all within a single conversation session:

  1. Tools absent from payload entirely. The agent’s API call contains only Cursor-native tools (Shell, Glob, Read, etc). Zero user MCP tools are injected. The MCP server process is running. Cursor’s MCP log (MCP user-file-control.log) shows successful CreateClient + ListOfferings calls returning 25 tools. But those tools are not included in the agent’s function definitions.

  2. Tools listed in payload but not callable. After a restart, the agent sees all 25 user MCP tools in its function definitions. But calling any of them returns "Tool not found". The tool names are present in the API schema but the execution routing to the MCP server fails.

  3. Full UI degradation. macOS Apple menu items (File, Edit, View, etc.) become greyed out and unclickable. Cursor Settings cannot be opened. The app is in a partially-hung state. MCP tools are non-functional during this state. Only a full quit + restart resolves it.

All three modes occurred within a 45-minute window in a single conversation. The MCP server process (Python stdio) never crashed — verified via ps aux showing continuous uptime. Cursor’s own MCP user-file-control.log shows zero errors and successful 25-tool listings on every ListOfferings call throughout the entire session.

Steps to Reproduce

  1. Define three MCP servers in ~/.cursor/mcp.json (global config). All three are Python stdio servers.
  2. Start Cursor. Verify MCP servers start (green indicators in Settings > Tools & MCP).
  3. Open an existing agent conversation. Verify user MCP tools appear in the agent’s tool list.
  4. Continue working in the conversation — text exchanges, tool calls, normal usage.
  5. At some unpredictable point (observed after 10-20 minutes), user MCP tools disappear from the agent’s API payload. The agent can no longer call any user MCP tool.
  6. Cursor’s MCP log continues to show successful ListOfferings returning all tools — the server is healthy and Cursor knows the tools exist, but they are not injected into the agent’s API call.
  7. In some occurrences, macOS menu items (File, Edit, View, Settings) become greyed out simultaneously, indicating the Electron main process is partially hung.
  8. Quitting and restarting Cursor temporarily restores functionality, but the cycle repeats.

Note: No agent action triggers the drop. During the observed session, the agent performed only text responses and date shell commands between the working state and the broken state. No file edits, no configuration changes, no restart_mcp calls.

Expected Behavior

User-configured MCP servers should remain available to the agent for the entire duration of a conversation. If Cursor’s MCP subsystem can successfully connect to the server and list its tools (which it does — confirmed via logs), those tools should be included in every agent API call’s function definitions. Tools should not silently drop from the payload while the server is running and healthy.


Operating System

MacOS

Version Information

Version: 2.5.20
VSCode Version: 1.105.1
Commit: 511523af765daeb1fa69500ab0df5b6524424610
Date: 2026-02-19T20:41:31.942Z
Build Type: Stable
Release Track: Default
Electron: 39.4.0
Chromium: 142.0.7444.265
Node.js: 22.22.0
V8: 14.2.231.22-electron.0
OS: Darwin arm64 25.2.0

For AI issues: which model did you use?

Claude claude-4.6-opus (via Cursor Agent mode)
Claude claude-4.6-sonnet (via Cursor Agent mode)

For AI issues: add Request ID with privacy disabled

87291bef-7df5-427d-80d1-00111001d0f8

Additional Information

Diagnostic evidence collected during the session:

MCP server log (MCP user-file-control.log) shows 7 successful CreateClient + ListOfferings cycles between 14:26:00 and 14:48:51 PST. Every single cycle returned “Found 25 tools, 0 prompts, and 0 resources.” Zero errors. The server was never unreachable.

Process verification: ps aux confirmed the MCP server process (PID 296) running continuously from 14:25 through 15:05+ PST. The Python stdio process never crashed or restarted.

state.vscdb inspection:

  • mcpService.knownServerIds contains 6 entries (both user-* and project-0-* prefixed — duplicates from a previous configuration consolidation).
  • cursor/approvedProjectMcpServers is an empty array [].
  • cursor/disabledMcpServers is an empty array [].
    The empty approvedProjectMcpServers array may be relevant — if Cursor requires explicit approval to inject tools, this could explain why tools are discoverable but not injectable.

Cursor Plugins log (4-Cursor Plugins.log) shows “0 plugins loaded” on every reload cycle. No plugin conflicts detected, though the plugins system infrastructure is running.

Related forum posts (same bug class):

Timeline summary:

Time (PST) Event
14:25:22 Agent payload: 19 tools (native only). MCP server not yet started.
14:25:59 Cursor starts MCP server. “Successfully connected to stdio server.”
14:26:00 Cursor ListOfferings: 25 tools found.
14:26:51 Agent payload: 44 tools (19 native + 25 user MCP). Working correctly.
14:28–14:39 Text-only exchanges. No file edits. No config changes.
14:28:41 Cursor ListOfferings: 25 tools found. Server healthy.
14:29:18 Cursor ListOfferings: 25 tools found. Server healthy.
~14:35 Agent attempts MCP tool call — “Tool not found.” Tools dropped from payload.
14:39:05 Cursor ListOfferings: 25 tools found. Server STILL healthy.
14:48:04 Cursor ListOfferings: 25 tools found. Server STILL healthy.
15:01 Apple menu items greyed out. Cannot open Settings. Full UI degradation.
15:05 After restart: tools listed in payload but not callable (“Tool not found” on execution).
15:05+ Second restart fully restores functionality.

Does this stop you from using Cursor

Yes - Cursor is unusable

Hey, thanks for the report.

This overlaps with a known issue where MCP tools stop being injected into the agent payload, even though the MCP subsystem still shows the servers as healthy. You found the right related thread. That user on v2.5.20 had the same thing, and this helped:

  • Remove all Cursor Plugins (Settings > Plugins) if you have any installed.
  • In Settings > Tools & MCP, turn off all MCP servers, wait a couple seconds, then turn them back on.
  • Start a new chat, don’t continue the old one.

A couple quick questions:

  • Do you have any Cursor Plugins installed (not MCP servers, actual plugins like Stripe, Linear, etc.)? Even if it says “0 plugins loaded”, the plugin system itself can still conflict.
  • Duplicates in knownServerIds (user-* and project-0-*) might be related to what you mentioned about “previous configuration consolidation”. Try cleaning it up. Remove all servers from settings, restart Cursor, then re-add them only via ~/.cursor/mcp.json.

The team is aware of this behavior.

Let me know if the toggle/plugins workaround helped.