Where does the bug appear (feature/product)?
Cursor IDE
Describe the Bug
I use a remote HTTP MCP server with OAuth that exposes a large aggregated tool catalog (hundreds of tools). The Cursor desktop app only exposes a small subset to the agent through dynamic MCP discovery (GetDynamicTools and the on-disk mcps catalog under the project folder). The Cursor CLI using the same user MCP configuration lists the full tool set. In the IDE I see failures such as tool not found, and pattern search only finds tools that were written to disk. The CLI works for the same server and config.
Steps to Reproduce
- Configure a remote HTTP MCP server with OAuth in user MCP config, with a large tool catalog.
- Authenticate so the server is connected in both Cursor desktop and the CLI.
- In the CLI run: cursor-agent mcp list-tools SERVER_NAME piped to wc -l. I get 261 tools (observed 2026-09-15).
- In the desktop app, open a project and use Agent or wait for MCP sync.
- Count files in .cursor/projects/PROJECT_ID/mcps/SANITIZED_SERVER_ID/tools/. I get 30 JSON files. The same 30 count appears across multiple projects.
- In desktop Agent, search for or call a tool that appears in the CLI list but not in that on-disk folder. Result is tool not found or no match in GetDynamicTools pattern search.
Actual behavior:
CLI cursor-agent mcp list-tools for the same HTTP server: 261 tools.
Desktop on-disk catalog under mcps/SERVER/tools/: 30 JSON files.
GetDynamicTools for that namespace: about 31 entries, matching what is on disk (a small prefix of tools from one backend plus one vendor meta-tool described as searching tools by context when many are available).
Most tools visible in the CLI list are missing from the desktop catalog and from pattern search.
Other MCP servers in my config use local stdio transport and appear to sync their full tool counts to mcps. The problem is specific to this large HTTP server.
Expected Behavior
Desktop should expose the same MCP tool catalog as the CLI for the same server and configuration, including full tools/list handling and pagination if the server uses nextCursor. GetDynamicTools and CallDynamicTool should work for any tool the server advertises, not only the subset written under mcps.
Operating System
MacOS
Version Information
Version: 3.20.17
VS Code Extension API: 1.128.0
Commit: 0c32194e3fb5ffaced9fb36430b860ec301e1fc0
Date: 2026-09-12T03:16:10.634Z
Layout: Agent Window
Build Type: Stable
Release Track: Default
Electron: 42.10.0
Chromium: 148.0.7778.280
Node.js: 24.18.1
V8: 14.8.178.38-electron.0
xterm.js: 6.1.0-beta.291
OS: Darwin arm64 25.6.0
About Cursor CLI
CLI Version 2026.09.10-fd3934a
Latest 2026.09.10-fd3934a (up to date)
Model Composer 2.5 Fast
Subscription Tier Enterprise
OS darwin (arm64)
Terminal iterm2
Shell zsh
Does this stop you from using Cursor
Yes - Cursor is unusable