源站 MCP
源站 目前处于早期 beta 版阶段,后续可能会有变动。
源站 MCP 服务器目前仅支持 Cursor 和 Grok Bot,对其他智能体框架的支持即将推出。
源站 MCP 服务器让 agents 可以访问托管在 源站 (origin.cursor.com) 上的仓库和 PR,功能涵盖仓库浏览与搜索、提交与分支、PR 读写、评审与评论、标签、审阅人以及检查。工具只能看到托管在 源站 上的仓库,并通过 源站 命名空间 (owner) 和仓库 name 来引用这些仓库。镜像到 源站 的仓库同样视为托管在 源站 上。
如需了解每个工具及其参数、限额和返回字段,请参阅工具参考。
端点
| URL | 列出的工具 |
|---|---|
https://api.origin.cursor.com/mcp | 调用方可用的所有工具。 |
https://api.origin.cursor.com/mcp/readonly | 仅列出只读工具。执行写入操作的工具会被隐藏,且调用会被拒绝。 |
向 /mcp 发送请求头 x-mcp-readonly: true,效果等同于调用 /mcp/readonly。
传输
该服务器通过无状态的可流式 HTTP 进行 MCP 通信:
- 每条 JSON-RPC 消息均以 HTTP
POST请求发送,并设置Content-Type: application/json。使用其他方法会返回405,使用其他内容类型会返回415。 - 响应为纯 JSON。服务器不会开启服务器发送事件 (SSE) 流,也不会保持会话,因此每个请求都相互独立。
- 服务器仅支持工具能力,不支持 resource、prompt 或采样。
- 请求有大小限制和超时时限。请求过大时会返回
413。
身份验证
在 Authorization 请求头中发送 bearer token。服务器接受以下凭据:
- Cursor 用户会话,即 Cursor 桌面应用、CLI 和 agents 所使用的会话;
- 源站 App 的安装访问令牌 (
oit_…) ; - 源站 App 签名的应用 JWT;
- 安装用户 token。
工具以已通过身份验证的调用方身份执行操作。每次调用都会经过与对应源站 API 请求相同的权限检查和速率限制,因此工具只能执行调用方通过 API 可执行的操作。工具参考列出了每个工具所需的作用域。对于受作用域限制的智能体会话,其作用域始终会拒绝的工具不会对其显示。
身份验证失败时返回 401 (凭据缺失或无效) 、403 (无权限) 或 503 (暂时无法校验凭据) 。
确认
具有破坏性或难以撤销的工具 (例如合并 PR 或驳回评审) 会在 tools/list 中设置 _meta["cursor/requiresConfirmation"]: true。Cursor 客户端每次调用此类工具前都会弹出批准提示。其他 MCP 客户端也可以根据同一标志或标准的 destructiveHint 注解,决定何时需要向用户确认。
错误
工具调用失败时,会返回一个带有 isError: true 的常规 MCP 工具结果。其文本内容为一条可读的消息,末尾附有请求 ID。结构化内容如下:
{ "data": { "category": "not_found", "message": "…", "requestId": "6e0d261c-86a2-4383-89f0-9162c1c10662", "retryAfterSeconds": 30, "rateLimit": { "limit": "…", "remaining": "…", "reset": "…" } }}category 的取值为 not_found、forbidden、quota_exceeded、conflict、validation_error 或 upstream_failure 之一。仅当调用触发速率限制时,才会返回 retryAfterSeconds 和 rateLimit。报告问题时,请附上请求 ID。
遇到未知工具或无效参数时,将返回 JSON-RPC 错误,而非工具结果。
分页
列表类工具接受 pageSize 和 pageToken 参数,并返回 nextPageToken。将返回的 nextPageToken 作为 pageToken 传入,即可读取下一页;最后一页不包含该字段。带筛选功能的列表工具 (例如 list_pull_requests) 在请求每一页时都需要使用相同的筛选条件。