ansible-know-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ANSIBLE_KNOWLEDGE_SKILLS_DIR | No | Where to write generated skills | ./skills/ |
| ANSIBLE_KNOWLEDGE_DOC_SOURCES | No | JSON dict of doc manifest sources | Built-in ansible-core source |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| search_modulesA | Find Ansible modules by keyword in name or description. Returns up to 50 matches as {fqcn: short_description}. Returns: {"module.fqcn": "short description", ...} or {"error": str} on failure. |
| search_pluginsA | Find Ansible plugins by keyword. Returns up to 50 matches as {fqcn: short_description}. Plugin types: lookup, filter, test, connection, become, strategy, callback, inventory, cache, cliconf, httpapi, netconf, shell, vars. On failure returns {"error": str}. |
| get_module_docA | Get full structured documentation for one module. Returns: module_name, short_description, params (list with name/type/required/default/choices/description/aliases), examples (raw YAML), is_api_module, doc_source ('local' or 'galaxy'). When doc_source is 'galaxy', also includes doc_version and optionally doc_warning. Falls back to Galaxy if collection is not installed locally. On failure returns {"error": str}. |
| get_role_docA | Get full structured documentation for one role. Returns: role_name, content_type ('role'), short_description, doc_source ('local', 'galaxy_readme', or 'unavailable'), entry_points (dict of entry point names to {description, options}), dependencies (list), examples (str). When doc_source is 'galaxy_readme', also includes doc_version and doc_warning. Falls back to Galaxy README parsing if local ansible-doc returns empty. On validation failure returns {"error": str}. |
| get_standalone_role_docA | Get standalone role documentation for a 2-part namespace.role identifier. Use this for standalone roles discovered with search_standalone_roles. This tool does not replace get_role_doc for collection roles. |
| get_plugin_docA | Get full structured documentation for one plugin. Returns: plugin_name, plugin_type, short_description, params, examples, doc_source ('local' or 'galaxy'). Falls back to Galaxy if collection is not installed locally. On failure returns {"error": str}. |
| search_docsA | Search documentation manifests for conceptual guides. Returns up to 20 matching entries with title, summary, topic, audience, lines, source, and raw URL. On failure returns {"error": str}. |
| fetch_docA | Fetch a page from docs.ansible.com or docs.redhat.com as clean Markdown. Returns documentation content ready for LLM consumption. Use search_docs to discover relevant page URLs, or pass a known docs.ansible.com or docs.redhat.com URL directly. The url parameter must start with https://docs.ansible.com/ or https://docs.redhat.com/. |
| search_collectionsA | Search Ansible Galaxy for collections by keyword. Returns non-deprecated collections ranked by download count. Use this to discover which collection provides modules for a specific platform or use case. After finding a collection, use ensure_collection() to install it, then get_module_doc() or get_collection_manifest() to explore its modules. Returns: {"query": str, "count": int, "collections": [{"namespace": str, "description": str, "tags": [str], "latest_version": str, "module_count": int, "download_count": int, "deprecated": bool, "signed": bool}, ...]} On failure returns {"error": str}. |
| search_standalone_rolesA | Search Galaxy standalone/legacy roles by keyword. This targets standalone (2-part) roles. Collection roles use search_collections/get_role_doc. tags accepts a single Galaxy tag; if comma-separated values are provided, only the first segment is sent. If public Galaxy is disabled and no configured server supports v1 role endpoints, expect a v1-unsupported error. |
| get_collection_manifestA | Get a lightweight collection overview: module/role/plugin names with one-line descriptions. Prefer this over get_collection_docs when exploring a collection — it returns a compact summary suitable for deciding which modules to drill into with get_module_doc. Returns cached MANIFEST.json if available, otherwise generates on-demand (metadata extraction only, no skill generation). On failure returns {"error": str}. Module docs are fetched in batched ansible-doc calls. If the entire batch fails hard, the manifest is written with zero module entries (roles/plugins from list discovery are still included when present). |
| get_collection_docsA | Get full parameter-level documentation for every module in a collection from Galaxy. WARNING: output can be very large (100 KB+) for collections with many modules. Use get_collection_manifest first for a compact overview, then get_module_doc for the specific modules you need. Reserve this tool for batch operations that genuinely need all parameter details at once (e.g. skill generation). Returns all module docs in a single API call without installing the collection. Result shape: {"modules": {fqcn: {module_name, short_description, params, examples, is_api_module}, ...}, "doc_source": "galaxy", "doc_version": str}. On failure returns {"error": str}. |
| ensure_collectionA | Install a collection to a temporary directory for this session. Installs once and pins the resolved version. Subsequent calls with the same namespace skip unless a different version is explicitly requested. If a different version is requested than currently installed, the collection will be reinstalled. Returns dict with keys:
|
| list_skillsA | List all available generated skills. Returns name, description, path for each. Searches Returns: [{"name": str, "description": str, "path": str}, ...] or {"error": str} on failure. |
| get_skillA | Read a specific skill's SKILL.md content by name. Searches Returns: SKILL.md content as str, or {"error": str} on failure/not found. |
| generate_skillA | Generate a skill package for one module. Writes SKILL.md + scripts + playbook to disk. Returns the SKILL.md content as str, or {"error": str} on failure. |
| generate_role_skillA | Generate a skill package for one role. Writes SKILL.md + assets/playbook.yml to disk (no scripts/). Returns the SKILL.md content as str, or {"error": str} on failure. |
| generate_plugin_skillA | Generate a skill package for one plugin. Writes SKILL.md to disk (no scripts/ or assets/). Returns the SKILL.md content as str, or {"error": str} on failure. |
| generate_collection_skillsA | Batch generate skills for an entire collection. Generates/updates the collection MANIFEST.json as a byproduct. Updates AGENTS.md in the project root with a managed section listing available collections for cross-agent discovery. Returns {"succeeded": int, "failed": int, "total": int, "manifest": dict, "collection_skill": str}, or {"error": str} on failure. Module/plugin docs use batched ansible-doc calls. Names missing from a
batch (or a hard batch failure) are counted in |
| package_as_pluginA | Wrap already-generated skills into an Agent Plugins directory. Does not change Returns: {"collection", "plugin_name", "plugin_dir", "skill_count", "skills", "plugin_json", "mcp_json", "archive"} or {"error": str} on failure. |
| package_for_lolaA | Wrap already-generated skills into a Lola-compatible module directory. .. deprecated::
Prefer :func: Does not change Returns: {"collection", "module_name", "module_dir", "skill_count", "skills", "market_yml"} or {"error": str} on failure. |
| clear_cacheA | Clear server caches. Clears Galaxy version/docs-blob caches, standalone-role v1 caches, doc manifest/page caches, or both. Useful when cached data becomes stale during long-running sessions. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| review_playbook | Review an Ansible playbook against module documentation and best practices. |
| explain_module | Get a detailed explanation of an Ansible module with usage examples. |
| explain_plugin | Get a detailed explanation of an Ansible plugin with usage examples. |
| generate_role | Generate an Ansible role skeleton using specified modules. |
| find_collection | Guide the agent through discovering, installing, and exploring a collection. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| Available Skills | List all generated skill packages |
| Installed Collections | List collections installed across all active sessions |
| Server Version | Installed and latest version info with upgrade status |
| Galaxy Servers | List configured Galaxy servers from ansible.cfg. Shows auth type (token/basic/none) for debugging; credentials are never exposed. |
| Documentation Sources | List configured documentation manifest sources |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/leogallego/ansible-know-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server