Cursor出现“Tool Call Error”是因MCP工具定义不合规,需检查JSON是否含function顶层键、验证Agent调用链、修正Schema格式并重置工具环境。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

Cursor在调用外部工具(如终端命令、代码生成、文件操作等)时突然中断并弹出“Tool Call Error”,通常意味着AI Agent尝试执行某项操作时,底层工具调用链断裂或参数格式非法——不是模型没响应,而是根本没走到执行那一步。
确认是否为新版MCP工具调用协议不兼容
第一步:打开Cursor设置 → Extensions → MCP Tools,检查当前启用的工具列表中是否存在未配置function字段的自定义Tool JSON。
第二步:点击任一工具右侧的「Edit」→ 查看其JSON定义,重点核对是否包含"function"这一顶层键。若只有{"type": "function"}而无嵌套的function对象,则【该Tool定义非法,必须删除或重写】。
第三步:若使用自托管MCP服务(如本地FastAPI后端),需确保返回的Tool Schema严格符合OpenAI 2024+规范:{"type":"function","function":{"name":"xxx","description":"xxx","parameters":{...}}}。缺了function外层包裹,Cursor就会报tools[0]: missing field function。
快速验证Agent是否能正常发起Tool Call
方法一:在Chat输入框直接发送指令“列出当前目录下的所有.py文件”,观察是否触发终端执行;若卡在“Thinking…”且控制台无任何tool_call日志,则说明Agent调度层已失效。
方法二:打开开发者工具(Ctrl+Shift+I → Console),复现一次报错操作,查找含tool_call或function_call关键字的错误堆栈——若看到Failed to deserialize the JSON body,基本锁定为JSON Schema问题。
方法三:临时禁用所有第三方MCP插件,仅保留Cursor内置Terminal工具,再试一次简单命令(如echo hello)。这一步能排除插件冲突干扰。
修复自定义Tool JSON的两种安全写法
方法一(推荐):用Cursor内置的Tool Builder可视化编辑器新建工具,它会自动补全function结构,避免手误漏字段。
方法二(手动修正):将原始错误JSON:
Agents 正在你的整个代码库中处理越来越复杂、运行时间更长的任务。本次版本引入了新的 agent 框架改进,以实现更好的上下文管理,并在编辑器和 CLI 中带来了许多提升使用体验的修复。
{"type":"function","name":"list_files","parameters":{"type":"object","properties":{"ext":{"type":"string"}}}}
改为合法格式:
{"type":"function","function":{"name":"list_files","description":"List files with given extension","parameters":{"type":"object","properties":{"ext":{"type":"string"}},"required":["ext"]}}}
【注意:parameters里必须声明required字段,否则部分MCP服务校验失败】
重置Agent工具链环境
1. 关闭Cursor,删除%APPDATA%\Cursor\User\mcp-tools(Windows)或~/Library/Application Support/Cursor/User/mcp-tools(Mac)目录下所有JSON文件;
2. 重启Cursor,在Settings → MCP Tools → 「Reset to defaults」点击重置;
3. 重新启用需要的工具,逐个测试——不要一次性全部开启,避免叠加错误。










