AAP EnterpriseBLOCK
MCP Server for Ansible Automation Platform (AAP) and Event-Driven Ansible (EDA)
Overview
From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.
A comprehensive Model Context Protocol (MCP) server suite for Red Hat's automation and infrastructure ecosystem, enabling AI assistants to interact with Ansible Automation Platform (AAP), Event-Driven Ansible (EDA), ansible-lint code quality tools, and Red Hat's official documentation with secure domain validation.
Features
Ansible Automation Platform (AAP) Integration
- Inventory Management: List, create, update inventories and manage hosts/groups
- Job Management: Run job templates, monitor job status, and retrieve logs
- Project Management: Create and manage SCM-based projects
- Template Management: Create and manage job templates
- Host Operations: Add/remove hosts, manage host variables and facts
- Ad-hoc Commands: Execute ansible commands directly on inventory hosts
Event-Driven Ansible (EDA) Integration
- Activation Management: List, create, enable/disable EDA activations
- Rulebook Management: Manage and query rulebooks
- Decision Environment Management: Manage decision environments
- Event Stream Monitoring: Monitor event streams
Ansible Galaxy Integration
- Collection Search: Search and discover Ansible collections by name, namespace, or keywords
- Role Search: Find community roles by keyword, author, or specific criteria
- Content Details: Get comprehensive information about collections and roles including versions, dependencies, and installation instructions
- Smart Suggestions: AI-powered content recommendations based on use case descriptions
- AAP Integration: Intelligent suggestions that consider existing AAP infrastructure and inventories
Ansible Lint Integration
- Playbook Validation: Real-time linting of Ansible playbook content with configurable quality profiles
- File Analysis: Comprehensive analysis of Ansible files, roles, and entire project structures
- Best Practice Enforcement: Automated checking against Ansible commun
7882657b46c0OBSERVED · 2026-10-08Connect
Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.
claude mcp add aap-enterprise-mcp-server --env AAP_TOKEN=${AAP_TOKEN} --env EDA_TOKEN=${EDA_TOKEN} -- uvx aap-enterprise-mcp-server{
"mcpServers": {
"aap-enterprise-mcp-server": {
"command": "uvx",
"args": [
"aap-enterprise-mcp-server"
],
"env": {
"AAP_TOKEN": "${AAP_TOKEN}",
"EDA_TOKEN": "${EDA_TOKEN}"
}
}
}
}Exposed tools (69)
43 read · 21 write · 5 destructive. Blast radius: 5 tools can delete or overwrite — an agent that can be talked into calling a tool can be talked into calling this one.
| Tool | Risk | Description |
|---|---|---|
add_host_to_group | write | Add a host to a group. |
add_host_to_inventory | write | Add a new host to an inventory with optional variables. |
analyze_project | read | |
check_best_practices | read | |
create_activation | write | Create a new activation. |
create_decision_environment | write | Create a new decision environment. |
create_group | write | Create a new group in an inventory. |
create_inventory | write | Create an inventory in Ansible Automation Platform. |
create_inventory_source | write | Create a dynamic inventory source. Claude will ask for the source type and credential before proceeding. |
create_job_template | write | Create a new job template in Ansible Automation Platform. |
create_project | write | Create a new project in Ansible Automation Platform. |
delete_activation | destructive | Delete an activation. |
delete_host | destructive | Delete a host from inventory. |
delete_inventory | destructive | Delete an inventory from Ansible Automation Platform. |
delete_inventory_source | destructive | Delete an inventory source. |
disable_activation | write | Disable an activation. |
enable_activation | write | Enable an activation. |
fetch_redhat_content | read | |
get_activation | read | Get details of a specific activation. |
get_adhoc_command_output | read | Get output/logs from an ad-hoc command. |
get_adhoc_command_status | read | Get status of an ad-hoc command. |
get_ansible_lint_version | read | Get the version of ansible-lint installed. |
get_collection_details | read | Get detailed information about a specific Ansible Galaxy collection. |
get_failed_hosts | read | Get list of hosts with active failures in an inventory. |
get_group_details | read | Get detailed information about a specific group. |
get_host_details | read | Get detailed information about a specific host including facts and variables. |
get_host_facts | read | Get gathered facts for a specific host. |
get_host_groups | read | Get all groups that a host belongs to. |
get_inventory | read | Get details of a specific inventory by ID. |
get_inventory_source | read | Get details of a specific inventory source. |
get_job_template | read | Retrieve details of a specific job template. |
get_project | read | Get details of a specific project by ID. |
get_project_update | write | Get status and details of a specific project update job. |
get_project_update_logs | write | Get logs from a project update job (SCM sync operation). |
get_role_details | read | Get detailed information about a specific Ansible Galaxy role. |
get_rulebook | read | Retrieve details of a specific rulebook. |
job_logs | read | Retrieve logs for a job. |
job_status | read | Check the status of a job by ID. |
lint_file | read | |
lint_playbook | read | |
lint_role | read | |
list_activations | read | List all activations in Event-Driven Ansible. |
list_decision_environments | read | List all decision environments. |
list_event_streams | read | List all event streams. |
list_groups | read | List all groups in a specific inventory. |
list_hosts | read | List all hosts in a specific inventory. |
list_inventories | read | List all inventories in Ansible Automation Platform. |
list_inventory_sources | read | List all inventory sources in Ansible Automation Platform. |
list_job_templates | read | List all job templates available in Ansible Automation Platform. |
list_jobs | read | List all jobs available in Ansible Automation Platform. |
list_project_updates | write | List all project update jobs (SCM sync operations). |
list_projects | read | List all projects in Ansible Automation Platform. |
list_recent_jobs | read | List all jobs executed in the last specified hours (default 24 hours). |
list_rulebooks | read | List all rulebooks in EDA. |
list_rules | read | |
list_tags | read | List all available tags for ansible-lint rules. |
remove_host_from_group | destructive | Remove a host from a group. |
restart_activation | write | Restart an activation. |
run_adhoc_command | write | Run an ad-hoc Ansible command against inventory hosts. |
run_job | write | Run a job template by ID, optionally with extra_vars. |
search_galaxy_collections | read | Search Ansible Galaxy collections by query terms, tags, or namespace. |
search_galaxy_roles | read | Search Ansible Galaxy roles by keyword, name, or author. |
search_redhat_content | read | |
suggest_ansible_content | read | Intelligently suggest Ansible collections and roles based on use case description. |
sync_inventory_source | write | Manually trigger a sync for an inventory source. |
update_host | write | Update host settings including variables, description, or enabled status. |
update_inventory_source | write | Update an existing inventory source. |
update_project | write | Trigger a project update (SCM sync) for a specific project. |
validate_syntax | read |
Trust audit
BLOCKgrade D · trust 69/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | FAIL |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | WARN |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- declared (1 observation(s))
- Network
- declared (8 observation(s))
- Shell
- none-observed
- Dependencies
- pinned
- Secrets in source
- none-found
Findings (4)
async with httpx.AsyncClient(verify=False) as client:
async with httpx.AsyncClient(verify=False) as client:
async with httpx.AsyncClient(timeout=timeout, verify=False) as client:
delete_activation, delete_host, delete_inventory, delete_inventory_source, remove_host_from_group
Gates applied: no_behavioural_pass.
7882657b46c0full audit observations/trust-audit/mcp-server/sibilleb__aap-enterprise.json · Report an issue / request a re-scanAudit history
Every audit this server has had. A grade with a past is a grade somebody is still checking.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-08 | 7882657b46c0 | BLOCK | D | 69 | first audit |
Questions
What is the AAP Enterprise MCP server?
MCP Server for Ansible Automation Platform (AAP) and Event-Driven Ansible (EDA)
What tools does AAP Enterprise expose?
69 in total: 43 read-only, 21 that write, and 5 that can delete or overwrite (delete_activation, delete_host, delete_inventory, delete_inventory_source, remove_host_from_group). Every one is listed on this page with its risk.
Is AAP Enterprise safe to connect to an agent?
No — not without reading the findings first. The audit graded it D (69/100) and found 3 critical or high issues in the source. Each one is listed on this page with the file and line it is on. Separately from the audit: 5 of its tools can destroy data, so scope the token you give it to what you actually need.
What credentials does AAP Enterprise need?
It reads AAP_TOKEN and EDA_TOKEN from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.
How does AAP Enterprise run?
It speaks stdio, so it runs as a local process your client starts. It is published on PyPI as aap-enterprise-mcp-server.
How current is this page?
The grade is for one exact copy of the source (7882657b46c0), read on 2026-10-08. The repository is watched and re-audited when it changes.