{"id":47409670,"url":"https://github.com/bsahane/mcp-ansible","last_synced_at":"2026-08-27T23:38:40.312Z","repository":{"id":316749431,"uuid":"1036544844","full_name":"bsahane/mcp-ansible","owner":"bsahane","description":"MCP Ansible Server","archived":false,"fork":false,"pushed_at":"2025-10-14T10:04:57.000Z","size":45,"stargazers_count":25,"open_issues_count":0,"forks_count":11,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-04T02:10:42.723Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bsahane.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-08-12T08:26:26.000Z","updated_at":"2026-03-10T08:11:15.000Z","dependencies_parsed_at":"2025-09-29T20:03:14.040Z","dependency_job_id":null,"html_url":"https://github.com/bsahane/mcp-ansible","commit_stats":null,"previous_names":["bsahane/mcp-ansible"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/bsahane/mcp-ansible","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bsahane%2Fmcp-ansible","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bsahane%2Fmcp-ansible/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bsahane%2Fmcp-ansible/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bsahane%2Fmcp-ansible/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bsahane","download_url":"https://codeload.github.com/bsahane/mcp-ansible/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bsahane%2Fmcp-ansible/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36947769,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-22T15:14:58.755Z","status":"online","status_checked_at":"2026-08-27T02:00:07.166Z","response_time":96,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-03-20T23:00:22.186Z","updated_at":"2026-08-27T23:38:39.883Z","avatar_url":"https://github.com/bsahane.png","language":"Python","funding_links":[],"categories":["Cloud \u0026 Devops Mcp Servers"],"sub_categories":[],"readme":"MCP Ansible Server\n\nAdvanced Ansible Model Context Protocol (MCP) server in Python exposing Ansible utilities for inventories, playbooks, roles, and project workflows.\n\nQuick start\n\n```bash\ngit clone https://github.com/bsahane/mcp-ansible.git\ncd mcp-ansible\n\n# Create and activate Python virtual environment\npython3 -m venv .venv\nsource .venv/bin/activate\n\n# Install dependencies via requirements.txt\npython -m pip install -U pip\npip install -r requirements.txt\n\n# (Optional) install the project package locally\npip install -e .\n\n# Run the MCP server\npython src/ansible_mcp/server.py\n```\n\nRequirements\n\n- Python 3.10+\n- macOS/Linux\n\nSetup\n\n```bash\ncd /Users/bsahane/Developer/cursor/mcp-ansible\npython3 -m venv .venv\nsource .venv/bin/activate\npython -m pip install -U pip\npip install \"mcp[cli]\u003e=1.2.0\" \"PyYAML\u003e=6.0.1\" \"ansible-core\u003e=2.16.0\"\npip install -e .\n```\n\nRun the server\n\n```bash\npython src/ansible_mcp/server.py\n```\n\nCursor config (`/Users/bsahane/.cursor/mcp.json`)\n\n```json\n{\n  \"mcpServers\": {\n    \"ansible-mcp\": {\n      \"command\": \"python\",\n      \"args\": [\n        \"/Users/bsahane/Developer/cursor/mcp-ansible/src/ansible_mcp/server.py\"\n      ],\n      \"env\": {\n        \"MCP_ANSIBLE_PROJECT_ROOT\": \"/Users/bsahane/GitLab/projectAIOPS/mcp-ansible-server\",\n        \"MCP_ANSIBLE_INVENTORY\": \"/Users/bsahane/GitLab/projectAIOPS/mcp-ansible-server/inventory/hosts.ini\",\n        \"MCP_ANSIBLE_PROJECT_NAME\": \"projectAIOPS\"\n      }\n    }\n  }\n}\n```\n\nClaude for Desktop config\n\nAdd to `~/Library/Application Support/Claude/claude_desktop_config.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"ansible-mcp\": {\n      \"command\": \"python\",\n      \"args\": [\n        \"/Users/bsahane/Developer/cursor/mcp-ansible/src/ansible_mcp/server.py\"\n      ],\n      \"env\": {\n        \"MCP_ANSIBLE_PROJECT_ROOT\": \"/Users/bsahane/GitLab/projectAIOPS/mcp-ansible-server\",\n        \"MCP_ANSIBLE_INVENTORY\": \"/Users/bsahane/GitLab/projectAIOPS/mcp-ansible-server/inventory/hosts.ini\",\n        \"MCP_ANSIBLE_PROJECT_NAME\": \"projectAIOPS\"\n      }\n    }\n  }\n}\n```\n\nTools (names)\n\n**Core Ansible Tools:**\n- create-playbook: Create playbooks from YAML strings or dicts\n- validate-playbook: Validate playbook syntax (ansible-playbook --syntax-check)\n- ansible-playbook: Execute playbooks\n- ansible-task: Run ad-hoc tasks (defaults to connection=local for localhost)\n- ansible-role: Execute roles via generated temporary playbook\n- create-role-structure: Scaffold role directory tree\n- ansible-inventory: List inventory hosts and groups\n- register-project: Register an Ansible project for easy reuse\n- list-projects: Show registered projects and default\n- project-playbooks: Discover playbooks under a project root\n- project-run-playbook: Run a playbook using a registered project's inventory/env\n\n**Local inventory suite (no AAP/AWX):**\n- inventory-parse: Parse inventories (ansible.cfg-aware), return hosts/groups/hostvars\n- inventory-graph: Show group/host graph\n- inventory-find-host: Show a host's groups and merged vars\n- ansible-ping: Ad-hoc ping module\n- ansible-gather-facts: Run setup and return parsed facts\n- validate-yaml: Validate YAML files with error locations\n- galaxy-install: Install roles/collections from requirements\n- project-bootstrap: Galaxy install + env inspection\n\n**Advanced Troubleshooting Suite:**\n\n*Foundation Tools:*\n- ansible-remote-command: Execute arbitrary shell commands with enhanced output parsing\n- ansible-fetch-logs: Fetch and analyze log files with pattern detection and correlation\n- ansible-service-manager: Manage services with status checking and log correlation\n\n*Intelligent Diagnostics:*\n- ansible-diagnose-host: Comprehensive health assessment with scoring and recommendations\n- ansible-capture-baseline: Capture system state snapshots for comparison\n- ansible-compare-states: Time-travel debugging with baseline comparisons\n\n*Automation \u0026 Self-Healing:*\n- ansible-auto-heal: Intelligent automated problem resolution with safety checks\n\n*Network \u0026 Security:*\n- ansible-network-matrix: Comprehensive network connectivity testing between hosts\n- ansible-security-audit: Security vulnerability assessment and compliance checking\n\n*Performance \u0026 Monitoring:*\n- ansible-health-monitor: Continuous monitoring with trend analysis and anomaly detection\n- ansible-performance-baseline: Performance benchmarking and regression detection\n- ansible-log-hunter: Advanced log correlation and pattern hunting across multiple sources\n\nEnvironment variables (optional)\n\n- MCP_ANSIBLE_PROJECT_ROOT: absolute project root\n- MCP_ANSIBLE_INVENTORY: inventory path or directory\n- MCP_ANSIBLE_PROJECT_NAME: label for env project\n- MCP_ANSIBLE_ROLES_PATH: colon-separated roles paths\n- MCP_ANSIBLE_COLLECTIONS_PATHS: colon-separated collections paths\n- MCP_ANSIBLE_ENV_\u003cKEY\u003e: forwarded to process env (e.g., MCP_ANSIBLE_ENV_ANSIBLE_CONFIG)\n\nExamples (Claude Tools)\n\n- List hosts from inventory:\n  - Tool: ansible-inventory\n  - Args: inventory = \"/Users/bsahane/GitLab/projectAIOPS/mcp-ansible-server/inventory/hosts.ini\"\n\n- Run a simple playbook:\n  - Tool: ansible-playbook\n  - Args:\n    - playbook_path: absolute path to playbook.yml\n    - inventory: \"/Users/bsahane/GitLab/projectAIOPS/mcp-ansible-server/inventory/hosts.ini\"\n\n- Ad-hoc ping localhost:\n  - Tool: ansible-task\n  - Args:\n    - host_pattern: \"localhost\"\n    - module: \"ping\"\n    - inventory: \"localhost,\"\n\n- Scaffold a role:\n  - Tool: create-role-structure\n  - Args:\n    - base_path: \"/tmp\"\n    - role_name: \"demo_role\"\n\n- Register a project and run a project playbook:\n  - Tool: register-project\n    - name: \"projectAIOPS\"\n    - root: \"/Users/bsahane/GitLab/projectAIOPS/mcp-ansible-server\"\n    - inventory: \"/Users/bsahane/GitLab/projectAIOPS/mcp-ansible-server/inventory/hosts.ini\"\n    - make_default: true\n  - Tool: project-playbooks\n    - project: \"projectAIOPS\"\n  - Tool: project-run-playbook\n    - playbook_path: absolute path from discovered list\n\nExamples for local inventory suite\n\n- Parse via ansible.cfg with multiple inventories (merges group_vars/host_vars):\n  - Tool: inventory-parse\n  - Args:\n    - ansible_cfg_path: \"/abs/path/to/ansible.cfg\"\n    - include_hostvars: true\n\n- Parse a specific extensionless inventory file:\n  - Tool: inventory-parse\n  - Args:\n    - project_root: \"/abs/path/to/project\"\n    - inventory_paths: [\"/abs/path/to/project/inventories/stage/inventory\"]\n    - include_hostvars: true\n\n- Ping a group from inventory:\n  - Tool: ansible-ping\n  - Args:\n    - project_root: \"/abs/path/to/project\"\n    - host_pattern: \"aws_mx_ext_stage\"\n\nNotes\n\n- The server uses stdio transport. Do not print to stdout; logs go to stderr.\n- Ansible connection/auth follows your local Ansible configuration.\n\nReference\n\n- MCP Quickstart (Python): https://modelcontextprotocol.io/quickstart/server#python\n\n\n### Tool reference (detailed)\n\nBelow are all tools with short descriptions, minimal args, an example question you can ask in the MCP UI, and a sample answer.\n\n- **create-playbook**: Create an Ansible playbook file from YAML string or object\n  - Minimal args:\n    ```json\n    { \"playbook\": [{\"hosts\":\"all\",\"tasks\":[{\"debug\":{\"msg\":\"hi\"}}]}] }\n    ```\n  - Example question: \"Create a playbook that prints hello for all hosts.\"\n  - Possible answer: `{ \"path\": \"/tmp/playbook_x.yml\", \"bytes_written\": 123, \"preview\": \"- hosts: all...\" }`\n\n- **validate-playbook**: Syntax check a playbook\n  - Minimal args:\n    ```json\n    { \"playbook_path\": \"/abs/playbook.yml\" }\n    ```\n  - Example question: \"Is this playbook syntactically valid?\"\n  - Possible answer: `{ \"ok\": true, \"rc\": 0 }`\n\n- **ansible-playbook**: Run a playbook\n  - Minimal args:\n    ```json\n    { \"playbook_path\": \"/abs/playbook.yml\", \"inventory\": \"localhost,\" }\n    ```\n  - Example question: \"Run this playbook against localhost.\"\n  - Possible answer: `{ \"ok\": true, \"rc\": 0, \"stdout\": \"PLAY [all]...\" }`\n\n- **ansible-task**: Run an ad‑hoc module\n  - Minimal args:\n    ```json\n    { \"host_pattern\": \"localhost\", \"module\": \"ping\", \"inventory\": \"localhost,\" }\n    ```\n  - Example question: \"Ping localhost.\"\n  - Possible answer: `{ \"ok\": true, \"stdout\": \"pong\" }`\n\n- **ansible-role**: Execute a role via a temporary playbook\n  - Minimal args:\n    ```json\n    { \"role_name\": \"myrole\", \"hosts\": \"localhost\", \"inventory\": \"localhost,\" }\n    ```\n  - Example question: \"Run role myrole on localhost.\"\n  - Possible answer: `{ \"ok\": true, \"rc\": 0 }`\n\n- **create-role-structure**: Scaffold a role directory tree\n  - Minimal args:\n    ```json\n    { \"base_path\": \"/tmp\", \"role_name\": \"demo\" }\n    ```\n  - Example question: \"Create an Ansible role skeleton named demo.\"\n  - Possible answer: `{ \"created\": [\".../tasks/main.yml\", ...], \"role_path\": \"/tmp/demo\" }`\n\n- **ansible-inventory**: List hosts and groups from an inventory\n  - Minimal args:\n    ```json\n    { \"inventory\": \"/abs/inventory\" }\n    ```\n  - Example question: \"List hosts in this inventory.\"\n  - Possible answer: `{ \"hosts\": [\"host01\"], \"groups\": {\"web\": [\"host01\"]} }`\n\n- **register-project**: Register an Ansible project for reuse\n  - Minimal args:\n    ```json\n    { \"name\": \"proj\", \"root\": \"/abs/project\", \"make_default\": true }\n    ```\n  - Example question: \"Register my project root and make it default.\"\n  - Possible answer: `{ \"path\": \"~/.config/mcp-ansible/config.json\", \"projects\": [\"proj\"] }`\n\n- **list-projects**: Show registered projects\n  - Minimal args: `{}`\n  - Example question: \"What projects are registered and which is default?\"\n  - Possible answer: `{ \"default\": \"proj\", \"projects\": {\"proj\": {\"root\": \"/abs\"}} }`\n\n- **project-playbooks**: Discover playbooks under a project root\n  - Minimal args:\n    ```json\n    { \"project\": \"proj\" }\n    ```\n  - Example question: \"List playbooks in my project.\"\n  - Possible answer: `{ \"ok\": true, \"playbooks\": [\"/abs/x.yml\", \"/abs/y.yml\"] }`\n\n- **project-run-playbook**: Run a playbook using project inventory/env\n  - Minimal args:\n    ```json\n    { \"playbook_path\": \"/abs/x.yml\", \"project\": \"proj\" }\n    ```\n  - Example question: \"Run x.yml in my default project.\"\n  - Possible answer: `{ \"ok\": true, \"rc\": 0 }`\n\n- **inventory-parse**: Parse inventories (ansible.cfg aware, merges group_vars/host_vars)\n  - Minimal args:\n    ```json\n    { \"project_root\": \"/abs/project\", \"include_hostvars\": true }\n    ```\n  - Example question: \"Resolve all hosts and vars from my project root.\"\n  - Possible answer: `{ \"hosts\": [\"h1\"], \"groups\": {\"web\":[\"h1\"]}, \"hostvars\": {\"h1\": {...}} }`\n\n- **inventory-graph**: Show inventory graph\n  - Minimal args:\n    ```json\n    { \"project_root\": \"/abs/project\" }\n    ```\n  - Example question: \"Show the inventory graph.\"\n  - Possible answer: \"@all\\n |--@web\\n |  |--h1\"\n\n- **inventory-find-host**: Show a host’s groups and merged vars\n  - Minimal args:\n    ```json\n    { \"project_root\": \"/abs/project\", \"host\": \"h1\" }\n    ```\n  - Example question: \"What groups and vars does h1 have?\"\n  - Possible answer: `{ \"groups\": [\"web\"], \"hostvars\": {\"ansible_user\":\"root\"} }`\n\n- **ansible-ping**: Ping hosts via ad-hoc\n  - Minimal args:\n    ```json\n    { \"project_root\": \"/abs/project\", \"host_pattern\": \"localhost\" }\n    ```\n  - Example question: \"Ping localhost.\"\n  - Possible answer: `{ \"ok\": true, \"rc\": 0 }`\n\n- **ansible-gather-facts**: Run setup and return facts\n  - Minimal args:\n    ```json\n    { \"project_root\": \"/abs/project\", \"host_pattern\": \"localhost\" }\n    ```\n  - Example question: \"Gather facts from localhost.\"\n  - Possible answer: `{ \"facts\": {\"localhost\": {\"ansible_hostname\":\"node\"}} }`\n\n- **validate-yaml**: Validate YAML files\n  - Minimal args:\n    ```json\n    { \"paths\": [\"/abs/file.yml\"] }\n    ```\n  - Example question: \"Validate this YAML file.\"\n  - Possible answer: `{ \"ok\": true, \"results\": [{\"path\":\"/abs/file.yml\",\"ok\":true}] }`\n\n- **galaxy-install**: Install roles/collections from requirements\n  - Minimal args:\n    ```json\n    { \"project_root\": \"/abs/project\" }\n    ```\n  - Example question: \"Install galaxy dependencies for my project.\"\n  - Possible answer: `{ \"ok\": true, \"executed\": [{\"kind\":\"collection\",\"rc\":0}] }`\n\n- **project-bootstrap**: Bootstrap project (env info + galaxy install)\n  - Minimal args:\n    ```json\n    { \"project_root\": \"/abs/project\" }\n    ```\n  - Example question: \"Bootstrap my project.\"\n  - Possible answer: `{ \"ok\": true, \"details\": {\"ansible_version\":\"...\"} }`\n\n- **inventory-diff**: Diff two inventories\n  - Minimal args:\n    ```json\n    { \"left_project_root\": \"/abs/project\", \"right_project_root\": \"/abs/project\" }\n    ```\n  - Example question: \"What changed between stage and prod inventories?\"\n  - Possible answer: `{ \"added_hosts\": [], \"removed_hosts\": [], \"group_membership_changes\": {} }`\n\n- **ansible-test-idempotence**: Run playbook twice and assert no changes second run\n  - Minimal args:\n    ```json\n    { \"playbook_path\": \"/abs/playbook.yml\", \"project_root\": \"/abs/project\" }\n    ```\n  - Example question: \"Is this playbook idempotent?\"\n  - Possible answer: `{ \"ok\": true, \"changed_total_second\": 0 }`\n\n- **galaxy-lock**: Generate a lock file of installed roles/collections\n  - Minimal args:\n    ```json\n    { \"project_root\": \"/abs/project\" }\n    ```\n  - Example question: \"Create a requirements.lock.yml for my project.\"\n  - Possible answer: `{ \"ok\": true, \"path\": \"/abs/requirements.lock.yml\" }`\n\n- **vault-encrypt / vault-decrypt / vault-view / vault-rekey**: Vault operations\n  - Minimal args (encrypt):\n    ```json\n    { \"file_paths\": [\"/abs/group_vars/all/vault.yml\"], \"project_root\": \"/abs/project\" }\n    ```\n  - Example question: \"Encrypt group_vars/all/vault.yml with my vault password.\"\n  - Possible answer: `{ \"ok\": true, \"rc\": 0 }`\n\n## Troubleshooting Suite Reference\n\n### Foundation Tools\n\n- **ansible-remote-command**: Execute shell commands with enhanced parsing\n  - Minimal args:\n    ```json\n    { \"host_pattern\": \"webserver\", \"command\": \"ps aux | grep nginx\" }\n    ```\n  - Example question: \"Show me all nginx processes on the webserver.\"\n  - Sample answer: `{ \"ok\": true, \"stdout\": \"Process list...\", \"parsed_output\": {...} }`\n\n- **ansible-fetch-logs**: Fetch and analyze log files\n  - Minimal args:\n    ```json\n    { \"host_pattern\": \"app*\", \"log_paths\": [\"/var/log/nginx/error.log\"], \"analyze\": true }\n    ```\n  - Example question: \"Get the last 100 lines from nginx error logs and analyze patterns.\"\n  - Sample answer: `{ \"ok\": true, \"logs\": {...}, \"summary\": {\"total_logs\": 1, \"successful\": 1} }`\n\n- **ansible-service-manager**: Service management with logs\n  - Minimal args:\n    ```json\n    { \"host_pattern\": \"web\", \"service_name\": \"nginx\", \"action\": \"restart\", \"check_logs\": true }\n    ```\n  - Example question: \"Restart nginx service and show recent logs.\"\n  - Sample answer: `{ \"ok\": true, \"action_result\": {...}, \"status\": {...}, \"logs\": {...} }`\n\n### Intelligent Diagnostics\n\n- **ansible-diagnose-host**: Comprehensive health assessment\n  - Minimal args:\n    ```json\n    { \"host_pattern\": \"production\", \"checks\": [\"system\", \"network\", \"security\"], \"include_recommendations\": true }\n    ```\n  - Example question: \"Run a complete health check on production servers with recommendations.\"\n  - Sample answer: `{ \"ok\": true, \"diagnosis\": {...}, \"health_score\": {\"score\": 85, \"level\": \"good\"} }`\n\n- **ansible-capture-baseline**: Capture system state baseline\n  - Minimal args:\n    ```json\n    { \"host_pattern\": \"web*\", \"snapshot_name\": \"pre-deployment\", \"include\": [\"configs\", \"processes\"] }\n    ```\n  - Example question: \"Capture a baseline snapshot before deployment.\"\n  - Sample answer: `{ \"ok\": true, \"snapshot_id\": \"snapshot_20250101_120000_abc123\", \"categories_captured\": [...] }`\n\n- **ansible-compare-states**: Compare against baseline\n  - Minimal args:\n    ```json\n    { \"host_pattern\": \"web*\", \"baseline_snapshot_id\": \"snapshot_20250101_120000_abc123\" }\n    ```\n  - Example question: \"Compare current state with pre-deployment baseline.\"\n  - Sample answer: `{ \"ok\": true, \"comparison\": {\"differences\": {...}, \"summary\": {...}} }`\n\n### Automation \u0026 Self-Healing\n\n- **ansible-auto-heal**: Automated problem resolution\n  - Minimal args:\n    ```json\n    { \"host_pattern\": \"database\", \"symptoms\": [\"high_memory\", \"disk_full\"], \"max_impact\": \"medium\", \"dry_run\": true }\n    ```\n  - Example question: \"Automatically heal memory and disk issues on database servers (preview mode).\"\n  - Sample answer: `{ \"ok\": true, \"proposed_actions\": [...], \"summary\": {\"actionable_symptoms\": 2} }`\n\n### Network \u0026 Security\n\n- **ansible-network-matrix**: Network connectivity testing\n  - Minimal args:\n    ```json\n    { \"host_patterns\": [\"web*\", \"db*\"], \"check_ports\": [22, 3306, 443] }\n    ```\n  - Example question: \"Test network connectivity between web and database servers.\"\n  - Sample answer: `{ \"ok\": true, \"network_matrix\": {...}, \"summary\": {\"source_patterns\": 2, \"ports_tested\": [22, 3306, 443]} }`\n\n- **ansible-security-audit**: Security vulnerability assessment\n  - Minimal args:\n    ```json\n    { \"host_pattern\": \"all\", \"audit_categories\": [\"packages\", \"permissions\", \"network\"], \"generate_report\": true }\n    ```\n  - Example question: \"Run a comprehensive security audit on all servers.\"\n  - Sample answer: `{ \"ok\": true, \"audit\": {...}, \"security_assessment\": {\"score\": 75, \"level\": \"warning\"} }`\n\n### Performance \u0026 Monitoring\n\n- **ansible-health-monitor**: Continuous monitoring with trends\n  - Minimal args:\n    ```json\n    { \"host_pattern\": \"production\", \"monitoring_duration\": 300, \"metrics_interval\": 30 }\n    ```\n  - Example question: \"Monitor production servers for 5 minutes and analyze trends.\"\n  - Sample answer: `{ \"ok\": true, \"monitoring\": {\"trend_analysis\": {...}, \"anomalies\": []} }`\n\n- **ansible-performance-baseline**: Performance benchmarking\n  - Minimal args:\n    ```json\n    { \"host_pattern\": \"web*\", \"benchmark_duration\": 60, \"store_baseline\": true }\n    ```\n  - Example question: \"Run performance benchmarks on web servers and store as baseline.\"\n  - Sample answer: `{ \"ok\": true, \"baseline\": {\"benchmarks\": {...}, \"performance_assessment\": {\"score\": 90}} }`\n\n- **ansible-log-hunter**: Advanced log correlation\n  - Minimal args:\n    ```json\n    { \"host_pattern\": \"app*\", \"search_patterns\": [\"ERROR\", \"CRITICAL\"], \"time_range\": \"1h\", \"correlation_window\": 300 }\n    ```\n  - Example question: \"Hunt for errors in application logs from the last hour and correlate events.\"\n  - Sample answer: `{ \"ok\": true, \"hunt_results\": {...}, \"correlation\": {\"correlated_events\": 3} }`\n\n## Key Features of Troubleshooting Suite\n\n### 🎯 **Intelligent Analysis**\n- **Health Scoring**: Automated scoring based on CPU, memory, disk, network, and security metrics\n- **Pattern Recognition**: Smart analysis of log patterns, error correlations, and system anomalies\n- **Trend Detection**: Real-time monitoring with trend analysis and predictive insights\n\n### 🔧 **Automated Remediation**\n- **Symptom-to-Solution Mapping**: Intelligent problem resolution based on detected symptoms\n- **Safety-First Approach**: Graduated response with impact assessment and mandatory safety checks\n- **Dry-Run Mode**: Preview all actions before execution for safety validation\n\n### 📊 **Advanced Analytics**\n- **Baseline Comparisons**: Time-travel debugging with comprehensive state comparisons\n- **Performance Benchmarking**: Establish baselines and detect performance regressions\n- **Security Auditing**: Comprehensive vulnerability assessment with compliance scoring\n\n### 🛡️ **Enterprise-Grade Safety**\n- **Impact Controls**: Configurable impact levels (low/medium/high) with approval workflows\n- **Audit Trails**: Complete logging of all troubleshooting actions and decisions\n- **Rollback Capabilities**: Automated reversion for failed operations\n\n### 🔄 **Pure Ansible Integration**\n- **No SSH Dependencies**: All operations go through Ansible's native connection framework\n- **Module Consistency**: Uses standard Ansible modules for maximum compatibility\n- **Configuration Aware**: Respects ansible.cfg and existing project configurations\n\nAll troubleshooting tools maintain the same safety, auditability, and Ansible-native approach while providing enterprise-grade automation capabilities.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbsahane%2Fmcp-ansible","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbsahane%2Fmcp-ansible","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbsahane%2Fmcp-ansible/lists"}