CallMcpTool schema omits arguments, but runtime accepts it

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

In Cursor, the CallMcpTool tool signature appears to only accept { server, toolName }, but in practice it can also accept an arguments payload that is forwarded to the underlying MCP tool. This mismatch causes agents to incorrectly assume they cannot pass tool arguments, leading to input validation errors when calling MCP tools that require parameters.

Steps to Reproduce

Tell the agent to call a mcp tool that requires arguments, it sometimes calls it without arguments. I notice that, so I ask the agent to analyze the reason, and below is from gpt 5.2:

Observed Behavior
Cursor shows CallMcpTool with parameters:
server: string
toolName: string
However, successful calls require passing tool-specific parameters, e.g.:
CallMcpTool({ server, toolName, arguments: { … } })
If arguments is not provided, MCP returns errors like:
MCP error -32602: Input validation error: Invalid input: expected string, received undefined

Analysis / Root Cause Hypothesis
It looks like the Cursor client/runtime supports forwarding an arguments payload to the MCP server/tool, but the tool schema presented to the agent is incomplete or outdated (missing arguments). This creates inconsistent guidance vs. actual capability.

Expected Behavior

The CallMcpTool schema/signature exposed to the agent should include an arguments field (object) that is forwarded to the MCP tool invocation.
The signature shown to the agent and the runtime behavior should match, so agents can reliably infer how to call MCP tools.

Operating System

MacOS

Version Information

Version: 2.4.21
VSCode Version: 1.105.1
Commit: dc8361355d709f306d5159635a677a571b277bc0
Date: 2026-01-22T16:57:59.675Z
Build Type: Stable
Release Track: Default
Electron: 39.2.7
Chromium: 142.0.7444.235
Node.js: 22.21.1
V8: 14.2.231.21-electron.0
OS: Darwin arm64 24.5.0

For AI issues: which model did you use?

GPT-5.2

Additional Information

From GPT 5.2: The problem is not the MCP server/tool itself: the MCP tool descriptor correctly declares required fields. The problem is the discrepancy between the CallMcpTool schema shown to the agent and what the runtime actually supports.

Does this stop you from using Cursor

No - Cursor works, but with this issue

1 Like

Hey, thanks for the detailed bug report, especially the GPT-5.2 analysis, it’s really helpful.

It looks like this is a schema mismatch issue. To pass this to the team with full context:

  1. Can you share the Request ID from a specific chat where the agent incorrectly called an MCP tool with no arguments? (Top-right menu in the chat > Copy Request ID)
  2. Which MCP server and tool was called?

I’ll share this with the team.

The request ID is a58d4827-e966-4d9a-aae7-27a007ac10bc. The MCP server is private hosted. Here is the inputSchema in MCP inspector:

Is there any update on CallMcpTool?
I am facing same issue and I am sure this never happened before.
It should be caused by cursor update.
It seems that CallMcpTool no longer pass parameters to Mcp tools.

{“error”:“MCP error -32602: MCP error -32602: Invalid arguments for tool get_ticket: [\n {\n \“code\”: \“invalid_type\”,\n \“expected\”: \“string\”,\n \“received\”: \“undefined\”,\n \“path\”: [\n \“ticketId\”\n ],\n \“message\”: \“Required\”\n }\n]”}