Where does the bug appear (feature/product)?
Cursor IDE
Describe the Bug
Product / feature
- Cursor MCP integration
CallMcpTooltool used by agents
Description
There is a mismatch between the schema exposed to the agent for CallMcpTool and the actual runtime behavior.
- The schema shown to the agent only exposes:
{ server: string; toolName: string; } - In reality, the runtime also supports and requires an
argumentspayload for many MCP tools:CallMcpTool({ server, toolName, arguments: { ... } })
Because the arguments field is missing from the schema, agents assume they cannot pass any parameters and end up calling MCP tools without required inputs, which triggers input validation errors on the MCP server.
This is not a problem with the MCP server itself — the MCP tool descriptors correctly declare required fields. The problem is that the schema/signature presented to the agent is incomplete, so the agent makes systematically wrong calls.
Reproduction steps
Actual behavior
-
CallMcpToolschema exposed to the agent does not include anargumentsfield. -
Agents therefore call MCP tools with no arguments, even when the tool’s input schema requires them.
-
MCP tools return validation errors like:
Invalid arguments for tool X: expected string, received undefined, message: “Required”
-
Only when the agent (or user) manually adds an undocumented
argumentsfield do the calls succeed.
Why this matters
- MCP tools often have non-optional input fields (e.g.
action,id,key, etc.). - As long as
argumentsis missing from the schema, agents will systematically under-supply inputs and generate noisy validation errors, even though the MCP server and descriptors are correct. - This affects any MCP server that relies on required parameters, including CloudBase MCP and custom servers.
Steps to Reproduce
-
Configure a standard MCP server with a tool that has a required input field.
Example: CloudBase MCPenvQuery:type EnvQueryInput = { action: 'list' | 'info' | 'domains' | 'hosting'; // required }; -
Let the agent call this tool via
CallMcpToolusing only the schema it sees (noargumentsfield):{"server":"user-cloudbase","toolName":"envQuery"} -
The MCP server returns an error similar to:
{ "error": "MCP error -32602: MCP error -32602: Invalid arguments for tool envQuery: [ { \"expected\": \"'list' | 'info' | 'domains' | 'hosting'\", \"received\": \"undefined\", \"code\": \"invalid_type\", \"path\": [\"action\"], \"message\": \"Required\" } ]" } -
Now manually call
CallMcpToolwith anargumentspayload, even though it is not in the schema:{ "server": "user-cloudbase", "toolName": "envQuery", "arguments": { "action": "info" } } -
This time the MCP tool works as expected and returns a valid response (in CloudBase’s case, an
AUTH_REQUIREDwith a suggestedauthflow, then a device-code login challenge, etc.).
This proves that:
- The runtime does support and forward
arguments. - The schema shown to the agent is simply incomplete, leading it to omit required parameters.
Expected Behavior
-
The
CallMcpTooltool signature exposed to the agent should include anargumentsfield, e.g.:{ server: string; toolName: string; arguments?: Record<string, unknown>; } -
The schema presented to the agent and the runtime behavior should be consistent, so that agents can correctly infer how to call MCP tools with required inputs.
Operating System
MacOS
Version Information
Version: 2.6.19 (Universal)
VSCode Version: 1.105.1
Commit: 224838f96445be37e3db643a163a817c15b36060
Date: 2026-03-12T04:07:27.435Z
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 24.6.0
For AI issues: which model did you use?
Auto
For AI issues: add Request ID with privacy disabled
4f814b68-79ad-4e44-8d5a-a0c915c23a4c
Does this stop you from using Cursor
Yes - Cursor is unusable