aap-mcp
Gerenciamento do Ansible Automation Platform 2.4 mcp
Documentação
Servidor MCP AAP
Um servidor Model Context Protocol (MCP) para Ansible Automation Platform (AAP) 2.4. Fornece ferramentas para gerenciar jobs, templates, workflows, inventário e infraestrutura por meio do Claude ou outros clientes MCP.
Início Rápido
Pré-requisitos
- Node.js ≥ 18.0.0
- npm ou yarn
- Acesso a uma instância AAP
Instalação
git clone <repo-url>
cd aap-mcp
npm install
Configuração
Opção 1: Configuração Interativa
npm run setup-keychain
Esta configuração interativa orienta você por:
- Escolha do método de autenticação (token de API ou nome de usuário/senha)
- Inserção de credenciais (com entrada de senha oculta)
- Seleção do método de armazenamento (macOS Keychain, arquivo .env ou variáveis de ambiente)
Note: Interactive should be all you need to get started unless you care to follow one of the other paths
Opção 2: Variáveis de Ambiente (Recomendado para CI/CD)
export AAP_BASE_URL="https://aap.example.com"
export AAP_TOKEN="your-api-token"
Opção 3: Arquivo .env (Somente para Desenvolvimento)
Crie ~/.config/aap-mcp/.env.aap:
AAP_BASE_URL=https://aap.example.com
AAP_TOKEN=your-api-token
AAP_USERNAME=admin
Em seguida:
npm start
Configuração
Variáveis de Ambiente Obrigatórias
AAP_BASE_URL- URL da instância AAP (ex.:https://aap.example.com)- Uma das seguintes opções:
AAP_TOKEN- Token de autenticação da API, OUAAP_USERNAMEeAAP_PASSWORD- Autenticação por nome de usuário e senha
Variáveis de Ambiente Opcionais
AAP_CONFIG_DIR- Diretório de configuração (padrão:~/.config/aap-mcp)AAP_DATA_DIR- Diretório de dados (padrão:~/.data/aap-mcp)
Personalização do Keychain (macOS)
AAP_KEYCHAIN_SERVICE- Nome do serviço (padrão:aap-mcp)AAP_KEYCHAIN_TOKEN_ACCOUNT- Nome da conta do token (padrão:token)AAP_KEYCHAIN_BASE_URL_ACCOUNT- Nome da conta da URL (padrão:base_url)AAP_KEYCHAIN_USERNAME_ACCOUNT- Nome da conta do usuário (padrão:username)AAP_KEYCHAIN_PASSWORD_ACCOUNT- Nome da conta da senha (padrão:password)
Desenvolvimento
Build
npm run build
Servidor de Desenvolvimento
npm run dev
Testes
npm test
npm run test:ui
Lint
npm run lint
Arquitetura
Componentes Principais
- Client (
src/client/): Cliente HTTP para comunicação com a API AAP - Tools (
src/tools/): Implementações de ferramentas MCP organizadas por domíniosystem.ts- Saúde e métricas do sistemajobs.ts- Execução e monitoramento de jobstemplates.ts- Templates de jobs e workflowsworkflows.ts- Gerenciamento de workflowsinventory.ts- Gerenciamento de inventário e hostsprojects.ts- Gerenciamento de projetosinfra.ts- Ferramentas de infraestrutura
- Credentials (
src/credentials.ts): Gerenciamento seguro de credenciais com carregamento baseado em prioridade - Paths (
src/paths.ts): Gerenciamento de diretórios de configuração e dados
Prioridade de Carregamento de Credenciais
- Variáveis de ambiente (prioridade mais alta)
- macOS Keychain (se disponível)
- Arquivo
.env - Padrão ou erro (prioridade mais baixa)
Referência de Ferramentas
Ferramentas do Sistema
- get_system_info - Recuperar informações do sistema AAP
- get_platform_metrics - Obter estatísticas de capacidade e jobs da plataforma
Ferramentas de Jobs
- list_jobs - Listar jobs de automação com filtros
- get_job - Obter detalhes do job
- run_job - Executar um template de job
- get_job_output - Recuperar logs de execução do job
Ferramentas de Templates
- list_job_templates - Listar templates de jobs disponíveis
- list_workflow_templates - Listar templates de jobs de workflow
Ferramentas de Workflow
- list_workflow_jobs - Listar execuções de workflows
- get_workflow_job - Obter detalhes da execução do workflow
Ferramentas de Inventário
- list_hosts - Listar hosts do inventário
- list_groups - Listar grupos do inventário
Ferramentas de Projetos
- list_projects - Listar projetos
- get_project - Obter detalhes do projeto
Ferramentas de Infraestrutura
- list_nodes - Listar nós de controle e execução
- get_node_details - Obter informações do nó
Solução de Problemas
"AAP_BASE_URL é obrigatório"
Credenciais não encontradas. Execute:
npm run setup-keychain
Ou defina as variáveis de ambiente:
export AAP_BASE_URL="https://aap.example.com"
export AAP_TOKEN="your-token"
"Falha ao inicializar o diretório de configuração"
Garanta que o caminho do diretório de configuração tenha permissão de escrita, ou especifique um caminho personalizado:
export AAP_CONFIG_DIR="/path/to/config"
npm start
"Falha na verificação de conexão"
Verifique se a instância AAP está acessível:
curl https://aap.example.com/api/v2/ping/
Licença
Consulte o arquivo LICENSE.
Documentação
- Configuração de Credenciais - Guia detalhado de gerenciamento de credenciais
- Resumo da Implementação - Arquitetura e decisões de design
- Avaliação da Estrutura - Análise da estrutura do projeto e recomendações
Suporte
Para problemas e solicitações de recursos, abra uma issue no GitHub.