Origin MCP
Origin está en fase beta inicial y puede cambiar.
Actualmente, el servidor MCP de Origin solo está disponible en Cursor y en el Bot de Grok. Pronto será compatible con otros harness de agentes.
El servidor MCP de Origin permite a los agentes de programación acceder a los repositorios y pull requests alojados en Origin (origin.cursor.com). Abarca la exploración y búsqueda de repositorios, commits y ramas, la lectura y escritura de pull requests, revisiones y comentarios, etiquetas, revisores y comprobaciones. Las herramientas solo ven los repositorios alojados en Origin, identificados por su espacio de nombres de Origin (owner) y el name del repositorio. Un repositorio que se replica en Origin se considera alojado allí.
Para ver todas las herramientas con sus parámetros, límites y campos de retorno, consulta la referencia de herramientas.
Endpoints
| URL | Herramientas disponibles |
|---|---|
https://api.origin.cursor.com/mcp | Todas las herramientas que el llamador puede usar. |
https://api.origin.cursor.com/mcp/readonly | Únicamente herramientas de solo lectura. Las herramientas de escritura se ocultan y se rechazan. |
Enviar el encabezado x-mcp-readonly: true a /mcp equivale a llamar a /mcp/readonly.
Transporte
El servidor usa MCP sobre HTTP transmisible (streamable HTTP) sin estado:
- Envía cada mensaje JSON-RPC como una solicitud HTTP
POSTconContent-Type: application/json. Los demás métodos devuelven405y los demás tipos de contenido devuelven415. - Las respuestas son JSON sin formato. El servidor no abre flujos de eventos enviados por el servidor (SSE) ni mantiene sesiones, así que cada solicitud es independiente.
- El servidor solo es compatible con la funcionalidad de herramientas: no admite recursos, instrucciones ni muestreo.
- Las solicitudes tienen un límite de tamaño y un tiempo máximo. Si una solicitud supera el tamaño permitido, se devuelve
413.
Autenticación
Envía un token de portador en el encabezado Authorization. El servidor acepta:
- una sesión de usuario de Cursor, como la que usan la aplicación de escritorio, la CLI y los agentes de programación de Cursor;
- un token de acceso de instalación de una Origin App (
oit_…); - un JWT de aplicación firmado por una Origin App;
- un token de usuario de la instalación.
Las herramientas actúan en nombre del llamador autenticado. Cada llamada se somete a las mismas comprobaciones de permisos y límites de uso que la solicitud equivalente a la API de Origin, por lo que una herramienta solo puede hacer lo que el llamador podría hacer a través de la API. La referencia de herramientas indica los scopes que necesita cada herramienta. Las sesiones del agente de programación con scopes limitados no ven las herramientas que sus scopes rechazarían en cualquier caso.
Si la autenticación falla, se devuelve 401 (credenciales ausentes o no válidas), 403 (no permitido) o 503 (no se pueden comprobar las credenciales temporalmente).
Confirmación
Las herramientas destructivas o difíciles de deshacer, como fusionar una pull request o descartar una revisión, establecen _meta["cursor/requiresConfirmation"]: true en tools/list. Los clientes de Cursor muestran una solicitud de aprobación antes de cada llamada a este tipo de herramientas. Otros clientes MCP pueden usar el mismo indicador, o la anotación estándar destructiveHint, para decidir cuándo pedir confirmación al usuario.
Errores
Cuando una herramienta falla, devuelve un resultado normal de herramienta MCP con isError: true. El contenido de texto es un mensaje legible seguido de un ID de solicitud. El contenido estructurado es el siguiente:
{ "data": { "category": "not_found", "message": "…", "requestId": "6e0d261c-86a2-4383-89f0-9162c1c10662", "retryAfterSeconds": 30, "rateLimit": { "limit": "…", "remaining": "…", "reset": "…" } }}category puede ser not_found, forbidden, quota_exceeded, conflict, validation_error o upstream_failure. retryAfterSeconds y rateLimit solo aparecen cuando la llamada ha superado el límite de uso. Incluye el ID de solicitud al informar de un problema.
Las herramientas desconocidas y los parámetros no válidos devuelven errores JSON-RPC en lugar de resultados de herramientas.
Paginación
Las herramientas de listado aceptan pageSize y pageToken, y devuelven nextPageToken. Pasa el nextPageToken devuelto como pageToken para obtener la página siguiente; en la última página no se incluye. Las herramientas que filtran una lista, como list_pull_requests, requieren los mismos filtros en todas las páginas.