aap-mcp
Plataforma de automatización Ansible 2.4 gestión mcp
Documentación
Servidor AAP MCP
Un servidor de Model Context Protocol (MCP) para Ansible Automation Platform (AAP) 2.4. Proporciona herramientas para gestionar trabajos, plantillas, flujos de trabajo, inventario e infraestructura a través de Claude u otros clientes MCP.
Inicio Rápido
Requisitos Previos
- Node.js ≥ 18.0.0
- npm o yarn
- Acceso a una instancia de AAP
Instalación
git clone <repo-url>
cd aap-mcp
npm install
Configuración
Opción 1: Configuración Interactiva
npm run setup-keychain
Esta configuración interactiva te guía a través de:
- Elegir el método de autenticación (token de API o nombre de usuario/contraseña)
- Ingresar las credenciales (con entrada de contraseña oculta)
- Seleccionar el método de almacenamiento (Keychain de macOS, archivo .env o variables de entorno)
Note: Interactive should be all you need to get started unless you care to follow one of the other paths
Opción 2: Variables de Entorno (Recomendado para CI/CD)
export AAP_BASE_URL="https://aap.example.com"
export AAP_TOKEN="your-api-token"
Opción 3: Archivo .env (Solo para Desarrollo)
Crea ~/.config/aap-mcp/.env.aap:
AAP_BASE_URL=https://aap.example.com
AAP_TOKEN=your-api-token
AAP_USERNAME=admin
Luego:
npm start
Configuración
Variables de Entorno Requeridas
AAP_BASE_URL- URL de la instancia de AAP (ej.,https://aap.example.com)- Una de las siguientes:
AAP_TOKEN- Token de autenticación de API, OAAP_USERNAMEyAAP_PASSWORD- Autenticación con nombre de usuario y contraseña
Variables de Entorno Opcionales
AAP_CONFIG_DIR- Directorio de configuración (predeterminado:~/.config/aap-mcp)AAP_DATA_DIR- Directorio de datos (predeterminado:~/.data/aap-mcp)
Personalización del Keychain (macOS)
AAP_KEYCHAIN_SERVICE- Nombre del servicio (predeterminado:aap-mcp)AAP_KEYCHAIN_TOKEN_ACCOUNT- Nombre de la cuenta de token (predeterminado:token)AAP_KEYCHAIN_BASE_URL_ACCOUNT- Nombre de la cuenta de URL (predeterminado:base_url)AAP_KEYCHAIN_USERNAME_ACCOUNT- Nombre de la cuenta de usuario (predeterminado:username)AAP_KEYCHAIN_PASSWORD_ACCOUNT- Nombre de la cuenta de contraseña (predeterminado:password)
Desarrollo
Compilación
npm run build
Servidor de Desarrollo
npm run dev
Pruebas
npm test
npm run test:ui
Linting
npm run lint
Arquitectura
Componentes Principales
- Cliente (
src/client/): Cliente HTTP para la comunicación con la API de AAP - Herramientas (
src/tools/): Implementaciones de herramientas MCP organizadas por dominiosystem.ts- Salud del sistema y métricasjobs.ts- Ejecución y monitoreo de trabajostemplates.ts- Plantillas de trabajos y flujos de trabajoworkflows.ts- Gestión de flujos de trabajoinventory.ts- Gestión de inventario y hostsprojects.ts- Gestión de proyectosinfra.ts- Herramientas de infraestructura
- Credenciales (
src/credentials.ts): Gestión segura de credenciales con carga basada en prioridad - Rutas (
src/paths.ts): Gestión de directorios de configuración y datos
Prioridad de Carga de Credenciales
- Variables de entorno (prioridad más alta)
- Keychain de macOS (si está disponible)
- Archivo
.env - Predeterminado o error (prioridad más baja)
Referencia de Herramientas
Herramientas del Sistema
- get_system_info - Recuperar información del sistema AAP
- get_platform_metrics - Obtener estadísticas de capacidad y trabajos de la plataforma
Herramientas de Trabajos
- list_jobs - Listar trabajos de automatización con filtrado
- get_job - Obtener detalles del trabajo
- run_job - Lanzar una plantilla de trabajo
- get_job_output - Recuperar registros de ejecución del trabajo
Herramientas de Plantillas
- list_job_templates - Listar plantillas de trabajos disponibles
- list_workflow_templates - Listar plantillas de trabajos de flujo de trabajo
Herramientas de Flujos de Trabajo
- list_workflow_jobs - Listar ejecuciones de flujos de trabajo
- get_workflow_job - Obtener detalles de ejecución del flujo de trabajo
Herramientas de Inventario
- list_hosts - Listar hosts del inventario
- list_groups - Listar grupos del inventario
Herramientas de Proyectos
- list_projects - Listar proyectos
- get_project - Obtener detalles del proyecto
Herramientas de Infraestructura
- list_nodes - Listar nodos de control y ejecución
- get_node_details - Obtener información del nodo
Solución de Problemas
"AAP_BASE_URL es requerido"
Credenciales no encontradas. Ejecuta:
npm run setup-keychain
O establece las variables de entorno:
export AAP_BASE_URL="https://aap.example.com"
export AAP_TOKEN="your-token"
"No se pudo inicializar el directorio de configuración"
Asegúrate de que la ruta del directorio de configuración sea escribible, o especifica una ruta personalizada:
export AAP_CONFIG_DIR="/path/to/config"
npm start
"La verificación de conexión falló"
Verifica que la instancia de AAP sea accesible:
curl https://aap.example.com/api/v2/ping/
Licencia
Consulta el archivo LICENCIA.
Documentación
- Configuración de Credenciales - Guía detallada de gestión de credenciales
- Resumen de Implementación - Arquitectura y decisiones de diseño
- Evaluación de Estructura - Análisis de la estructura del proyecto y recomendaciones
Soporte
Para problemas y solicitudes de funciones, abre un issue en GitHub.