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

  1. Inicia sesión en tu instancia de Jira (p. ej., https://jira.domain.com)
  2. Haz clic en el icono de tu perfil en la esquina superior derecha
  3. Selecciona "Profile" o "Account Settings"
  4. Navega a "Personal Access Tokens" o "Security"
  5. Haz clic en "Create token"
  6. Asigna un nombre a tu token (p. ej., "MCP Server")
  7. Establece una fecha de expiración (opcional pero recomendado)
  8. Haz clic en "Create"
  9. 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

  1. Clona el repositorio:
git clone https://github.com/edrich13/mcp-jira-server.git
cd mcp-jira-server
  1. Instala las dependencias:
npm install
  1. 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 Token
  • JIRA_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 JQL
  • maxResults (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 = Open
  • assignee = currentUser() AND status != Done
  • priority = High AND created >= -7d
  • reporter = 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 proyecto
  • summary (cadena, obligatorio): Título/resumen de la incidencia
  • issueType (cadena, obligatorio): Tipo de incidencia (p. ej., "Bug", "Task", "Story")
  • description (cadena, opcional): Descripción detallada
  • priority (cadena, opcional): Nivel de prioridad (p. ej., "High", "Medium", "Low")
  • assignee (cadena, opcional): Nombre de usuario al que asignar
  • labels (matriz, opcional): Matriz de etiquetas
  • components (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 actualizar
  • summary (cadena, opcional): Nuevo resumen
  • description (cadena, opcional): Nueva descripción
  • assignee (cadena, opcional): Nuevo nombre de usuario del asignado
  • priority (cadena, opcional): Nueva prioridad
  • labels (matriz, opcional): Nueva matriz de etiquetas
  • status (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 incidencia
  • comment (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 incidencia
  • assignee (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

  1. Probar la autenticación:

    Get my current Jira user information
    
  2. Listar proyectos:

    Show me all Jira projects
    
  3. Buscar incidencias:

    Search for all issues assigned to me that are not done
    
  4. 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 install y npm 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_types para 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_AGENT con 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

  1. Nunca confirmes tu Personal Access Token en el control de versiones
  2. Almacena los tokens de forma segura en archivos de configuración con permisos restringidos
  3. Usa tokens con los permisos mínimos necesarios
  4. Establece fechas de expiración para los tokens
  5. Rota los tokens con regularidad
  6. 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