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。
典型流程如下:
- initialize 协商客户端能力。
- authenticate,methodId 为 cursor_login。
- session/new 创建,或 session/load 恢复会话。
- session/prompt 提交输入。
- 消费 session/update 流式通知。
- 响应 session/request_permission。
- 需要停止时发送 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 页为准。