MCP server
by Knuckles-Team
Empower automation using Ansible Tower MCP Server—AI-ready, Docker support, and seamless orchestration for advanced work
Provides an AI-ready interface to Ansible Tower/AWX for managing automation resources like inventories, job templates, projects, and workflows. Enables programmatic control of Ansible Tower through a standardized API.
Ansible is a community-built MCP server published by Knuckles-Team that provides AI assistants with tools and capabilities via the Model Context Protocol. Empower automation using Ansible Tower MCP Server—AI-ready, Docker support, and seamless orchestration for advanced work It is categorized under developer tools.
You can install Ansible in your AI client of choice. Use the install panel on this page to get one-click setup for Cursor, Claude Desktop, VS Code, and other MCP-compatible clients. This server runs locally on your machine via the stdio transport.
MIT
Ansible is released under the MIT license. This is a permissive open-source license, meaning you can freely use, modify, and distribute the software.
Add new capabilities to Claude beyond text generation
Example
Access external data sources, execute code, interact with tools and services
Transform Claude from chatbot to action-taking agent
Provide Claude with access to relevant context and data
Example
Load project documentation, access knowledge bases, query databases
Get more accurate, context-aware responses
Automate multi-step workflows combining AI and external tools
Example
Research → Summarize → Create document → Send notification
Complete complex tasks end-to-end without manual steps
Share your MCP server with the developer community
Useful MCP listing: Ansible is the kind of server we cite when onboarding engineers to host + tool permissions.
According to our notes, Ansible benefits from clear Model Context Protocol framing — fewer ambiguous “AI plugin” claims.
We wired Ansible into a staging workspace; the listing’s GitHub and npm pointers saved time versus hunting across READMEs.
Useful MCP listing: Ansible is the kind of server we cite when onboarding engineers to host + tool permissions.
According to our notes, Ansible benefits from clear Model Context Protocol framing — fewer ambiguous “AI plugin” claims.
Ansible is a well-scoped MCP server in the explainx.ai directory — install snippets and categories matched our Claude Code setup.
We wired Ansible into a staging workspace; the listing’s GitHub and npm pointers saved time versus hunting across READMEs.
We evaluated Ansible against two servers with overlapping tools; this profile had the clearer scope statement.
We wired Ansible into a staging workspace; the listing’s GitHub and npm pointers saved time versus hunting across READMEs.
Ansible is a well-scoped MCP server in the explainx.ai directory — install snippets and categories matched our Claude Code setup.
showing 1-10 of 32
Version: 1.3.32
The Ansible Tower MCP Server provides a Model Context Protocol (MCP) interface to interact with the Ansible Tower (AWX) API, enabling automation and management of Ansible Tower resources such as inventories, hosts, groups, job templates, projects, credentials, organizations, teams, users, ad hoc commands, workflow templates, workflow jobs, schedules, and system information. This server is designed to integrate seamlessly with AI-driven workflows and can be deployed as a standalone service or used programmatically.
This repository is actively maintained - This is a fork of a37ai/ansible-tower-mcp, which had not been updated in 6 months.
Contributions are welcome!
The ansible-tower-mcp package exposes the following MCP tools, organized by category:
list_inventories(limit, offset): List all inventories.get_inventory(inventory_id): Get details of a specific inventory.create_inventory(name, organization_id, description): Create a new inventory.update_inventory(inventory_id, name, description): Update an existing inventory.delete_inventory(inventory_id): Delete an inventory.list_hosts(inventory_id, limit, offset): List hosts, optionally filtered by inventory.get_host(host_id): Get details of a specific host.create_host(name, inventory_id, variables, description): Create a new host.update_host(host_id, name, variables, description): Update an existing host.delete_host(host_id): Delete a host.list_groups(inventory_id, limit, offset): List groups in an inventory.get_group(group_id): Get details of a specific group.create_group(name, inventory_id, variables, description): Create a new group.update_group(group_id, name, variables, description): Update an existing group.delete_group(group_id): Delete a group.add_host_to_group(group_id, host_id): Add a host to a group.remove_host_from_group(group_id, host_id): Remove a host from a group.list_job_templates(limit, offset): List all job templates.get_job_template(template_id): Get details of a specific job template.create_job_template(name, inventory_id, project_id, playbook, credential_id, description, extra_vars): Create a new job template.update_job_template(template_id, name, inventory_id, playbook, description, extra_vars): Update an existing job template.delete_job_template(template_id): Delete a job template.launch_job(template_id, extra_vars): Launch a job from a template.list_jobs(status, limit, offset): List jobs, optionally filtered by status.get_job(job_id): Get details of a specific job.cancel_job(job_id): Cancel a running job.get_job_events(job_id, limit, offset): Get events for a job.get_job_stdout(job_id, format): Get the output of a job in specified format (txt, html, json, ansi).list_projects(limit, offset): List all projects.get_project(project_id): Get details of a specific project.create_project(name, organization_id, scm_type, scm_url, scm_branch, credential_id, description): Create a new project.update_project(project_id, name, scm_type, scm_url, scm_branch, description): Update an existing project.delete_project(project_id): Delete a project.sync_project(project_id): Sync a project with its SCM.list_credentials(limit, offset): List all credentials.get_credential(credential_id): Get details of a specific credential.list_credential_types(limit, offset): List all credential types.create_credential(name, credential_type_id, organization_id, inputs, description): Create a new credential.update_credential(credential_id, name, inputs, description): Update an existing credential.delete_credential(credential_id): Delete a credential.list_organizations(limit, offset): List all organizations.get_organization(organization_id): Get details of a specific organization.create_organization(name, description): Create a new organization.update_organization(organization_id, name, description): Update an existing organization.delete_organization(organization_id): Delete an organization.list_teams(organization_id, limit, offset): List teams, optionally filtered by organization.get_team(team_id): Get details of a specific team.create_team(name, organization_id, description): Create a new team.update_team(team_id, name, description): Update an existing team.delete_team(team_id): Delete a team.list_users(limit, offset): List all users.get_user(user_id): Get details of a specific user.create_user(username, password, first_name, last_name, email, is_superuser, is_system_auditor): Create a new user.update_user(user_id, username, password, first_name, last_name, email, is_superuser, is_system_auditor): Update an existing user.delete_user(user_id): Delete a user.run_ad_hoc_command(inventory_id, credential_id, module_name, module_args, limit, verbosity): Run an ad hoc command.get_ad_hoc_command(command_id): Get details of an ad hoc command.cancel_ad_hoc_command(command_id): Cancel an ad hoc command.list_workflow_templates(limit, offset): List all workflow templates.get_workflow_template(template_id): Get details of a specific workflow template.launch_workflow(template_id, extra_vars): Launch a workflow from a template.list_workflow_jobs(status, limit, offset): List workflow jobs, optionally filtered by status.get_workflow_job(job_id): Get details of a specific workflow job.cancel_workflow_job(job_id): Cancel a running workflow job.list_schedules(unified_job_template_id, limit, offset): List schedules, optionally filtered by job/workflow template.get_schedule(schedule_id): Get details of a specific schedule.create_schedule(name, unified_job_template_id, rrule, description, extra_data): Create a new schedule.update_schedule(schedule_id, name, rrule, description, extra_data): Update an existing schedule.delete_schedule(schedule_id): Delete a schedule.get_ansible_version(): Get the Ansible Tower version.get_dashboard_stats(): Get dashboard statistics.get_metrics(): Get system metrics.---
config:
layout: dagre
---
flowchart TB
subgraph subGraph0["Agent Capabilities"]
C["Agent"]
B["A2A Server - Uvicorn/FastAPI"]
D["MCP Tools"]
F["Agent Skills"]
end
C --> D & F
A["User Query"] --> B
B --> C
D --> E["Platform API"]
C:::agent
B:::server
A:::server
classDef server fill:#f9f,stroke:#333
classDef agent fill:#bbf,stroke:#333,stroke-width:2px
style B stroke:#000000,fill:#FFD600
style D stroke:#000000,fill:#BBDEFB
style F fill:#BBDEFB
style A fill:#C8E6C9
style subGraph0 fill:#FFF9C4
sequenceDiagram
participant User
participant Server as A2A Server
participant Agent as Agent
participant Skill as Agent Skills
participant MCP as MCP Tools
User->>Server: Send Query
Server->>Agent: Invoke Agent
Agent->>Skill: Analyze Skills Available
Skill->>Agent: Provide Guidance on Next
---
Prerequisites
Time Estimate
15-60 minutes depending on server complexity
Steps
Troubleshooting
✓ Do
✗ Don't
💡 Pro Tips
Architecture
Model Context Protocol standardizes how AI hosts (Claude, Cursor) communicate with external tools and data sources through server implementations.
Protocols
Compatibility
✓ Use when
Use when you need Claude to access external data, execute actions, or integrate with tools. Best for extending AI capabilities beyond conversation.
✗ Avoid when
Avoid when native integrations exist (use official APIs directly), for real-time critical systems, or when security/compliance requires zero external dependencies.