Where does the bug appear (feature/product)?
Cursor IDE
Describe the Bug
Summary
My on-demand usage shows input tokens are much higher than output tokens, and I suspect this is because I have many MCP servers configured. It looks like Cursor sends all tool descriptions from all connected MCP servers on every request, which dramatically increases input token usage. Also, whenever I restart Cursor, all MCP servers reconnect automatically, so I can’t easily keep only a subset active.
Details
For November 2025, my usage for non-max-gpt-5 shows roughly:
Cache read: 4,05,13,978 tokens
Input: 32,10,891 tokens
Output: 3,42,342 tokens
Total: 4,40,67,211 tokens
So input tokens are an order of magnitude higher than output tokens.
I have a lot of MCP servers configured. My understanding is that each MCP server exposes multiple tools with long descriptions. If Cursor is always attaching all tool descriptions from all connected MCP servers to each request, that would explain the high input usage.
Right now, whenever I restart Cursor IDE:
All MCP servers are automatically connected.
I have to manually toggle things if I want fewer active.
I have no way to persist my preferred MCP connection state between restarts.
Actual behavior
Input tokens are significantly higher than output tokens, likely due to all MCP tool descriptions being included.
On every restart, all MCP servers reconnect automatically, so I can’t easily keep a minimal set of active MCPs.
Environment
Cursor IDE on macOS
Multiple MCP servers configured (various open-source + custom)
Billing period: November 2025 (screenshot attached)
Request
Can you confirm if MCP tool descriptions from all connected servers are included in every request and contribute to input tokens this way?
Can you provide or consider:
A setting to persist MCP connection state across restarts, and/or
A way to limit which MCP tools are sent per request so we can control input token usage?
Steps to Reproduce
Steps to reproduce
Configure many MCP servers in Cursor (each exposing multiple tools).
Restart Cursor IDE.
Notice that all MCP servers are connected by default.
Use agents/chat normally for some time.
Check Settings → Billing & Invoices → On-Demand Usage and compare input vs output tokens for the same period.
Expected Behavior
Expected behavior
Cursor should avoid sending full descriptions for all MCP tools on every request (e.g., lazy-load, only send relevant tools, or cache/summarise), or
There should be a clear explanation that this is expected and how to optimize for fewer input tokens.
MCP server connection state should be retained across restarts, so if I disconnect certain MCP servers, they stay disconnected until I explicitly reconnect them.
Screenshots / Screen Recordings
Operating System
MacOS
Current Cursor Version (Menu → About Cursor → Copy)
Version: 2.0.75
VSCode Version: 1.99.3
Commit: 9e7a27b76730ca7fe4aecaeafc58bac1e2c82120
Date: 2025-11-12T17:34:21.472Z
Electron: 37.7.0
Chromium: 138.0.7204.251
Node.js: 22.20.0
V8: 13.8.258.32-electron.0
OS: Darwin arm64 25.0.0
Does this stop you from using Cursor
Yes - Cursor is unusable
