LabscoMCP early access ↗
sibillebMCP SERVER

AAP Enterprise MCP Server

Four MCP servers for the Red Hat automation stack — run and monitor AAP jobs, manage Event-Driven Ansible, lint playbooks, search Galaxy, and read Red Hat documentation from validated domains.

by sibilleb ↗Cloud Resources & Infrastructure as CodeCommunity

LABSCO SUMMARY

Domain validation on the documentation server is a real security property, not a feature bullet.

A documentation tool that fetches whatever URL a model produces is a prompt-injection surface; restricting it to 50+ official Red Hat domains removes that class of problem, and the PDF-first strategy is what makes Red Hat's JavaScript-rendered pages readable at all. The four-server split is the other decision worth using: give an assistant only the lint and documentation servers and it can review automation without being able to run any of it.

What it is

A four-server suite covering Ansible Automation Platform, Event-Driven Ansible, ansible-lint and Red Hat's official documentation. Splitting them lets you run only what you need: the AAP server handles inventories, jobs, templates and projects plus Galaxy content discovery; the EDA server manages activations and rulebooks; the lint server validates playbooks, files and whole projects against quality profiles; and the documentation server fetches Red Hat content with domain validation, so only official Red Hat sources are reachable.

What you get

  • AAP inventories and hosts listed, created and populated — list_inventories, get_inventory, create_inventory, list_hosts, add_host_to_inventory
  • Jobs run from templates and followed to completion, with ad-hoc commands as the escape hatch — run_job, job_status, job_logs, list_job_templates, create_job_template, run_adhoc_command
  • Projects created, listed and synced from source control, with the update job's status and logs — create_project, list_projects, get_project, update_project, list_project_updates, get_project_update, get_project_update_logs
  • Event-Driven Ansible activations enabled, disabled, restarted and inspected, with rulebooks and decision environments — list_activations, get_activation, create_activation, enable_activation, disable_activation, restart_activation, list_rulebooks, get_rulebook, list_decision_environments
  • Ansible content linted at every granularity — pasted playbook text, a file on disk, a role directory, or a whole project — with syntax-only checks for fast feedback and context-aware best-practice checking for dev, staging or production — lint_playbook, lint_file, lint_role, validate_syntax, check_best_practices, analyze_project, list_rules, list_tags, get_ansible_lint_version
  • Galaxy collections and roles searched, with details and use-case-driven suggestions that take your existing AAP inventories into account — search_galaxy_collections, search_galaxy_roles, get_collection_details, get_role_details, suggest_ansible_content
  • Red Hat documentation read and searched across 50+ validated official domains, with a PDF-first strategy that works around Red Hat's JavaScript rendering, and product and guide listings — read_documentation, list_products, search_documentation, search_documentation_enhanced, search_with_web_guidance, smart_documentation_finder, get_product_guides, recommend_content

Requirements

An Ansible Automation Platform instance and a valid AAP API token with Write scope — create it under User Settings > Tokens, or through the tokens API endpoint. Python 3.11 or higher and uv sync (or pip install -e .) from a clone. AAP_TOKEN and AAP_URL are required for the AAP server, EDA_TOKEN and EDA_URL for the EDA server; the EDA token can be the same one. REDHAT_USERNAME and REDHAT_PASSWORD are optional and only needed for Red Hat Customer Portal content behind a subscription. Each of the four servers is registered separately in the client, so you can enable only the ones you need.

Setup effort

Build from source — git clone https://github.com/sibilleb/AAP-Enterprise-MCP-Server.git