Jira

Un servidor para consultar incidencias de Jira, que requiere un token de Jira para la autenticación.

Documentación

redhat-ai-tools/jira-mcp

Un servidor MCP de Python contenerizado para Cursor que proporciona acceso a Jira.

[!IMPORTANT] Este proyecto es experimental y fue creado inicialmente como un ejercicio de aprendizaje. Ten en cuenta que existen soluciones MCP de Jira más capaces y maduras disponibles, como sooperset/mcp-atlassian, y el propio MCP Server de Atlassian.

Ver también redhat-ai-tools/jira-mcp-snowflake que proporciona otra forma de acceder a los datos de Red Hat Jira.

Inicio Rápido

  1. Prepara un token de Jira

  2. Configura Cursor

    • En Cursor ve a "Settings", "Tools & Integrations", y haz clic en "New MCP Server"
    • Pega el siguiente JSON, (o inserta solo el objeto jiraMcp bajo la clave mcpServers).
    • Actualiza "/path/to/your/dotenv/file.env" para que apunte al archivo del paso 1.
    • Guarda
{
  "mcpServers": {
    "jiraMcp": {
      "command": "podman",
      "args": [
        "run",
        "-i",
        "--rm",
        "--env-file",
        "/path/to/your/dotenv/file.env",
        "quay.io/sbaird/jira-mcp:latest"
      ],
      "description": "A containerized MCP server to query Jira issues"
    }
  }
}

Inicio Rápido (para desarrolladores)

  1. Requisitos previos

    • podman - Instala con sudo dnf install podman (Fedora/RHEL) o brew install podman (macOS)
    • yq - Instala con sudo dnf install yq (Fedora/RHEL) o brew install yq (macOS)
    • make - Generalmente preinstalado en la mayoría de los sistemas
  2. Obtén el código

git clone git@github.com:redhat-ai-tools/jira-mcp.git
cd jira-mcp
  1. Construye la imagen y configura Cursor
    Esto también crea un archivo ~/.rh-jira-mcp.env como este.
make setup
  1. Prepara un token de Jira

  2. Decide si habilitar operaciones de escritura

Habilitar que tu servidor MCP realice ediciones en Jira puede ser muy útil, pero también puede causar muchos problemas si no tienes cuidado en cómo usas las herramientas MCP. Por defecto, el servidor tiene las operaciones de escritura desactivadas. Si quieres activarlas, edita el archivo .rh-jira-mcp.env en tu directorio personal para establecer JIRA_ENABLE_WRITE=true.

  1. Comprueba si funciona en Cursor

Para confirmar que funciona, ejecuta Cursor, ve a Settings y haz clic en "Tools & Integrations". Bajo MCP Tools deberías ver "jiraMcp" con 20 herramientas habilitadas si JIRA_ENABLE_WRITE=false (el valor predeterminado) o 30 herramientas habilitadas si JIRA_ENABLE_WRITE=true.

Uso con una aplicación MCP basada en HTTP

Si quieres usar este servidor MCP con una aplicación que se comunica mediante HTTP, entonces necesitas ejecutar el servidor con un mecanismo de transporte basado en HTTP. Aquí hay un ejemplo de cómo hacer esto usando Streamable HTTP, que es el mecanismo de transporte basado en HTTP actualmente recomendado para MCP:

export $(grep -v '^#' ~/.rh-jira-mcp.env | xargs) && python server.py --transport http --port 3075

Aquí hay un ejemplo de cómo hacer esto usando SSE, que es un mecanismo de transporte basado en HTTP obsoleto (por ejemplo, porque tienes una aplicación cliente MCP más antigua que depende de SSE):

export $(grep -v '^#' ~/.rh-jira-mcp.env | xargs) && python server.py --transport sse --port 3075

Tanto para Streamable HTTP como para SSE, el JIRA_API_KEY en tu entorno se ignora (y no es necesario). Esta es una característica de seguridad importante, porque de lo contrario cualquiera que tuviera acceso al servicio HTTP tendría acceso a la información de la cuenta de quien configuró y ejecutó ese servidor. En su lugar, las aplicaciones que llaman deben enviar su propio token de Jira como token Bearer. Aquí hay un ejemplo de cómo hacerlo usando Llama Stack:

from llama_stack_client import LlamaStackClient

