Atlassian-mcp-server
Servidor MCP para Atlassian Cloud (Confluence e Jira) com autenticação OAuth 2.0 integrada.
Documentação
Atlassian MCP Server
Servidor MCP para Atlassian Cloud (Confluence e Jira) com autenticação OAuth 2.0 integrada. Este servidor permite que agentes de IA ajudem usuários a documentar trabalho no Confluence, gerenciar issues do Jira e entender o contexto do projeto.
Recursos
- Fluxo OAuth 2.0 Integrado: Autenticação automática baseada em navegador com segurança PKCE
- Arquitetura Modular: Classes de cliente especializadas para operações Jira, Confluence e Service Desk
- Carregamento Seletivo de Módulos: Configure quais módulos carregar usando variáveis de ambiente
- Integração com Jira: Pesquisar, criar e atualizar issues; adicionar comentários; gerenciar trabalho
- Integração com Confluence: Pesquisar e ler conteúdo para compreensão de contexto
- Gerenciamento de Serviços: Acessar tickets de suporte e solicitações
- Gerenciamento Automático de Tokens: Lida com a renovação de tokens automaticamente
- Permissões Mínimas: Segue o princípio do menor privilégio com apenas os escopos necessários
Arquitetura
O servidor usa uma arquitetura modular com classes de cliente especializadas:
- BaseAtlassianClient: Autenticação OAuth 2.0 principal e manipulação de requisições HTTP
- JiraClient: Operações específicas do Jira (issues, projetos, comentários)
- ConfluenceClient: Operações específicas do Confluence (páginas, espaços, pesquisa)
- ServiceDeskClient: Operações de Gerenciamento de Serviços (solicitações, aprovações, CMDB de Ativos)
Cada módulo pode ser habilitado/desabilitado de forma independente para desempenho e segurança ideais.
Casos de Uso
Este servidor MCP foi projetado para ajudar agentes de IA a auxiliar usuários com:
- Documentação de Trabalho: Ajudar a documentar progresso do trabalho e decisões no Confluence
- Gerenciamento de Issues: Criar, atualizar e acompanhar issues do Jira com base em conversas
- Compreensão de Contexto: Ler páginas do Confluence para entender o histórico do projeto
- Registro de Tempo e Atividades: Acompanhar atividades de trabalho e tempo gasto em tarefas
- Solicitações de Serviço: Acessar tickets de gerenciamento de serviços para contexto de suporte
- Coordenação de Projetos: Pesquisar no Jira e no Confluence por informações do projeto
Configuração do App OAuth
1. Criar App OAuth
- Acesse o Console de Desenvolvedor Atlassian
- Clique em Create → OAuth 2.0 integration
- Digite o nome do seu app e aceite os termos
- Defina a Callback URL como:
http://localhost:8080/callback
2. Configurar Escopos Necessários
IMPORTANTE: Você deve adicionar exatamente estes escopos ao seu app OAuth antes que o servidor MCP possa funcionar corretamente.
Escopos da API do Jira
Navegue até Permissions → Jira API e adicione:
read:jira-work- Ler issues, projetos e pesquisasread:jira-user- Ler informações do usuáriowrite:jira-work- Criar e atualizar issues
Escopos da API do Confluence
Navegue até Permissions → Confluence API e adicione:
read:page:confluence- Ler conteúdo de páginas (escopo granular para API v2)read:space:confluence- Ler informações de espaços (escopo granular para API v2)write:page:confluence- Criar e atualizar páginas (escopo granular para API v2)
Escopos da API de Gerenciamento de Serviços
Navegue até Permissions → Jira Service Management API e adicione:
read:servicedesk-request- Ler solicitações de gerenciamento de serviçoswrite:servicedesk-request- Criar e atualizar solicitações de gerenciamento de serviçosmanage:servicedesk-customer- Gerenciar clientes e participantes do service deskread:knowledgebase:jira-service-management- Pesquisar artigos da base de conhecimento
Escopos da API de Identidade do Usuário
Navegue até Permissions → User identity API e adicione:
read:me- Informações do perfil do usuário
Escopos Principais
Estes geralmente estão disponíveis por padrão:
offline_access- Capacidade de renovação de token
3. Instalar o App no Seu Site Atlassian
Após configurar os escopos, você precisa instalar o app no seu site Atlassian:
- No seu app OAuth, vá até a aba Authorization
- Use o gerador de URL de autorização para criar uma URL de instalação:
- Selecione os escopos configurados
- Escolha seu site Atlassian no menu suspenso
- Clique em Generate URL
- Acesse a URL gerada no seu navegador para instalar o app no seu site
- Conceda as permissões quando solicitado pela Atlassian
Observação: Esta etapa é necessária antes que o servidor MCP possa acessar seus dados do Atlassian. O app deve ser instalado e autorizado para o seu site específico.
4. Obter Suas Credenciais
Após instalar o app:
- Vá até a aba Settings no seu app OAuth
- Copie seu Client ID e Client Secret
- Defina as variáveis de ambiente (veja a seção de Configuração abaixo)
5. Resumo da Configuração de Escopos
Mínimo Necessário (12 escopos):
read:jira-work
read:jira-user
write:jira-work
read:page:confluence
read:space:confluence
write:page:confluence
read:servicedesk-request
write:servicedesk-request
manage:servicedesk-customer
read:knowledgebase:jira-service-management
read:me
offline_access
Opcional (adicione apenas se necessário):
write:servicedesk-request # Only if creating service tickets
manage:* scopes # Only for administrative operations
6. Solução de Problemas com Escopos
Se você receber erros relacionados a escopos:
- "scope does not match": O escopo não foi adicionado ao seu app OAuth no Console de Desenvolvedor
- "Current user not permitted": O usuário não tem permissões de nível de produto (entre em contato com seu administrador Atlassian)
- "Unauthorized": Verifique se todos os escopos necessários estão configurados corretamente
Observação: Após adicionar novos escopos ao seu app OAuth, você deve reautenticar usando a ferramenta authenticate_atlassian para obter tokens novos com as novas permissões.
Instalação
Pré-requisitos
- Python 3.8 ou superior
- Gerenciador de pacotes pip3
- Acesso a um site Atlassian Cloud
- App OAuth configurado (veja Configuração do App OAuth acima)
Instalar a partir do PyPI (Recomendado)
pip3 install atlassian-mcp-server
Instalar a partir do Repositório GitHub
# Install directly from GitHub repository
pip3 install git+https://github.com/rorymcmahon/atlassian-mcp-server.git
Instalar a partir do Código-Fonte
# Clone the repository
git clone https://github.com/rorymcmahon/atlassian-mcp-server.git
cd atlassian-mcp-server
# Install in development mode
pip3 install -e .
Verificar a Instalação
# Check that the command is available
atlassian-mcp-server --help
# Or check the Python module
python -m atlassian_mcp_server --help
Configuração
Defina as seguintes variáveis de ambiente:
export ATLASSIAN_SITE_URL="https://your-domain.atlassian.net"
export ATLASSIAN_CLIENT_ID="your-oauth-client-id"
export ATLASSIAN_CLIENT_SECRET="your-oauth-client-secret"
Configuração Opcional
Seleção de Módulos: Controle quais módulos são carregados (padrão: todos os módulos habilitados):
export ATLASSIAN_MODULES="jira,confluence,service_desk" # Enable specific modules
export ATLASSIAN_MODULES="jira,confluence" # Enable only Jira and Confluence
export ATLASSIAN_MODULES="jira" # Enable only Jira
Módulos disponíveis:
jira- Gerenciamento de issues do Jira e operações de projetosconfluence- Operações de páginas e espaços do Confluenceservice_desk- Operações de Gerenciamento de Serviços e CMDB de Ativos
Observação: Desabilitar módulos não utilizados reduz o uso de memória e melhora o tempo de inicialização.
Uso
# Start the MCP server
python -m atlassian_mcp_server
# Or run directly
python src/atlassian_mcp_server/server.py
Configuração do Cliente MCP
Observação: Todos os exemplos de configuração abaixo mostram as variáveis de ambiente necessárias. Você pode opcionalmente adicionar "ATLASSIAN_MODULES": "jira,confluence,service_desk" a qualquer seção env para controlar quais módulos são carregados.
Claude Desktop
Adicione ao arquivo de configuração do Claude Desktop:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"atlassian": {
"command": "atlassian-mcp-server",
"env": {
"ATLASSIAN_SITE_URL": "https://your-domain.atlassian.net",
"ATLASSIAN_CLIENT_ID": "your-oauth-client-id",
"ATLASSIAN_CLIENT_SECRET": "your-oauth-client-secret"
}
}
}
}
Amazon Q Developer CLI
Crie um arquivo de configuração do agente:
Arquivo: ~/.aws/amazonq/cli-agents/atlassian.json
{
"$schema": "https://raw.githubusercontent.com/aws/amazon-q-developer-cli/refs/heads/main/schemas/agent-v1.json",
"name": "atlassian",
"description": "Atlassian Jira and Confluence integration agent",
"prompt": "You are an AI assistant with access to Atlassian Jira and Confluence. Help users manage issues, search content, and document their work.",
"mcpServers": {
"atlassian-mcp-server": {
"command": "atlassian-mcp-server",
"args": [],
"env": {
"ATLASSIAN_SITE_URL": "https://your-domain.atlassian.net",
"ATLASSIAN_CLIENT_ID": "your-oauth-client-id",
"ATLASSIAN_CLIENT_SECRET": "your-oauth-client-secret"
},
"autoApprove": ["*"],
"disabled": false,
"timeout": 60000,
"initTimeout": 120000
}
},
"tools": [
"@atlassian-mcp-server/*"
],
"allowedTools": [
"@atlassian-mcp-server/*"
]
}
Em seguida, use: q chat --agent atlassian
VS Code com Continue
Adicione à sua configuração do Continue:
Arquivo: ~/.continue/config.json
{
"models": [...],
"mcpServers": {
"atlassian": {
"command": "atlassian-mcp-server",
"env": {
"ATLASSIAN_SITE_URL": "https://your-domain.atlassian.net",
"ATLASSIAN_CLIENT_ID": "your-oauth-client-id",
"ATLASSIAN_CLIENT_SECRET": "your-oauth-client-secret"
}
}
}
}
VS Code com GitHub Copilot Chat
Para GitHub Copilot Chat com suporte a MCP, adicione às configurações do workspace:
Arquivo: .vscode/settings.json
{
"github.copilot.chat.mcp.servers": {
"atlassian": {
"command": "atlassian-mcp-server",
"env": {
"ATLASSIAN_SITE_URL": "https://your-domain.atlassian.net",
"ATLASSIAN_CLIENT_ID": "your-oauth-client-id",
"ATLASSIAN_CLIENT_SECRET": "your-oauth-client-secret"
}
}
}
}
Cline (Extensão do VS Code)
Adicione à configuração MCP do Cline:
Arquivo: ~/.cline/mcp_servers.json
{
"atlassian": {
"command": "atlassian-mcp-server",
"env": {
"ATLASSIAN_SITE_URL": "https://your-domain.atlassian.net",
"ATLASSIAN_CLIENT_ID": "your-oauth-client-id",
"ATLASSIAN_CLIENT_SECRET": "your-oauth-client-secret"
}
}
}
Configuração de Variáveis de Ambiente
Por segurança, defina variáveis de ambiente em vez de codificá-las nos arquivos de configuração:
# Add to your shell profile (.bashrc, .zshrc, etc.)
export ATLASSIAN_SITE_URL="https://your-domain.atlassian.net"
export ATLASSIAN_CLIENT_ID="your-oauth-client-id"
export ATLASSIAN_CLIENT_SECRET="your-oauth-client-secret"
Em seguida, use nas configurações:
{
"env": {
"ATLASSIAN_SITE_URL": "${ATLASSIAN_SITE_URL}",
"ATLASSIAN_CLIENT_ID": "${ATLASSIAN_CLIENT_ID}",
"ATLASSIAN_CLIENT_SECRET": "${ATLASSIAN_CLIENT_SECRET}"
}
}
Fluxo de Autenticação
- Inicie o servidor MCP
- Use a ferramenta
authenticate_atlassianpara iniciar o fluxo OAuth - O navegador abre automaticamente no login da Atlassian
- Após a autorização, a autenticação é concluída automaticamente
- As credenciais são salvas localmente para uso futuro
Ferramentas Disponíveis
Autenticação
authenticate_atlassian()- Iniciar fluxo de autenticação OAuth integrado
Operações do Jira
jira_search(jql, max_results=50)- Pesquisar issues com JQLjira_get_issue(issue_key)- Obter detalhes de uma issue específicajira_create_issue(project_key, summary, description, issue_type="Task")- Criar nova issuejira_update_issue(issue_key, summary=None, description=None)- Atualizar issue existentejira_add_comment(issue_key, comment)- Adicionar comentário a uma issue
Operações do Confluence
Gerenciamento Principal de Conteúdo
confluence_search(query, limit=10)- Pesquisar conteúdo no Confluenceconfluence_get_page(page_id)- Obter conteúdo de uma página específicaconfluence_create_page(space_key, title, content, parent_id=None)- Criar nova página no Confluenceconfluence_update_page(page_id, title, content, version)- Atualizar página existente no Confluence
Gerenciamento de Espaços
confluence_list_spaces(limit=25, space_type=None, status="current")- Listar espaços disponíveisconfluence_get_space(space_id, include_icon=False)- Obter informações detalhadas de um espaçoconfluence_get_space_pages(space_id, limit=25, status="current")- Obter páginas de um espaço
Pesquisa e Descoberta Aprimoradas
confluence_search_content(query, limit=25, space_id=None)- Pesquisa avançada de conteúdoconfluence_get_page_children(page_id, limit=25)- Obter páginas filhas
Comentários e Colaboração
confluence_get_page_comments(page_id, limit=25)- Obter comentários de uma páginaconfluence_add_comment(page_id, comment, parent_comment_id=None)- Adicionar comentário a uma páginaconfluence_get_comment(comment_id)- Obter detalhes de um comentário específico
Rótulos e Organização
confluence_get_page_labels(page_id, limit=25)- Obter rótulos de uma páginaconfluence_search_by_label(label_id, limit=25)- Encontrar páginas com um rótulo específicoconfluence_list_labels(limit=25, prefix=None)- Listar todos os rótulos disponíveis
Anexos
confluence_get_page_attachments(page_id, limit=25)- Obter anexos de uma páginaconfluence_get_attachment(attachment_id)- Obter detalhes de um anexo
Histórico de Versões
confluence_get_page_versions(page_id, limit=25)- Obter histórico de versões de uma páginaconfluence_get_page_version(page_id, version_number)- Obter uma versão específica de uma página
Operações de Gerenciamento de Serviços
Ferramentas de Descoberta (Essenciais para Agentes de IA)
servicedesk_check_availability()- Verificar se o Jira Service Management está configuradoservicedesk_list_service_desks(limit=50)- Listar service desks disponíveis para criar solicitaçõesservicedesk_get_service_desk(service_desk_id)- Obter informações detalhadas do service deskservicedesk_list_request_types(service_desk_id=None, limit=50)- Listar tipos de solicitação disponíveisservicedesk_get_request_type(service_desk_id, request_type_id)- Obter informações detalhadas do tipo de solicitaçãoservicedesk_get_request_type_fields(service_desk_id, request_type_id)- Obter campos obrigatórios/opcionais para o tipo de solicitação
Gerenciamento de Solicitações
servicedesk_get_requests(service_desk_id=None, limit=50)- Obter solicitações do service deskservicedesk_get_request(issue_key)- Obter detalhes de uma solicitação específica do service deskservicedesk_create_request(service_desk_id, request_type_id, summary, description)- Criar nova solicitação de serviçoservicedesk_add_comment(issue_key, comment, public=True)- Adicionar comentário a uma solicitação de serviçoservicedesk_get_request_comments(issue_key, limit=50)- Obter comentários de uma solicitação de serviçoservicedesk_get_request_status(issue_key)- Obter status de uma solicitação de serviçoservicedesk_get_request_transitions(issue_key)- Obter transições de status disponíveis para a solicitaçãoservicedesk_transition_request(issue_key, transition_id, comment=None)- Transicionar solicitação para um novo status
Gerenciamento de Aprovações e Participantes
servicedesk_get_approvals(issue_key)- Obter informações de aprovação da solicitaçãoservicedesk_approve_request(issue_key, approval_id, decision)- Aprovar ou recusar aprovação de solicitaçãoservicedesk_get_participants(issue_key)- Obter participantes da solicitaçãoservicedesk_add_participants(issue_key, usernames)- Adicionar participantes à solicitação (com prompts de confirmação)servicedesk_manage_notifications(issue_key, subscribe)- Assinar/cancelar assinatura de notificações da solicitação
Solução de Problemas
Problemas de Autenticação
- Certifique-se de que a URI de redirecionamento corresponda exatamente:
http://localhost:8080/callback - Verifique se todos os escopos necessários estão configurados no Console de Desenvolvedor Atlassian
- Verifique se as variáveis de ambiente estão definidas corretamente
Problemas de Permissão
- Certifique-se de que seu usuário tenha acesso apropriado ao Jira e ao Confluence
- Verifique se o app OAuth tem todos os escopos necessários habilitados
- Verifique se o usuário está nos grupos corretos (por exemplo, confluence-users)
Erros de API
- Verifique se a URL do seu site Atlassian está correta
- Certifique-se de ter permissões adequadas para os recursos que está acessando
- Execute os scripts de teste para verificar a funcionalidade
Requisitos de Escopos
Este servidor MCP usa escopos mínimos necessários seguindo o princípio do menor privilégio:
Escopos Essenciais (16 no total)
- Jira:
read:jira-work,read:jira-user,write:jira-work - Confluence:
read:page:confluence,read:space:confluence,write:page:confluence,read:comment:confluence,write:comment:confluence,read:label:confluence,read:attachment:confluence - Gerenciamento de Serviços:
read:servicedesk-request,write:servicedesk-request,manage:servicedesk-customer,read:knowledgebase:jira-service-management - Principais:
read:me,offline_access
Escopos Opcionais (adicione apenas se necessário)
- Escopos
manage:*- Apenas para operações administrativas
Importante: Escopos Granulares para API v2
Este servidor MCP usa escopos granulares para operações do Confluence para garantir compatibilidade com os endpoints da API v2 do Confluence. A API v2 oferece melhor desempenho e preparação para o futuro em comparação com a API REST v1 descontinuada.
Escopos Granulares vs. Clássicos:
- Granular (recomendado):
read:page:confluence,write:page:confluence- Funciona com a API v2 - Clássico (descontinuado):
read:confluence-content.all,write:confluence-content- Funciona apenas com a API v1
Se você configurou escopos clássicos anteriormente, precisará atualizar seu app OAuth para usar escopos granulares e reautenticar para obter tokens novos.
Segurança da Cadeia de Suprimentos
Este projeto implementa medidas abrangentes de segurança na cadeia de suprimentos:
Gerenciamento de Dependências
- Versões Fixadas: Todas as dependências usam versões exatas fixadas para evitar atualizações inesperadas
- Verificação de Segurança: Verificação automatizada de vulnerabilidades com Safety e pip-audit
- Rastreamento de Dependências: Documentação completa de dependências em
docs/DEPENDENCIES.md - Atualizações Regulares: Verificações de segurança automatizadas semanais via GitHub Actions
Ferramentas de Segurança
# Generate dependency report
python3 scripts/generate_dependency_report.py
# Check for vulnerabilities
pip3 install safety pip-audit
safety check
pip-audit
# Update dependencies safely
python3 scripts/update_dependencies.py
Arquivos
requirements.txt- Dependências de produção fixadasdocs/DEPENDENCIES.md- Relatório de dependências legível por humanosdocs/dependency-report.json- Dados de dependências legíveis por máquinaSECURITY.md- Política de segurança e resposta a vulnerabilidades.github/workflows/dependency-security.yml- Verificações de segurança automatizadas
Desenvolvimento
O servidor é construído usando:
- FastMCP: Framework moderno de servidor MCP
- httpx: Cliente HTTP assíncrono
- Pydantic: Validação de dados e gerenciamento de configurações
Licença
Licença MIT - consulte o arquivo LICENSE para detalhes.