Skip to content
FunCoding

Search

Search docs, Skills and MCP

ACP 客户端集成

通过 stdio 与 JSON-RPC 连接 Cursor Agent,处理会话、权限与阻塞扩展方法。

This page has not been translated into English yet. The original Chinese version is shown below.

ACP 面向自定义客户端和编辑器集成。普通终端使用 agent;需要嵌入其他界面时启动 ACP server:

agent acp

连接与会话

传输使用 stdio,消息是每行一个 JSON-RPC 2.0 对象。客户端向 stdin 写请求/通知,读取 stdout 的响应/通知;日志可能写到 stderr。

典型流程如下:

  1. initialize 协商客户端能力。
  2. authenticate,methodId 为 cursor_login。
  3. session/new 创建,或 session/load 恢复会话。
  4. session/prompt 提交输入。
  5. 消费 session/update 流式通知。
  6. 响应 session/request_permission。
  7. 需要停止时发送 session/cancel。

可以事先用 agent login 登录,或传 CURSOR_API_KEY / --api-key。官方还列出 CURSOR_AUTH_TOKEN / --auth-token。账号认证不替代工具调用审批。

权限与扩展

客户端应展示权限请求并返回 allow-once、allow-always 或 reject-once;不答复会阻塞工具执行。会话核心模式为 agent、plan、ask。

Cursor 扩展方法处理要求
cursor/ask_question阻塞请求,回答、跳过或取消
cursor/create_plan阻塞请求,接受、拒绝或取消
cursor/update_todos通知,展示待办变化
cursor/task通知,展示 subagent 任务信息
cursor/generate_image通知,展示图片输出

官方在部分通知章节同时展示了 Response 类型,但总说明明确要求仅两个阻塞方法等待答复。实现时以实际 JSON-RPC 请求/通知形式和协议版本核对,不要为每条通知都发送响应。

MCP 与 IDE

ACP 读取项目或用户级 .cursor/mcp.json,应从项目目录启动并批准需要的服务器。通过 Cursor dashboard 配置的团队 MCP 服务器当前不支持 ACP mode。

JetBrains、Neovim 或自定义编辑器都可通过 ACP 接入。客户端必须正确处理权限、取消和阻塞问答,不能只显示文本流;完整类型及示例以官方 ACP 页为准。