Where does the bug appear (feature/product)?
Cursor IDE
Describe the Bug
Summary: Custom ACP clients (voice interfaces, TUI wrappers, IDE integrations)
cannot display meaningful tool call information to users. Built-in tools
(Read, Shell, Grep, etc.) get proper titles and kinds, but MCP tools are
all shown as identical “MCP: tool” entries with no way to distinguish them.
Details:
When Cursor’s ACP agent invokes MCP server tools, the session/update
notifications for tool_call and tool_call_update contain no information
identifying which tool was called.
Observed behavior:
The tool_call event arrives as:
{
“sessionUpdate”: “tool_call”,
“toolCallId”: “call_4RpX0tBz…”,
“title”: “MCP: tool”,
“kind”: “other”,
“status”: “pending”,
“rawInput”: {}
}
Subsequent tool_call_update events contain only status changes and
rawOutput: {"success": true}. No update ever includes the tool name,
server name, input parameters, or any other identifying information.
Steps to Reproduce
- Start
cursor-agent acpwith an MCP server configured - Create a session with
mcpServersinsession/new - Send a prompt that triggers MCP tool calls
- Observe
session/updatenotifications:tool_callhas
title: "MCP: tool",kind: "other",rawInput: {}
Expected Behavior
Per the ACP spec, rawInput should contain “the raw input parameters sent
to the tool” and title should be a “human-readable title describing what
the tool is doing.” For MCP tools, this should include:
title: the MCP tool name or title (e.g. “org: list_cherry_pick_candidates”)rawInput: the actual parameters passed totools/callkind: mapped from MCPannotations.readOnlyHint(e.g.readvsother)
The MCP tool definition includesname,title,description, and
annotationsfields. Cursor has access to all of these from the
tools/listresponse. None of them are forwarded into ACP events.
Operating System
Windows 10/11
Version Information
- Cursor CLI agent (latest as of 2026-03-25)
- MCP SDK 1.27.1 with
registerTool()usingtitleandannotations - ACP protocolVersion 1
- Windows 10, stdio transport
Does this stop you from using Cursor
No - Cursor works, but with this issue