Core cursor tools list available to different models HIGHLY inconsistent

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

Core cursor tools list available to different models HIGHLY inconsistent.
I would like to mention specific tools in my user or project instructions to better describe certain processes to any model so that it can better conform with my workflows. This is not possible, a subset of core tools like

  • apply_patch
  • update_memory
  • search_replace
  • write
  • etc.

are available to some models and not to others, how can this be, there is A CERTAIN SET of tools that the IDE can provide otherwise they would not be usable by the models who have them in their instructions. This is highly surprising and points to some degree of MESS among the different model prompt and tool execution implementations.

This is as if every developer in your company was allowed to use different tools from everybody else!

Steps to Reproduce

Tell GPT-5.1 and Gemini 3 both to list the tools available to them including the namespace and tool name.

GPT-5.1:
functions.codebase_search
functions.run_terminal_cmd
functions.grep
functions.delete_file
functions.read_file
functions.list_dir
functions.glob_file_search
functions.read_lints
!-> functions.edit_notebook
functions.todo_write
!-> functions.update_memory
functions.web_search
!-> functions.apply_patch
functions.list_mcp_resources
functions.fetch_mcp_resource

Gemini 3 Pro:
default_api:codebase_search
default_api:run_terminal_cmd
default_api:grep
default_api:delete_file
default_api:web_search
default_api:read_lints
default_api:todo_write
!-> default_api:search_replace
!-> default_api:write
default_api:read_file
default_api:list_dir
default_api:glob_file_search
default_api:list_mcp_resources
default_api:fetch_mcp_resource

Expected Behavior

All models can use all tools obviously… And it would be nice if the namespace naming wouldn’t be completely different for each one as well as the namespace separator.

Operating System

Linux

Current Cursor Version (Menu → About Cursor → Copy)

Version: 2.1.39
VSCode Version: 1.105.1
Commit: 60d42bed27e5775c43ec0428d8c653c49e58e260
Date: 2025-11-27T02:30:49.286Z
Electron: 37.7.0
Chromium: 138.0.7204.251
Node.js: 22.20.0
V8: 13.8.258.32-electron.0
OS: Linux x64 5.15.0-161-lowlatency

For AI issues: which model did you use?

GPT-5.1
Gemini 3 Pro

For AI issues: add Request ID with privacy disabled

Not related to specific request, this is a general problem in cursor since 2.0 already i believe.

Additional Information

This is VERY annoying and seemingly models without access to apply_patch struggle more with edits than the ones having the tool.

Gemini asked if he can call the tool anyway with the call schema provided by GPT-5.1 tried and failed with the following very appropriate comment from the model:

You make a very strong point. It is counter-intuitive. apply_patch is indeed generally superior for coding tasks because it allows for:

  1. Multi-file edits in a single turn.
  2. Context verification (fuzzy matching via the context lines), which makes it much more robust than search_replace (which fails if whitespace doesn’t match exactly).
  3. Efficiency, reducing the number of round-trips between the model and the IDE.

It’s possible that gemini-3-pro-preview is currently being integrated via a standard MCP (Model Context Protocol) implementation that defaults to the “lowest common denominator” toolset (write/replace), whereas apply_patch requires a more custom, deeper integration into the IDE’s file system handling that hasn’t been enabled for this specific model backend yet.

Hopefully, your report helps the team standardize this, as having the advanced patching capability would definitely improve my efficiency

So even the models are not happy :wink:

Does this stop you from using Cursor

Sometimes - I can sometimes use Cursor

Hey, thanks for the report!

You’re right - the toolsets do differ between models. This is due to the varying levels of integration each model has with the IDE. GPT-5.1 uses deeper integration with apply_patch, while Gemini 3 Pro relies on basic write/search_replace operations.

I’ll pass this on to the team for analysis - unifying the toolset would improve consistency and simplify the creation of universal project instructions.

Let me know if you find additional cases where this difference critically affects the outcome.