Servidor Jira MCP para cursor
Un servidor MCP basado en TypeScript que se integra con Jira, lo que permite que Cursor interactúe con los tickets de Jira.
Características
Lista de tickets de Jira
Obtener detalles de las entradas
Obtener comentarios de tickets
Crear nuevos tickets
Añadir comentarios a los tickets
Actualizar el estado del ticket
Compatibilidad total con el protocolo MCP para la integración del cursor
Related MCP server: Jira MCP Server
Configuración
Instalar dependencias:
npm installCree un archivo
.envbasado en.env.exampley complete sus credenciales de Jira:
JIRA_HOST=https://your-domain.atlassian.net
JIRA_EMAIL=your-email@example.com
JIRA_API_TOKEN=your-api-token
PORT=3000Para obtener su token de API de Jira:
Inicie sesión en https://id.atlassian.com/manage/api-tokens
Haga clic en "Crear token de API".
Copia el token y pégalo en tu archivo
.env
Desarrollo
Ejecute el servidor de desarrollo:
npm run devConstruir y ejecutar
Construir el proyecto:
npm run buildIniciar el servidor:
npm startIntegración del cursor
Para utilizar este servidor MCP con Cursor, tiene dos opciones:
Opción 1: Integración basada en comandos (recomendada)
Construir el proyecto:
npm run buildAbrir la configuración del cursor:
Haga clic en el menú del Cursor
Seleccione "Configuración" (o utilice el atajo de teclado)
Vaya a la sección "Extensiones" o "Integraciones".
Agregue la configuración de MCP:
{
"mcpServers": {
"jira": {
"command": "node",
"args": ["/path/to/jira-mcp-cursor/dist/server.js"]
}
}
}Reemplace /path/to/jira-mcp-cursor con la ruta absoluta a su proyecto.
Opción 2: Integración basada en HTTP (Alternativa)
Inicie el servidor MCP (si aún no está en ejecución):
npm startAbrir la configuración del cursor:
Haga clic en el menú del Cursor
Seleccione "Configuración" (o utilice el atajo de teclado)
Vaya a la sección "Extensiones" o "Integraciones".
Agregue la configuración de MCP:
{
"mcpServers": {
"jira": {
"url": "http://localhost:3000",
"capabilities": [
"list_tickets",
"get_ticket",
"get_comments",
"create_ticket",
"update_status",
"add_comment"
]
}
}
}Usando Jira en Cursor
Después de configurar el servidor MCP, puedes usar comandos Jira directamente en Cursor:
/jira list- Lista tus tickets/jira view TICKET-123- Ver detalles del ticket/jira comments TICKET-123- Obtener comentarios del ticket/jira create- Crea un nuevo ticket/jira comment TICKET-123- Añadir un comentario/jira status TICKET-123- Actualizar el estado del ticket
Compatibilidad con el protocolo MCP
El servidor implementa el Protocolo Modelo-Cliente (MCP) requerido por Cursor:
Comunicación Stdio para integración basada en comandos
Registro de herramientas para operaciones de Jira
Puntos finales de API
Lista de entradas
Recupera una lista de tickets de Jira, opcionalmente filtrados por una consulta JQL.
Punto final: GET /api/tickets
Parámetros de consulta:
Parámetro | Tipo | Requerido | Descripción |
jql | cadena | No | Cadena de lenguaje de consulta de Jira (JQL) para filtrar tickets |
Ejemplo de solicitud:
GET /api/tickets?jql=project=TEST+AND+status=OpenEjemplo de respuesta:
TEST-123: Example ticket (Open)
TEST-124: Another ticket (In Progress)Obtener boleto
Recupera información detallada sobre un ticket específico.
Punto final: GET /api/tickets/:id
Parámetros de ruta:
Parámetro | Tipo | Requerido | Descripción |
identificación | cadena | Sí | El ID del ticket de Jira (por ejemplo, TEST-123) |
Ejemplo de solicitud:
GET /api/tickets/TEST-123Ejemplo de respuesta:
Key: TEST-123
Summary: Example ticket
Status: Open
Type: Task
Description:
Detailed ticket descriptionObtener comentarios de entradas
Recupera todos los comentarios de un ticket específico.
Punto final: GET /api/tickets/:id/comments
Parámetros de ruta:
Parámetro | Tipo | Requerido | Descripción |
identificación | cadena | Sí | El ID del ticket de Jira (por ejemplo, TEST-123) |
Ejemplo de solicitud:
GET /api/tickets/TEST-123/commentsEjemplo de respuesta:
[3/20/2024, 10:00:00 AM] John Doe:
Comment text
---
[3/20/2024, 9:30:00 AM] Jane Smith:
Another comment
---Crear ticket
Crea un nuevo ticket de Jira.
Punto final: POST /api/tickets
Cuerpo de la solicitud:
Parámetro | Tipo | Requerido | Descripción |
resumen | cadena | Sí | El resumen del ticket |
descripción | cadena | Sí | La descripción del billete |
clave del proyecto | cadena | Sí | La clave del proyecto (por ejemplo, TEST) |
tipo de problema | cadena | Sí | El tipo de problema (por ejemplo, tarea, error) |
Ejemplo de solicitud:
POST /api/tickets
Content-Type: application/json
{
"summary": "New feature request",
"description": "Implement new functionality",
"projectKey": "TEST",
"issueType": "Task"
}Ejemplo de respuesta:
Created ticket: TEST-124Añadir comentario
Agrega un nuevo comentario a un ticket existente.
Punto final: POST /api/tickets/:id/comments
Parámetros de ruta:
Parámetro | Tipo | Requerido | Descripción |
identificación | cadena | Sí | El ID del ticket de Jira (por ejemplo, TEST-123) |
Cuerpo de la solicitud:
Parámetro | Tipo | Requerido | Descripción |
cuerpo | cadena | Sí | El texto del comentario |
Ejemplo de solicitud:
POST /api/tickets/TEST-123/comments
Content-Type: application/json
{
"body": "This is a new comment"
}Ejemplo de respuesta:
Added comment to TEST-123Estado de actualización
Actualiza el estado de un ticket existente.
Punto final: POST /api/tickets/:id/status
Parámetros de ruta:
Parámetro | Tipo | Requerido | Descripción |
identificación | cadena | Sí | El ID del ticket de Jira (por ejemplo, TEST-123) |
Cuerpo de la solicitud:
Parámetro | Tipo | Requerido | Descripción |
ID de transición | cadena | Sí | El ID de la transición a realizar |
Ejemplo de solicitud:
POST /api/tickets/TEST-123/status
Content-Type: application/json
{
"transitionId": "21"
}Ejemplo de respuesta:
Updated status of TEST-123Buscar entradas
Busca tickets en proyectos específicos mediante la búsqueda de texto.
Punto final: GET /api/tickets/search
Parámetros de consulta:
Parámetro | Tipo | Requerido | Descripción |
buscarTexto | cadena | Sí | Texto a buscar en los tickets |
Claves del proyecto | cadena | Sí | Lista separada por comas de claves de proyecto para buscar |
resultados máximos | número | No | Número máximo de resultados a devolver (predeterminado: 50) |
Ejemplo de solicitud:
GET /api/tickets/search?searchText=login+bug&projectKeys=TEST,PROD&maxResults=10Ejemplo de respuesta:
Found 2 tickets matching "login bug"
[TEST] TEST-123: Login page bug
Status: Open (Updated: 3/20/2024, 10:00:00 AM)
Description:
Users unable to login using SSO
----------------------------------------
[PROD] PROD-456: Fix login performance
Status: In Progress (Updated: 3/19/2024, 3:30:00 PM)
Description:
Login page taking too long to load
----------------------------------------