MCP Server for Ansible Automation Platform (AAP), Event-Driven Ansible (EDA), and Red Hat Documentation
AAP Enterprise MCP Server has 40 tools with broad coverage of Ansible Automation Platform, Event-Driven Ansible, and Red Hat documentation. However, quality is inconsistent. Strengths: all 40 tools have descriptions and clear verb-prefixed names (lint_*, list_*, get_*, create_*, delete_*, etc.); parameter schemas are visible for most tools with type definitions and descriptions. Critical weaknesses: (1) parameter descriptions are generic and often lack constraints/formats ('Inventory description' is provided no guidance on length, format, or examples); (2) output schemas are completely undocumented, no tool states what fields it returns; (3) error handling is absent from descriptions, agents don't know how to recover from common failures; (4) many tools accept 'object' or 'array' with generic 'description' field, offering no guidance on structure (e.g., payload in create_activation is {'type':'object','description':'Activation payload'} with zero clarity on required/optional fields); (5) no tool descriptions mention prerequisites, side effects, or when to use one tool vs. a similar one; (6) security considerations (permissions, scope) are completely absent from tool descriptions; (7) list tools (list_inventories, list_jobs, etc.) lack pagination parameters, no indication they support limit/offset/cursor, risking context window exhaustion with large result sets.
Check Ansible content against best practices for specific context.
Create a new activation.
Create a new decision environment.
Create an inventory in Ansible Automation Platform.
Create a dynamic inventory source. Claude will ask for the source type and credential before proceeding.
Create a new job template in Ansible Automation Platform.
No output schemas documented for any tool. Agents do not know what fields to expect in responses, forcing them to reason about result structure and blocking downstream tool composition.
List tools (list_inventories, list_jobs, list_activations, list_rulebooks, list_event_streams, etc.) accept no pagination parameters (limit, offset, cursor, page_size). Large result sets risk exhausting context windows. Agents cannot control result cardinality.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 52 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 37 | - | v1 |
Create a new project in Ansible Automation Platform.
Delete an activation.
Delete an inventory from Ansible Automation Platform.
Delete an inventory source.
Disable an activation.
Enable an activation.
Fetch Red Hat documentation content handling rendering issues.
Get details of a specific activation.
Get details of a specific inventory by ID.
Get details of a specific inventory source.
Retrieve details of a specific job template.
Retrieve details of a specific rulebook.
Retrieve logs for a job.
Check the status of a job by ID.
Lint a specific Ansible file and return issues.
Lint Ansible playbook content and return issues with suggestions.
Comprehensive linting of an Ansible role directory.
List all activations in Event-Driven Ansible.
List all decision environments.
List all event streams.
List all inventories in Ansible Automation Platform.
List all inventory sources in Ansible Automation Platform.
List all job templates available in Ansible Automation Platform.
List all jobs available in Ansible Automation Platform.
List all jobs executed in the specified number of hours.
List all rulebooks in EDA.
List available ansible-lint rules, optionally filtered by tags.
List all available tags for ansible-lint rules.
Restart an activation.
Run a job template by ID, optionally with extra_vars.
Generate optimized Red Hat search queries for use with WebSearch MCP tool.
Manually trigger a sync for an inventory source.
Update an existing inventory source.
Quick syntax validation of Ansible content.
'payload' and 'update_data' parameters are typed as bare objects with only a generic description ('Activation payload', 'Update data'). No guidance on required fields, structure, or valid keys. Agents will struggle to construct valid payloads.
Tool descriptions lack error recovery guidance. No tool states what errors can occur, how to recover from them, or what the LLM should do next (retry, ask user, choose alternative tool).
Destructive tools (delete_inventory, delete_activation, delete_inventory_source) have no confirmation or dry-run support mentioned. Agents can trigger irreversible deletions without any guard rails.
Tool descriptions are minimal (many under 50 chars after the verb). They lack context on WHEN to use the tool, prerequisites, side effects, and distinctions vs. similar tools (e.g., list_jobs vs list_recent_jobs, get_job_template vs list_job_templates).
No parameter descriptions mention allowed value ranges, formats, or constraints. E.g., 'hours' in list_recent_jobs has no stated range (1 - 365? 1 - 8760?), 'profile' in lint_playbook lists options but no guidance on which to use when.
Tool descriptions do not declare required permissions or scopes (e.g., 'run_job requires execute:job_template scope'). Agents and operators cannot reason about least-privilege configuration.