client = LlamaStackClient(base_url=LLAMA_STACK_URL)
mcp_llama_stack_client_response = client.responses.create(
    model=LLAMA_STACK_MODEL_ID,
    input="Tell me about RHAISTRAT-24.",
    tools=[
        {
            "type": "mcp",
            "server_url": JIRA_MCP_URL,
            "server_label": "Jira_tools",            
            "headers": {
                "Authorization": f"Bearer {JIRA_API_TOKEN}"
            }
        }
    ]
)

Herramientas Disponibles

Este servidor MCP proporciona las siguientes herramientas:

Búsqueda y Recuperación de Incidencias

  • get_jira - Obtén detalles de una incidencia específica de Jira por clave.
  • search_issues - Busca incidencias usando JQL

Creación y Gestión de Incidencias

  • create_issue - Crea una nueva incidencia de Jira con resumen, descripción, tipo, prioridad y asignado
  • update_issue - Actualiza el resumen, descripción, prioridad o asignado de una incidencia existente
  • delete_issue - Elimina una incidencia de Jira (usar con precaución)

Comentarios de Incidencias

  • get_issue_comments - Obtén todos los comentarios de una incidencia de Jira
  • add_comment - Añade un comentario a una incidencia de Jira
  • delete_comment - Elimina un comentario de una incidencia de Jira

Asignación de Incidencias

  • assign_issue - Asigna una incidencia de Jira a un usuario
  • unassign_issue - Desasigna una incidencia de Jira

Flujo de Trabajo y Estado de Incidencias

  • transition_issue - Transiciona una incidencia de Jira a un nuevo estado (por ejemplo, "En Progreso", "Hecho")
  • get_issue_transitions - Obtén las transiciones disponibles para una incidencia de Jira

Etiquetas de Incidencias

  • add_issue_labels - Añade etiquetas a una incidencia de Jira
  • remove_issue_labels - Elimina etiquetas de una incidencia de Jira

Gestión de Proyectos

  • list_projects - Lista todos los proyectos
  • get_project - Obtén detalles del proyecto por clave
  • get_project_components - Obtén componentes de un proyecto
  • get_project_versions - Obtén versiones de un proyecto
  • get_project_roles - Obtén roles de un proyecto
  • get_project_permission_scheme - Obtén el esquema de permisos de un proyecto
  • get_project_issue_types - Obtén tipos de incidencia de un proyecto

Gestión de Tableros y Sprints

  • list_boards - Lista todos los tableros
  • list_sprints - Lista sprints de un tablero
  • get_sprint - Obtén detalles del sprint por ID
  • get_sprints_by_name - Obtén sprints por nombre para un tablero, opcionalmente filtrados por estado

Gestión de Usuarios

  • search_users - Busca usuarios por consulta
  • get_user - Obtén detalles del usuario por ID de cuenta
  • get_current_user - Obtén información del usuario actual
  • get_assignable_users_for_project - Obtén usuarios asignables para un proyecto
  • get_assignable_users_for_issue - Obtén usuarios asignables para una incidencia

Comandos de Desarrollo

  • make build - Construye la imagen
  • make run - Ejecuta el contenedor
  • make clean - Limpia la imagen construida
  • make cursor-config - Modifica ~/.cursor/mcp.json para instalar este Servidor MCP
  • make setup - Construye la imagen, configura Cursor y crea ~/.rh-jira-mcp.env si no existe

Solución de Problemas

El Servidor No Se Inicia

  • Confirma que make run funciona
  • Verifica que el JIRA_API_TOKEN sea correcto
  • Verifica que la imagen se construyó correctamente con podman images jira-mcp
  • Ve a la pestaña "Output" en el panel inferior de Cursor, elige "MCP Logs" en el menú desplegable y examina los registros allí
  • (MacOS) jiraMcp aparece en la sección de herramientas de Cursor pero no muestra herramientas activas:
    • Edita la sección de argumentos de jiraMcp en tu archivo mcp.json para incluir tu ruta completa al archivo .rh-jira-mcp.env.
    • Ejemplo: "~/.rh-jira-mcp.env", a "/Users/your_username/.rh-jira-mcp.env",

Problemas de Conexión

  • Reinicia Cursor después de los cambios de configuración
  • Revisa la consola de desarrollador de Cursor para ver mensajes de error
  • Verifica que la URL de Jira sea accesible desde tu red

Licencia

Este proyecto está licenciado bajo la Licencia MIT. Consulta el archivo LICENSE para más detalles.