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:
-
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 successfulCreateClient+ListOfferingscalls returning 25 tools. But those tools are not included in the agent’s function definitions. -
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. -
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
- Define three MCP servers in
~/.cursor/mcp.json(global config). All three are Python stdio servers. - Start Cursor. Verify MCP servers start (green indicators in Settings > Tools & MCP).
- Open an existing agent conversation. Verify user MCP tools appear in the agent’s tool list.
- Continue working in the conversation — text exchanges, tool calls, normal usage.
- 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.
- Cursor’s MCP log continues to show successful
ListOfferingsreturning all tools — the server is healthy and Cursor knows the tools exist, but they are not injected into the agent’s API call. - In some occurrences, macOS menu items (File, Edit, View, Settings) become greyed out simultaneously, indicating the Electron main process is partially hung.
- 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.knownServerIdscontains 6 entries (bothuser-*andproject-0-*prefixed — duplicates from a previous configuration consolidation).cursor/approvedProjectMcpServersis an empty array[].cursor/disabledMcpServersis an empty array[].
The emptyapprovedProjectMcpServersarray 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):
- Agents skip or ignore user-installed MCP servers since plugins were introduced (Feb 19, 2026, v2.5.17)
- New Linear Plugin causes Agent to not detect Atlassian MCP (Feb 18, 2026, v2.5.17)
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