JIRA
Integra Atlassian JIRA en cualquier aplicación compatible con MCP para gestionar incidencias y proyectos.
Documentación
🎯 Servidor MCP de JIRA
Un potente servidor de Model Context Protocol (MCP) que lleva la integración de Atlassian JIRA directamente a cualquier editor o aplicación que admita MCP
✨ Características
-
🎯 Suite completa de integración con JIRA
- Gestión de incidencias: operaciones CRUD completas para incidencias de JIRA con soporte integral de campos
- Descubrimiento de proyectos y tableros: explora proyectos, tableros y sprints con filtrado avanzado
- Búsqueda inteligente: búsqueda con JQL y apta para principiantes con formato enriquecido
- Sistema de comentarios: accede y gestiona comentarios de incidencias con divulgación progresiva
-
🏗️ Arquitectura de nivel empresarial (Nuevo en v0.5.0)
- Diseño modular: arquitectura basada en funcionalidades con clara separación de responsabilidades
- Cliente HTTP robusto: refactorizado con clases de utilidad dedicadas para mayor fiabilidad
- Pruebas exhaustivas: más de 822 pruebas que garantizan estabilidad y fiabilidad
- Seguridad de tipos: modo estricto completo de TypeScript con manejo de errores mejorado
-
🔍 Búsqueda y descubrimiento potentes
- Busca incidencias usando JQL (JIRA Query Language) o parámetros aptos para principiantes
- Descubrimiento de proyectos, tableros y sprints con metadatos y filtrado
- Formato Markdown enriquecido con vistas previas de incidencias y enlaces de navegación directa
- Recuperación avanzada de comentarios con filtrado por autor y rangos de fechas
-
📝 Gestión avanzada de incidencias
- Crea, actualiza y transiciona incidencias con soporte integral de campos
- Seguimiento de tiempo, gestión de registros de trabajo y soporte de campos personalizados
- Análisis de ADF (Atlassian Document Format) para mostrar contenido enriquecido
- Operaciones de matrices para etiquetas, componentes y versiones
🆕 Novedades en v0.5.0
🏗️ Reestructuración importante de la arquitectura
- Reorganización completa del código con arquitectura modular basada en dominios
- Refactorización del cliente HTTP con clases de utilidad dedicadas para mayor fiabilidad
- Corrección crítica de errores en URL de API de JIRA mal formadas que impedían la comunicación adecuada
🧪 Pruebas y calidad mejoradas
- Más de 95 nuevas pruebas añadidas para utilidades del cliente HTTP y casos límite
- 822 pruebas en total que garantizan cobertura integral y estabilidad
- Cero advertencias de linting con integración mejorada de Biome
🔧 Mejoras técnicas
- Manejo de errores mejorado con mejor clasificación y mensajes accionables
- Registro mejorado con información de depuración estructurada y monitoreo de rendimiento
- Mejoras de seguridad de tipos con verificación estricta de TypeScript en todo el código
🚀 Rendimiento y fiabilidad
- Solicitudes HTTP optimizadas con mejor gestión de conexiones
- Recuperación de errores mejorada con lógica de reintentos y manejo de tiempos de espera mejorados
- Compatibilidad hacia atrás mantenida: actualización sin problemas desde v0.4.x
🚀 Inicio rápido
Instalación
Añade esta configuración a tu cliente MCP:
{
"mcpServers": {
"JIRA Tools": {
"command": "bunx",
"args": ["-y", "@dsazz/mcp-jira@latest"],
"env": {
"JIRA_HOST": "https://your-domain.atlassian.net",
"JIRA_USERNAME": "your-email@example.com",
"JIRA_API_TOKEN": "your-jira-api-token"
}
}
}
}
Configuración de desarrollo
Para desarrollo y pruebas locales:
# Clone the repository
git clone https://github.com/Dsazz/mcp-jira.git
cd mcp-jira
# Install dependencies
bun install
# Set up environment variables
cp .env.example .env
# Edit .env with your JIRA credentials
# Build the project
bun run build
# Test with MCP Inspector
bun run inspect
Configuración
Crea un archivo .env con las siguientes variables:
JIRA_HOST=https://your-instance.atlassian.net
JIRA_USERNAME=your-email@example.com
JIRA_API_TOKEN=your-jira-api-token-here
🔑 Nota importante sobre los tokens de API de JIRA
- Se puede generar un token de API de JIRA en Atlassian API Tokens
- Los tokens pueden contener caracteres especiales, incluido el signo
=- Coloca el token en una sola línea en el archivo
.env- No añadas comillas alrededor del valor del token
- Pega el token exactamente como lo proporciona Atlassian
🧰 Herramientas disponibles
Herramientas principales de JIRA
| Herramienta | Descripción | Parámetros | Devuelve |
|---|---|---|---|
jira_get_assigned_issues | Recupera todas las incidencias asignadas a ti | Ninguno | Lista de incidencias con formato Markdown |
jira_get_issue | Obtiene información detallada sobre una incidencia específica | issueKey: clave de incidencia (p. ej., PD-312) | Detalles de incidencia con formato Markdown |
jira_get_issue_comments | Recupera comentarios de una incidencia específica con opciones configurables | Consulta los parámetros de comentarios a continuación | Comentarios con formato Markdown |
jira_create_issue | Crea nuevas incidencias de JIRA con soporte integral de campos | Consulta los parámetros de creación de incidencias | Resultado de creación con formato Markdown |
jira_update_issue | Actualiza incidencias existentes con cambios de campos y transiciones de estado | Consulta los parámetros de actualización de incidencias | Resultado de actualización con formato Markdown |
jira_get_projects | Recupera y explora proyectos de JIRA con opciones de filtrado | Consulta los parámetros de proyectos | Lista de proyectos con formato Markdown |
jira_get_boards | Obtén tableros de JIRA (Scrum/Kanban) con filtrado avanzado | Consulta los parámetros de tableros | Lista de tableros con formato Markdown |
jira_get_sprints | Recupera información de sprints para la gestión ágil de proyectos | Consulta los parámetros de sprints | Lista de sprints con formato Markdown |
jira_add_worklog | Añade entradas de seguimiento de tiempo a incidencias | Consulta los parámetros de registros de trabajo a continuación | Resultado de registro de trabajo con formato Markdown |
jira_get_worklogs | Recupera entradas de registro de trabajo para incidencias con filtrado por fecha | Consulta los parámetros de registros de trabajo a continuación | Lista de registros de trabajo con formato Markdown |
jira_update_worklog | Actualiza entradas de registro de trabajo existentes | Consulta los parámetros de registros de trabajo a continuación | Resultado de actualización con formato Markdown |
jira_delete_worklog | Elimina entradas de registro de trabajo de incidencias | Consulta los parámetros de registros de trabajo a continuación | Resultado de eliminación con formato Markdown |
jira_get_current_user | Obtén información del usuario autenticado actual | Ninguno | Detalles de usuario con formato Markdown |
search_jira_issues | Busca incidencias de JIRA con JQL o parámetros auxiliares | Consulta los parámetros de búsqueda a continuación | Resultados de búsqueda con formato Markdown |
Parámetros de creación de incidencias
La herramienta jira_create_issue admite la creación integral de incidencias:
Obligatorios:
projectKey: Cadena: clave de proyecto (p. ej.,"PROJ")issueType: Cadena: tipo de incidencia (p. ej.,"Task","Bug","Story")summary: Cadena: título/resumen de la incidencia
Campos opcionales:
description: Cadena: descripción detallada (admite formato ADF)priority: Cadena: nivel de prioridad ("Highest","High","Medium","Low","Lowest")assignee: Cadena: nombre de usuario o correo electrónico del asignadoreporter: Cadena: nombre de usuario o correo electrónico del informantelabels: Matriz: etiquetas para aplicar a la incidenciacomponents: Matriz: nombres de componentesfixVersions: Matriz: nombres de versiones de correcciónaffectsVersions: Matriz: nombres de versiones afectadastimeEstimate: Cadena: estimación de tiempo en formato JIRA (p. ej.,"2h","1d 4h")dueDate: Cadena: fecha de vencimiento en formato ISOenvironment: Cadena: descripción del entornocustomFields: Objeto: valores de campos personalizados
Ejemplos:
# Basic issue creation
jira_create_issue projectKey:"PROJ" issueType:"Task" summary:"Fix login bug"
# Comprehensive issue with all fields
jira_create_issue projectKey:"PROJ" issueType:"Bug" summary:"Critical login issue" description:"Users cannot log in" priority:"High" assignee:"john.doe" labels:["urgent","security"] timeEstimate:"4h"
Parámetros de actualización de incidencias
La herramienta jira_update_issue admite actualizaciones integrales de incidencias:
Obligatorios:
issueKey: Cadena: clave de incidencia (p. ej.,"PROJ-123")
Actualizaciones de campos (cualquier combinación):
summary: Cadena: actualizar el título de la incidenciadescription: Cadena: actualizar la descripciónpriority: Cadena: cambiar la prioridadassignee: Cadena: reasignar la incidenciareporter: Cadena: cambiar el informantetimeEstimate: Cadena: actualizar la estimación de tiempotimeSpent: Cadena: registrar el tiempo dedicadodueDate: Cadena: actualizar la fecha de vencimientoenvironment: Cadena: actualizar el entorno
Operaciones de matrices (añadir/eliminar/establecer):
labels: Objeto: modificar etiquetas ({operation: "add|remove|set", values: ["label1", "label2"]})components: Objeto: modificar componentesfixVersions: Objeto: modificar versiones de correcciónaffectsVersions: Objeto: modificar versiones afectadas
Transiciones de estado:
status: Cadena: transición a un nuevo estado (p. ej.,"In Progress","Done")
Registro de trabajo:
worklog: Objeto: añadir entrada de registro de trabajo ({timeSpent: "2h", comment: "Fixed issue"})
Ejemplos:
# Update basic fields
jira_update_issue issueKey:"PROJ-123" summary:"Updated title" priority:"High"
# Add labels and transition status
jira_update_issue issueKey:"PROJ-123" labels:'{operation:"add",values:["urgent"]}' status:"In Progress"
# Log work and add comment
jira_update_issue issueKey:"PROJ-123" worklog:'{timeSpent:"2h",comment:"Completed testing"}'
Parámetros de proyectos
La herramienta jira_get_projects admite el descubrimiento de proyectos:
Parámetros opcionales:
maxResults: Número (1-100, predeterminado: 50): limita el número de resultadosstartAt: Número (predeterminado: 0): desplazamiento de paginaciónexpand: Matriz: campos adicionales para incluir (["description", "lead", "issueTypes", "url", "projectKeys"])
Ejemplos:
# Get all projects
jira_get_projects
# Get projects with additional details
jira_get_projects expand:["description","lead","issueTypes"] maxResults:20
Parámetros de tableros
La herramienta jira_get_boards admite la gestión de tableros:
Parámetros opcionales:
maxResults: Número (1-100, predeterminado: 50): limita el número de resultadosstartAt: Número (predeterminado: 0): desplazamiento de paginacióntype: Cadena: tipo de tablero ("scrum","kanban")name: Cadena: filtrar por nombre del tableroprojectKeyOrId: Cadena: filtrar por proyecto
Ejemplos:
# Get all boards
jira_get_boards
# Get Scrum boards for specific project
jira_get_boards type:"scrum" projectKeyOrId:"PROJ"
# Search boards by name
jira_get_boards name:"Sprint Board" maxResults:10
Parámetros de sprints
La herramienta jira_get_sprints admite la gestión de sprints:
Obligatorios:
boardId: Número: ID del tablero del que obtener los sprints
Parámetros opcionales:
maxResults: Número (1-100, predeterminado: 50): limita el número de resultadosstartAt: Número (predeterminado: 0): desplazamiento de paginaciónstate: Cadena: estado del sprint ("active","closed","future")
Ejemplos:
# Get all sprints for a board
jira_get_sprints boardId:123
# Get only active sprints
jira_get_sprints boardId:123 state:"active"
# Get sprints with pagination
jira_get_sprints boardId:123 maxResults:10 startAt:20
Parámetros de registros de trabajo
Las herramientas de registro de trabajo admiten un seguimiento de tiempo integral:
Parámetros de jira_add_worklog:
Obligatorios:
issueKey: Cadena: clave de incidencia (p. ej.,"PROJ-123")timeSpent: Cadena: tiempo dedicado en formato JIRA (p. ej.,"2h","1d 4h","30m")
Opcionales:
comment: Cadena: comentario que describe el trabajo realizadostarted: Cadena: cuándo comenzó el trabajo (formato de fecha ISO, predeterminado: ahora)visibility: Objeto: configuraciones de visibilidad ({type: "group", value: "jira-developers"})
Parámetros de jira_get_worklogs:
Obligatorios:
issueKey: Cadena: clave de incidencia (p. ej.,"PROJ-123")
Opcionales:
startedAfter: Cadena: filtrar registros de trabajo iniciados después de esta fecha (formato ISO)startedBefore: Cadena: filtrar registros de trabajo iniciados antes de esta fecha (formato ISO)
Parámetros de jira_update_worklog:
Obligatorios:
issueKey: Cadena: clave de incidencia (p. ej.,"PROJ-123")worklogId: Cadena: ID del registro de trabajo a actualizar
Opcionales (cualquier combinación):
timeSpent: Cadena: actualizar el tiempo dedicadocomment: Cadena: actualizar el comentariostarted: Cadena: actualizar la hora de inicio
Parámetros de jira_delete_worklog:
Obligatorios:
issueKey: Cadena: clave de incidencia (p. ej.,"PROJ-123")worklogId: Cadena: ID del registro de trabajo a eliminar
Ejemplos:
# Add worklog entry
jira_add_worklog issueKey:"PROJ-123" timeSpent:"2h" comment:"Fixed authentication bug"
# Get all worklogs for an issue
jira_get_worklogs issueKey:"PROJ-123"
# Get worklogs from last week
jira_get_worklogs issueKey:"PROJ-123" startedAfter:"2025-05-29T00:00:00.000Z"
# Update worklog
jira_update_worklog issueKey:"PROJ-123" worklogId:"12345" timeSpent:"3h" comment:"Updated work description"
# Delete worklog
jira_delete_worklog issueKey:"PROJ-123" worklogId:"12345"
Parámetros de comentarios
La herramienta jira_get_issue_comments admite divulgación progresiva con estos parámetros:
Obligatorios:
issueKey: Cadena: clave de incidencia (p. ej.,"PROJ-123")
Opciones básicas:
maxComments: Número (1-100, predeterminado: 10): número máximo de comentarios a recuperarorderBy: Cadena ("created"o"updated", predeterminado:"created"): orden de clasificación de los comentarios
Opciones avanzadas:
includeInternal: Booleano (predeterminado: false) - Incluir comentarios internos/restringidosauthorFilter: Cadena - Filtrar comentarios por nombre de autor o correo electrónicodateRange: Objeto - Filtrar por rango de fechas:from: Cadena (fecha ISO) - Fecha de inicioto: Cadena (fecha ISO) - Fecha de fin
Ejemplos:
# Basic usage - get 10 most recent comments
jira_get_issue_comments PROJ-123
# Get more comments with specific ordering
jira_get_issue_comments PROJ-123 maxComments:25 orderBy:"updated"
# Advanced filtering
jira_get_issue_comments PROJ-123 authorFilter:"john.doe" includeInternal:true
Parámetros de búsqueda
La herramienta search_jira_issues admite dos modos:
Modo experto (JQL):
jql: Cadena de consulta JQL directa (p. ej.,"project = PROJ AND status = Open")
Modo principiante (parámetros auxiliares):
assignedToMe: Booleano - Mostrar solo problemas asignados al usuario actualproject: Cadena - Filtrar por clave de proyectostatus: Cadena o matriz - Filtrar por estado(s) (p. ej.,"Open"o["Open", "In Progress"])text: Cadena - Buscar en los campos de resumen y descripción
Opciones comunes:
maxResults: Número (1-50, predeterminado: 25) - Limitar número de resultadosfields: Matriz - Especificar qué campos recuperar (opcional)
🛠️ Herramientas de desarrollo
Herramientas de calidad de código
El proyecto utiliza Biome para el formateo y linting de código, lo que proporciona:
- Formateo y linting unificados y rápidos
- Herramientas centradas en TypeScript
- Cero configuración necesaria
- Aplicación consistente del estilo de código
# Format code
bun run format
# Check code for issues
bun run check
# Type check
bun run typecheck
# Run tests
bun test
MCP Inspector
Haz clic para expandir los detalles de MCP Inspector
MCP Inspector es una herramienta potente para probar y depurar tu servidor MCP.
# Run the inspector (no separate build step needed)
bun run inspect
El inspector automáticamente:
- Carga las variables de entorno desde
.env - Limpia los puertos ocupados (5175, 3002)
- Compila el proyecto cuando es necesario
- Inicia el servidor MCP con tu configuración
- Lanza la interfaz del inspector
Visita el inspector en http://localhost:5175?proxyPort=3002
Si encuentras conflictos de puertos:
bun run cleanup-ports
Depuración con el inspector
La interfaz del inspector te permite:
- Ver todas las capacidades MCP disponibles
- Ejecutar herramientas y examinar respuestas
- Analizar la comunicación JSON
- Probar con diferentes parámetros
Para más detalles, consulta el repositorio de GitHub de MCP Inspector.
Integración con Claude Desktop
Haz clic para expandir la integración con Claude Desktop
Prueba tu servidor MCP directamente con Claude:
-
Compila:
bun run build # You must build the project before running it -
Configura Claude Desktop:
nano ~/Library/Application\ Support/Claude/claude_desktop_config.json -
Añade la configuración MCP:
{ "mcpServers": { "JIRA Tools": { "command": "node", "args": ["/absolute/path/to/your/project/dist/index.js"], "env": { "JIRA_USERNAME": "your-jira-username", "JIRA_API_TOKEN": "your-jira-api-token", "JIRA_HOST": "your-jira-host.atlassian.net" } } } } -
Reinicia Claude Desktop y prueba con:
Show me my assigned JIRA issues.
🔌 Integración con el IDE Cursor
⚠️ Importante: Debes compilar el proyecto con
bun run buildantes de integrarlo con el IDE Cursor o Claude Desktop.
Añade este servidor MCP a la configuración MCP de tu IDE Cursor:
{
"mcpServers": {
"JIRA Tools": {
"command": "node",
"args": ["/absolute/path/to/your/project/dist/index.js"],
"env": {
"JIRA_USERNAME": "your-jira-username",
"JIRA_API_TOKEN": "your-jira-api-token",
"JIRA_HOST": "your-jira-host.atlassian.net"
}
}
}
}
📁 Estructura del proyecto
src/
├── core/ # Core functionality and configurations
│ ├── errors/ # Error handling utilities
│ ├── logging/ # Logging infrastructure
│ ├── responses/ # Response formatting
│ ├── server/ # MCP server implementation
│ ├── tools/ # Base tool interfaces
│ └── utils/ # Core utilities
├── features/ # Feature implementations
│ └── jira/ # JIRA API integration
│ ├── api/ # JIRA API client
│ ├── formatters/ # Response formatters
│ ├── tools/ # MCP tool implementations
│ └── utils/ # JIRA-specific utilities
└── test/ # Test utilities and mocks
├── mocks/ # Mock factories
└── utils/ # Test helpers
Scripts NPM
| Comando | Descripción |
|---|---|
bun dev | Ejecuta el servidor en modo desarrollo con recarga en caliente |
bun build | Compila el proyecto para producción |
bun start | Inicia el servidor de producción |
bun format | Formatea el código usando Biome |
bun lint | Aplica linting al código usando Biome |
bun check | Ejecuta comprobaciones de Biome en el código |
bun typecheck | Ejecuta la comprobación de tipos de TypeScript |
bun test | Ejecuta pruebas |
bun inspect | Inicia MCP Inspector para depuración |
bun cleanup-ports | Limpia los puertos usados por el servidor de desarrollo |
📝 Contribuciones
¡Agradecemos las contribuciones! Consulta nuestra Guía de contribución para obtener detalles sobre:
- Flujo de trabajo de desarrollo
- Estrategia de ramas
- Formato de mensajes de confirmación
- Proceso de solicitudes de extracción
- Directrices de estilo de código
📘 Recursos
- Documentación del Protocolo de Contexto de Modelo
- SDK de TypeScript de MCP
- Especificación de MCP
- MCP Inspector
- Documentación de la API REST de JIRA
📄 Licencia
MIT © Stanislav Stepanenko