Conecta Cursor a tu gestor de proyectos con MCP: leer el ticket, implementarlo y comentar de vuelta
Añade un servidor MCP remoto a Cursor en .cursor/mcp.json, inicia sesión con OAuth y deja que el agente lea la incidencia y comente. URLs de Atrix, Linear y Jira.
En esta página
- Qué te da realmente la conexión
- Paso 1: elige el servidor y su URL
- Paso 2: añádelo a .cursor/mcp.json
- Paso 3: autentícate con OAuth, no con una clave pegada
- Paso 4: deja que el agente lea la incidencia y comente
- Alcances, auditoría y límites en el lado de Atrix
- Resolver los fallos habituales
- Preguntas frecuentes
- Siguiente paso
Para conectar Cursor a tu gestor de proyectos, añade el servidor MCP remoto del gestor a .cursor/mcp.json con una sola entrada url, deja que Cursor abra el navegador para OAuth y, desde ese momento, el agente puede leer la incidencia que está implementando, traer sus criterios de aceptación al contexto y publicar un comentario o cambiar el estado al terminar. No se pega ninguna clave de API en ningún sitio; el token que guarda Cursor tiene alcance limitado y es revocable.
Así lo hacemos en Atrix, donde el gestor es nuestro propio espacio de trabajo. Los mismos pasos sirven para Linear y Jira, cuyos endpoints aparecen más abajo. Los detalles de configuración se comprobaron en la documentación de Cursor en octubre de 2026.
Qué te da realmente la conexión
Sin MCP, el ciclo es: abrir el ticket en una pestaña, copiar la descripción al chat, implementar y volver a actualizar el ticket a mano. El paso de copiar pierde los comentarios, el requisito enlazado y las etiquetas, y el paso de actualizar se salta cuando estás cansado.
Con un servidor MCP remoto conectado, el agente de Cursor tiene herramientas como "obtener incidencia", "listar incidencias", "comentar incidencia" y "cambiar estado". Escribes "implementa ATR-212" y el agente recupera la incidencia, lee los criterios de aceptación y el hilo, hace el trabajo y termina escribiendo un comentario que dice qué cambió y en qué archivos. El ticket sigue siendo la fuente de verdad y el agente lo lee tal cual, no una paráfrasis.
Lo que no te da es criterio. El agente implementará con gusto, y mal, un ticket mal escrito. La conexión elimina el copiar, no el pensar.
Paso 1: elige el servidor y su URL
Cada gestor publica un endpoint MCP remoto. A octubre de 2026:
| Gestor | URL MCP remota | Autenticación | Opción de solo lectura |
|---|---|---|---|
| Atrix AI | https://atrix.dev/api/mcp | OAuth 2.1, token con alcances | Conceder solo alcances *.read |
| Linear | https://mcp.linear.app/mcp | OAuth 2.1 con registro dinámico de cliente; también acepta clave de API | https://mcp.linear.app/mcp/readonly |
| Jira (Atlassian Rovo MCP) | https://mcp.atlassian.com/v2/mcp | OAuth 2.1; token de API opcional | No hay endpoint separado |
Los tres usan Streamable HTTP, que Cursor admite de forma nativa. La documentación de Linear indica que su antiguo endpoint SSE es un recurso de reserva obsoleto. Si un gestor solo ofrece un servidor local (stdio), Cursor también lo ejecuta, pero pierdes el flujo OAuth y acabas gestionando una clave de API en una variable de entorno.
Paso 2: añádelo a .cursor/mcp.json
Cursor lee dos archivos: .cursor/mcp.json en la raíz del proyecto para servidores específicos del proyecto, y ~/.cursor/mcp.json para servidores disponibles en todas partes. Un gestor va en el archivo del proyecto si el repositorio corresponde a un producto, y en el global si trabajas en varios.
La entrada remota es una url dentro de mcpServers; headers es opcional y solo hace falta con tokens estáticos:
{
"mcpServers": {
"atrix": {
"url": "https://atrix.dev/api/mcp"
}
}
}
Para Linear, sustituye el nombre y la URL por https://mcp.linear.app/mcp; para Jira, https://mcp.atlassian.com/v2/mcp. La documentación de Cursor muestra la misma forma para todos los servidores remotos y admite interpolación ${env:NAME} dentro de url y headers si alguna vez necesitas una cabecera.
Guarda el archivo. Cursor lo detecta sin reiniciar y lista el servidor en Customize en la barra lateral, donde un interruptor lo activa o desactiva. Un servidor desactivado no se carga y sus herramientas no aparecen en el chat.
Paso 3: autentícate con OAuth, no con una clave pegada
La primera vez que el agente llama a una herramienta, el servidor responde 401 con un puntero a su servidor de autorización, Cursor se registra como cliente público (registro dinámico de cliente) y abre tu navegador. Inicias sesión, ves los alcances solicitados, apruebas y el token queda en Cursor. Cursor usa el flujo de código de autorización con PKCE, y las dos URL de redirección que emplea son fijas: https://www.cursor.com/agents/mcp/oauth/callback para la web y los Cloud Agents, y http://localhost:8787/callback para la aplicación de escritorio.
Por qué esto es mejor que una clave en headers: el token está limitado a lo que aprobaste, se renueva solo, y revocarlo en el gestor corta el acceso de Cursor al instante. Un token de acceso personal en un archivo JSON es un secreto de larga duración en disco que cualquier agente de ese proyecto puede leer. Reserva la ruta de la cabecera para CI, donde no hay navegador.
Si un servidor no admite registro dinámico, Cursor también acepta un objeto auth con CLIENT_ID, CLIENT_SECRET opcional y scopes en la entrada remota.
Paso 4: deja que el agente lea la incidencia y comente
Aprueba primero las herramientas de lectura, y luego una escritura cada vez. Cursor pide aprobación antes de usar herramientas MCP por defecto; los Run Modes que rigen los comandos de terminal se aplican también a las herramientas MCP, así que en modo auto-review las herramientas en la lista permitida se ejecutan de inmediato y el resto pasa por el clasificador.
Un prompt que funciona:
Implementa ATR-212. Lee primero la incidencia y sus comentarios, sigue los
criterios de aceptación y, al terminar, comenta en la incidencia los archivos
cambiados y lo que no hayas podido hacer.
El agente llama a work_get_issue (o get_issue en Linear, getJiraIssue en Atlassian), implementa y luego llama a la herramienta de comentario. No le dejamos cambiar el estado por su cuenta: un comentario es ruido reversible; un "Hecho" en algo a medias es una mentira en el gestor. Los cambios de estado siguen siendo humanos, o al menos pasan por una aprobación por llamada.
Dos hábitos que ayudan:
- Pon la clave de la incidencia en el nombre de la rama.
atr-212-booking-reminders. El agente y tú sabéis qué ticket está en juego, y el comentario va al sitio correcto. - Pide un comentario, no un resumen en el chat. El chat se pierde; el ticket es donde mira la siguiente persona.
Alcances, auditoría y límites en el lado de Atrix
El servidor MCP de Atrix AI expone 85 herramientas sobre OAuth 2.1 y está listado en el Official MCP Registry y en Glama. Cuando Cursor se conecta, eliges alcances de una lista de 49 concedibles (a octubre de 2026). Un alcance de escritura implica su lectura (work.write incluye work.read); los alcances con nombre como feed.post nunca se implican y hay que concederlos a propósito. Un token nunca puede hacer más que la persona que lo creó, y los permisos se resuelven en cada llamada, así que quitarle a alguien el acceso a los valores de los tratos lo quita también de todos los tokens que haya emitido. Los registros de nómina no son concedibles en absoluto.
Para una conexión con Cursor concedemos primero work.read y projects.read, y añadimos work.write cuando el paso de comentar se lo ha ganado. Cada llamada se audita con la herramienta, el resultado, el tipo de sujeto y su id, nunca el contenido, y los límites son 120 llamadas y 30 escrituras por minuto y token. La documentación para desarrolladores lista las herramientas y alcances; la página de integración con Cursor tiene la instalación en un clic.
Donde Atrix es más débil que Linear para esta tarea: el endpoint de Linear tiene una URL dedicada de solo lectura, así que un compañero cauto puede conectarse sin ver ningún selector de alcances. En Atrix consigues el mismo resultado concediendo solo alcances de lectura, lo que cuesta una decisión más. El servidor de Jira llega también a Confluence y Bitbucket, lo que importa si tus especificaciones viven ahí.
Resolver los fallos habituales
- "Sin herramientas" tras añadir el servidor. Revisa el interruptor en Customize y que el JSON sea válido: una coma final rompe el archivo entero en silencio.
- Bucle de OAuth o "redirección inválida". El proveedor debe aceptar las URL de callback fijas de Cursor. Un SSO corporativo que bloquee redirecciones a
localhostrompe el flujo de escritorio. - Las herramientas se ejecutan pero devuelven 403. Alcances. Concediste lectura y el agente intentó escribir. Vuelve a autorizar con el alcance de escritura o quédate con la escritura tú.
- El agente lee la incidencia equivocada. Adivinó a partir de un prompt vago. Dale la clave, no "el bug de las reservas".
- Demasiadas herramientas confunden al modelo. Desactiva los servidores que no uses hoy; Cursor solo carga los activados.
Preguntas frecuentes
¿Cursor admite servidores MCP remotos con OAuth?
Sí. A octubre de 2026, la documentación de Cursor describe servidores remotos configurados con una entrada url en mcp.json, OAuth con el flujo de código de autorización y PKCE, y registro dinámico de cliente cuando el servidor lo admite. Cursor se registra como cliente público.
¿Dónde está el archivo de configuración MCP de Cursor?
.cursor/mcp.json en la raíz del proyecto para ese proyecto, o ~/.cursor/mcp.json en tu carpeta personal para todos los proyectos. Ambos usan un objeto mcpServers con claves que eliges tú.
¿Puede Cursor leer tickets de Linear o Jira por MCP?
Sí. El servidor de Linear está en https://mcp.linear.app/mcp (solo lectura en /mcp/readonly), y el servidor Rovo MCP de Atlassian para Jira y Confluence está en https://mcp.atlassian.com/v2/mcp. Ambos documentan Cursor como cliente admitido y usan OAuth 2.1.
¿Debería el agente poder cerrar tickets?
Por defecto no lo permitimos. Los comentarios son seguros; los cambios de estado deben pasar por una persona o por una aprobación por llamada. Cursor pregunta antes de ejecutar herramientas MCP salvo que las pongas en la lista permitida.
¿Es aceptable una clave de API en mcp.json?
Para CI, donde no hay navegador, sí, guardada en una variable de entorno e interpolada con ${env:NAME}. En un portátil, prefiere OAuth: el token tiene alcance, se renueva y es revocable, y nada de larga duración queda en un archivo.
¿Qué es un servidor MCP remoto?
Un servidor MCP al que se accede por HTTPS en lugar de arrancarlo como proceso local. Se autentica con OAuth y puede compartirlo todo un equipo. Consulta la entrada del glosario para la definición y en qué se diferencia de los servidores stdio.
Siguiente paso
Añade hoy un servidor con alcances de lectura y lanza un único prompt de "implementa esta incidencia"; en una hora sabrás si vale la pena activar el paso de comentar. Si tu gestor es Atrix, la página de integración con Cursor tiene la entrada exacta para pegar, y la página de la función MCP indica qué desbloquea cada alcance.