Jira

Um servidor para consultar issues do Jira, exigindo um token Jira para autenticação.

Documentação

redhat-ai-tools/jira-mcp

Um servidor MCP Python containerizado para o Cursor fornecer acesso ao Jira.

[!IMPORTANT] Este projeto é experimental e foi inicialmente criado como um exercício de aprendizado. Esteja ciente de que existem soluções Jira MCP mais capazes e maduras disponíveis, como sooperset/mcp-atlassian, e o próprio MCP Server da Atlassian.

Veja também redhat-ai-tools/jira-mcp-snowflake que fornece outra maneira de acessar os dados do Jira da Red Hat.

Início Rápido

  1. Prepare um token do Jira

  2. Configure o Cursor

    • No Cursor, vá para "Settings", "Tools & Integrations" e clique em "New MCP Server"
    • Cole o seguinte JSON (ou insira apenas o objeto jiraMcp sob a chave mcpServers).
    • Atualize "/path/to/your/dotenv/file.env" para apontar para o arquivo do passo 1.
    • Salve
{
  "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"
    }
  }
}

Início Rápido (para desenvolvedores)

  1. Pré-requisitos

    • podman - Instale com sudo dnf install podman (Fedora/RHEL) ou brew install podman (macOS)
    • yq - Instale com sudo dnf install yq (Fedora/RHEL) ou brew install yq (macOS)
    • make - Geralmente pré-instalado na maioria dos sistemas
  2. Obtenha o código

git clone git@github.com:redhat-ai-tools/jira-mcp.git
cd jira-mcp
  1. Construa a imagem e configure o Cursor
    Isso também cria um arquivo ~/.rh-jira-mcp.env como este.
make setup
  1. Prepare um token do Jira

  2. Decida se deseja habilitar operações de escrita

Habilitar seu servidor MCP para fazer edições no Jira pode ser muito útil, mas também pode causar muitos problemas se você não tiver cuidado ao usar as ferramentas MCP. Por padrão, o servidor tem as operações de escrita desativadas. Se quiser ativá-las, edite o arquivo .rh-jira-mcp.env no seu diretório inicial para definir JIRA_ENABLE_WRITE=true.

  1. Verifique se está funcionando no Cursor

Para confirmar que está funcionando, execute o Cursor, vá para Configurações e clique em "Tools & Integrations". Em Ferramentas MCP, você deve ver "jiraMcp" com 20 ferramentas habilitadas se JIRA_ENABLE_WRITE=false (o valor padrão) ou 30 ferramentas habilitadas se JIRA_ENABLE_WRITE=true.

Usando com um aplicativo MCP baseado em HTTP

Se você quiser usar este servidor MCP com um aplicativo que se comunica via HTTP, então você precisa executar o servidor com um mecanismo de transporte baseado em HTTP. Aqui está um exemplo de como fazer isso usando Streamable HTTP, que é o mecanismo de transporte baseado em HTTP atualmente recomendado para MCP:

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

Aqui está um exemplo de como fazer isso usando SSE, que é um mecanismo de transporte baseado em HTTP obsoleto (por exemplo, porque você tem um aplicativo cliente MCP mais antigo que depende de SSE):

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

Para Streamable HTTP ou SSE, a JIRA_API_KEY no seu ambiente é ignorada (e não é necessária). Isso é um recurso de segurança importante, porque caso contrário, qualquer pessoa que tivesse acesso ao serviço HTTP teria acesso às informações da conta de quem configurou e executou esse servidor. Em vez disso, os aplicativos chamadores devem enviar seu próprio token do Jira como um token Bearer. Aqui está um exemplo de como fazer isso 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}"
            }
        }
    ]
)

Ferramentas Disponíveis

Este servidor MCP fornece as seguintes ferramentas:

Pesquisa e Recuperação de Issues

  • get_jira - Obtenha detalhes de um issue específico do Jira pela chave.
  • search_issues - Pesquise issues usando JQL

Criação e Gerenciamento de Issues

  • create_issue - Crie um novo issue do Jira com resumo, descrição, tipo, prioridade e responsável
  • update_issue - Atualize o resumo, a descrição, a prioridade ou o responsável de um issue existente
  • delete_issue - Exclua um issue do Jira (use com cautela)

Comentários de Issues

  • get_issue_comments - Obtenha todos os comentários de um issue do Jira
  • add_comment - Adicione um comentário a um issue do Jira
  • delete_comment - Exclua um comentário de um issue do Jira

Atribuição de Issues

  • assign_issue - Atribua um issue do Jira a um usuário
  • unassign_issue - Desatribua um issue do Jira

Fluxo de Trabalho e Status de Issues

  • transition_issue - Transicione um issue do Jira para um novo status (por exemplo, "In Progress", "Done")
  • get_issue_transitions - Obtenha as transições disponíveis para um issue do Jira

Rótulos de Issues

  • add_issue_labels - Adicione rótulos a um issue do Jira
  • remove_issue_labels - Remova rótulos de um issue do Jira

Gerenciamento de Projetos

  • list_projects - Liste todos os projetos
  • get_project - Obtenha detalhes do projeto pela chave
  • get_project_components - Obtenha componentes de um projeto
  • get_project_versions - Obtenha versões de um projeto
  • get_project_roles - Obtenha papéis de um projeto
  • get_project_permission_scheme - Obtenha o esquema de permissões de um projeto
  • get_project_issue_types - Obtenha os tipos de issue de um projeto

Gerenciamento de Quadros e Sprints

  • list_boards - Liste todos os quadros
  • list_sprints - Liste os sprints de um quadro
  • get_sprint - Obtenha detalhes do sprint por ID
  • get_sprints_by_name - Obtenha sprints por nome para um quadro, opcionalmente filtrados por estado

Gerenciamento de Usuários

  • search_users - Pesquise usuários por consulta
  • get_user - Obtenha detalhes do usuário por ID da conta
  • get_current_user - Obtenha informações do usuário atual
  • get_assignable_users_for_project - Obtenha usuários atribuíveis para um projeto
  • get_assignable_users_for_issue - Obtenha usuários atribuíveis para um issue

Comandos de Desenvolvimento

  • make build - Construa a imagem
  • make run - Execute o contêiner
  • make clean - Limpe a imagem construída
  • make cursor-config - Modifique ~/.cursor/mcp.json para instalar este servidor MCP
  • make setup - Constrói a imagem, configura o Cursor e cria ~/.rh-jira-mcp.env se ele não existir

Solução de Problemas

Servidor Não Iniciando

  • Confirme que make run funciona
  • Verifique se o JIRA_API_TOKEN está correto
  • Verifique se a imagem foi construída com sucesso com podman images jira-mcp
  • Vá para a aba "Output" no painel inferior do Cursor, escolha "MCP Logs" no menu suspenso e examine os logs lá
  • (MacOS) jiraMcp aparece na seção de ferramentas do Cursor, mas não mostra ferramentas ativas:
    • Edite a seção de argumentos do jiraMcp no seu arquivo mcp.json para incluir o caminho completo para o arquivo .rh-jira-mcp.env.
    • Exemplo: "~/.rh-jira-mcp.env", para "/Users/your_username/.rh-jira-mcp.env",

Problemas de Conexão

  • Reinicie o Cursor após alterações de configuração
  • Verifique o console do desenvolvedor do Cursor para mensagens de erro
  • Verifique se a URL do Jira está acessível a partir da sua rede

Licença

Este projeto é licenciado sob a Licença MIT. Consulte o arquivo LICENSE para obter detalhes.