Jira MCP
Servidor MCP para conectar asistentes de IA a tu propia instancia de Jira
Documentación
Servidor MCP Jira para Jira Autoalojado
Un servidor de Model Context Protocol (MCP) para interactuar con instancias de Jira autoalojadas mediante autenticación con Personal Access Token (PAT).
Características
- ✅ Autenticación con Personal Access Token para Jira autoalojado
- ✅ Crear, leer, actualizar y eliminar incidencias de Jira
- ✅ Buscar incidencias usando JQL (Jira Query Language)
- ✅ Añadir y ver comentarios
- ✅ Gestionar asignaciones de incidencias
- ✅ Listar proyectos y tipos de incidencia
- ✅ Transicionar incidencias entre estados
- ✅ Obtener información del usuario actual
Requisitos previos
- Node.js 18 o superior
- Una instancia de Jira autoalojada (p. ej., https://jira.domain.com)
- Un Personal Access Token de Jira
Cómo crear un Personal Access Token en Jira autoalojado
- Inicia sesión en tu instancia de Jira (p. ej., https://jira.domain.com)
- Haz clic en el icono de tu perfil en la esquina superior derecha
- Selecciona "Profile" o "Account Settings"
- Navega a "Personal Access Tokens" o "Security"
- Haz clic en "Create token"
- Asigna un nombre a tu token (p. ej., "MCP Server")
- Establece una fecha de expiración (opcional pero recomendado)
- Haz clic en "Create"
- Copia el token inmediatamente: ¡no podrás verlo de nuevo!
Instalación
Opción 1: Usando npm (Recomendado)
Uso directo con npx:
npx mcp-jira-server
O instalar globalmente:
npm install -g mcp-jira-server
Opción 2: Desde el código fuente
- Clona el repositorio:
git clone https://github.com/edrich13/mcp-jira-server.git
cd mcp-jira-server
- Instala las dependencias:
npm install
- Compila el servidor:
npm run build
Configuración
Para Claude Desktop
Añade lo siguiente a tu archivo de configuración de Claude Desktop:
MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Opción 1: Usando npx (Recomendado)
{
"mcpServers": {
"jira": {
"command": "npx",
"args": ["-y", "mcp-jira-server"],
"env": {
"JIRA_BASE_URL": "https://jira.domain.com",
"JIRA_PAT": "your-personal-access-token-here"
}
}
}
}
Opción 2: Usando la compilación desde el código fuente
{
"mcpServers": {
"jira": {
"type": "stdio",
"command": "node",
"args": ["/Users/edrich.rocha/.nvm/versions/node/v22.6.0/bin/mcp-jira-server"],
"env": {
"JIRA_BASE_URL": "https://jira.domain.com",
"JIRA_PAT": "your-personal-access-token-here"
}
}
}
}
Para VS Code con MCP
Crea o actualiza .vscode/mcp.json en tu espacio de trabajo:
Opción 1: Usando npx (Recomendado)
{
"servers": {
"jira": {
"command": "npx",
"args": ["-y", "mcp-jira-server"],
"env": {
"JIRA_BASE_URL": "https://jira.domain.com",
"JIRA_PAT": "your-personal-access-token-here"
}
}
}
}
Opción 2: Usando la compilación desde el código fuente
{
"servers": {
"jira": {
"command": "node",
"args": ["/absolute/path/to/mcp-jira-server/build/index.js"],
"env": {
"JIRA_BASE_URL": "https://jira.domain.com",
"JIRA_PAT": "your-personal-access-token-here"
}
}
}
}
Variables de entorno
JIRA_BASE_URL: La URL base de tu instancia de Jira autoalojada (p. ej.,https://jira.domain.com)JIRA_PAT: Tu Personal Access TokenJIRA_USER_AGENT(opcional): Cabecera User-Agent personalizada para instancias de Jira detrás de proxies inversos (oauth2-proxy, nginx, etc.) que filtran solicitudes por User-Agent. Si tus solicitudes de API se redirigen al inicio de sesión SSO a pesar de tener un PAT válido, tu proxy inverso puede requerir un User-Agent específico para omitir la autenticación para clientes de API.
Herramientas disponibles
1. jira_get_issue
Obtén los detalles de una incidencia específica de Jira por su clave.
Parámetros:
issueKey(cadena, obligatorio): La clave de la incidencia de Jira (p. ej., "PROJ-123")
Ejemplo:
Get details for issue PROJ-123
2. jira_search_issues
Busca incidencias de Jira usando JQL (Jira Query Language).
Parámetros:
jql(cadena, obligatorio): Cadena de consulta JQLmaxResults(número, opcional): Número máximo de resultados (por defecto: 50)
Ejemplo:
Search for all open issues in project PROJ assigned to me
Ejemplos comunes de JQL:
project = PROJ AND status = Openassignee = currentUser() AND status != Donepriority = High AND created >= -7dreporter = john.doe AND status IN (Open, "In Progress")
3. jira_create_issue
Crea una nueva incidencia de Jira.
Parámetros:
projectKey(cadena, obligatorio): Clave del proyectosummary(cadena, obligatorio): Título/resumen de la incidenciaissueType(cadena, obligatorio): Tipo de incidencia (p. ej., "Bug", "Task", "Story")description(cadena, opcional): Descripción detalladapriority(cadena, opcional): Nivel de prioridad (p. ej., "High", "Medium", "Low")assignee(cadena, opcional): Nombre de usuario al que asignarlabels(matriz, opcional): Matriz de etiquetascomponents(matriz, opcional): Matriz de nombres de componentes- Campos personalizados: Cualquier parámetro adicional con prefijo
customfield_(p. ej.,customfield_10001)
Ejemplo:
Create a new bug in project PROJ with summary "Login page not loading" and high priority
Ejemplo de campos personalizados:
Create a story in PROJ with custom field customfield_10001 set to "Sprint 1"
4. jira_update_issue
Actualiza una incidencia existente de Jira.
Parámetros:
issueKey(cadena, obligatorio): Clave de la incidencia a actualizarsummary(cadena, opcional): Nuevo resumendescription(cadena, opcional): Nueva descripciónassignee(cadena, opcional): Nuevo nombre de usuario del asignadopriority(cadena, opcional): Nueva prioridadlabels(matriz, opcional): Nueva matriz de etiquetasstatus(cadena, opcional): Nuevo estado (p. ej., "In Progress", "Done")- Campos personalizados: Cualquier parámetro adicional con prefijo
customfield_(p. ej.,customfield_10002)
Ejemplo:
Update issue PROJ-123 to set status to "In Progress" and assign to john.doe
5. jira_add_comment
Añade un comentario a una incidencia de Jira.
Parámetros:
issueKey(cadena, obligatorio): Clave de la incidenciacomment(cadena, obligatorio): Texto del comentario
Ejemplo:
Add a comment to PROJ-123 saying "Fixed in latest deployment"
6. jira_get_comments
Obtén todos los comentarios de una incidencia de Jira.
Parámetros:
issueKey(cadena, obligatorio): Clave de la incidencia
7. jira_get_projects
Lista todos los proyectos de Jira disponibles.
Parámetros: Ninguno
Ejemplo:
List all Jira projects
8. jira_get_project
Obtén los detalles de un proyecto específico.
Parámetros:
projectKey(cadena, obligatorio): Clave del proyecto
9. jira_get_issue_types
Obtén los tipos de incidencia disponibles para un proyecto.
Parámetros:
projectKey(cadena, obligatorio): Clave del proyecto
10. jira_assign_issue
Asigna una incidencia de Jira a un usuario.
Parámetros:
issueKey(cadena, obligatorio): Clave de la incidenciaassignee(cadena, obligatorio): Nombre de usuario al que asignar
11. jira_delete_issue
Elimina una incidencia de Jira de forma permanente.
Parámetros:
issueKey(cadena, obligatorio): Clave de la incidencia a eliminar
⚠️ Advertencia: Esta acción es permanente y no se puede deshacer.
12. jira_get_current_user
Obtén información sobre el usuario autenticado actualmente.
Parámetros: Ninguno
Desarrollo
Compilar el servidor
npm run build
Modo de observación para desarrollo
npm run watch
Ejecutar en modo de desarrollo
npm run dev
Pruebas del servidor
Después de configurar el servidor, reinicia Claude Desktop o VS Code para cargar el nuevo servidor MCP.
Comandos de prueba rápidos
-
Probar la autenticación:
Get my current Jira user information -
Listar proyectos:
Show me all Jira projects -
Buscar incidencias:
Search for all issues assigned to me that are not done -
Crear una incidencia:
Create a new task in project PROJ with summary "Test MCP integration"
Solución de problemas
El servidor no se conecta
- Verifica la ruta absoluta en tu configuración
- Asegúrate de que el servidor esté compilado (
npm run build) - Comprueba que las variables de entorno estén configuradas correctamente
- Reinicia Claude Desktop o VS Code después de los cambios de configuración
Errores de autenticación
- Verifica que tu Personal Access Token siga siendo válido
- Comprueba que el token no haya expirado
- Asegúrate de que el token tenga los permisos adecuados
- Verifica que JIRA_BASE_URL sea correcta (sin barra final)
Errores de API
- Revisa los registros del servidor de Jira para ver mensajes de error detallados
- Verifica que la API de Jira sea accesible desde tu máquina
- Asegúrate de que tu cuenta de usuario tenga los permisos necesarios
- Intenta acceder directamente a la API REST:
https://jira.domain.com/rest/api/2/myself
Problemas comunes
- "Cannot find module": Ejecuta
npm installynpm run build - "Connection refused": Comprueba si el servidor de Jira es accesible y si la URL es correcta
- "Unauthorized": Verifica tu Personal Access Token
- "Issue type not found": Usa
jira_get_issue_typespara ver los tipos válidos para el proyecto - Las solicitudes de API se redirigen al inicio de sesión SSO: Tu Jira puede estar detrás de un proxy inverso (oauth2-proxy, nginx) que filtra por User-Agent. Establece la variable de entorno
JIRA_USER_AGENTcon una cadena User-Agent en la lista blanca. Contacta con tu administrador de sistemas para obtener el valor de User-Agent permitido.
Buenas prácticas de seguridad
- Nunca confirmes tu Personal Access Token en el control de versiones
- Almacena los tokens de forma segura en archivos de configuración con permisos restringidos
- Usa tokens con los permisos mínimos necesarios
- Establece fechas de expiración para los tokens
- Rota los tokens con regularidad
- Supervisa el uso de tokens en los registros de auditoría de Jira
Referencia de la API
Este servidor MCP utiliza la API REST de Jira v2. Para más información sobre la API de Jira:
- Documentación de la API REST de Jira:
https://your-jira-instance/rest/api/2/ - Guía de sintaxis JQL: Consulta la documentación de tu instancia de Jira
Licencia
MIT
Soporte
Para problemas relacionados con:
- Servidor MCP: Revisa los registros en Claude Desktop o VS Code
- API de Jira: Consulta la documentación de tu Jira autoalojado
- Autenticación: Contacta con tu administrador de Jira
Contribuciones
¡Las contribuciones son bienvenidas! Asegúrate de que:
- El código siga las mejores prácticas de TypeScript
- Todas las herramientas estén documentadas correctamente
- El manejo de errores sea exhaustivo
- Se sigan las mejores prácticas de seguridad