Hey, thanks for the detailed report. I dug into what’s going on.
The Too many MCP tools are enabled for this model error isn’t a separate CLI limit. It’s a per-model provider cap on the number of tools. On the Cursor side, the MCP tools limit is shared across the CLI and the IDE, but the CLI currently sends all configured MCP tool definitions in a single request, while the IDE effectively sends a lot fewer. Because of that, the CLI hits the model’s tool limit sooner, which makes it feel like there’s a stricter cap.
For now, the workaround is:
Disable or trim some MCP servers so there are fewer active tools in your CLI session.
Or switch to a model with a higher tool cap.
We’re aware of the CLI eagerly loading all tool definitions and we’ve logged an issue for it. I can’t share an ETA yet, but I’ll post an update in the thread when I have one.
Thanks for explaining. This indeed can be quite a nuisance as I setup my CLI configuration to match the MCP tooling and environment that exists in the Cursor app.
I am using the Auto model and have no other alternative.
Could I work around this by loading a small subset and progressively loading the remainder once the agent session is initialized?
Progressive loading isn’t supported right now. The CLI ships all configured MCP tool definitions at the start of the session, and you can’t load or switch servers at runtime. /mcp only supports list and list-tools, so there’s no runtime toggle. The “lazy” tool loading you’re asking about is exactly what we’ve logged internally.
Since you’re on Auto and don’t want to pin a specific model, the only practical lever is to reduce how many MCP servers are active in a given CLI session, so the total tool count doesn’t hit the per-model cap:
Keep a lightweight per-project set of servers via .cursor/mcp.json instead of loading the full global set.
Check the actual tool count with cursor-agent mcp list and cursor-agent mcp list-tools <server> to see what’s eating the limit.
Leave enabled only the servers you really need for the current task.
Once there’s an update on lazy-loading, I’ll reply in the thread.