Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
OAM_BINNoPath to the oam binary to use. Otherwise the launcher checks `OAM_INSTALL_DIR`, the installed locations (`~/.oam/bin`, and `%LOCALAPPDATA%\oam\bin` on Windows) and `PATH`, and takes the newest.
ANSIBLE_MCP_DIRNoProject used when a tool call passes no `dir`.the server's working directory
OAM_INSTALL_DIRNoDirectory the launcher checks for the oam binary when `OAM_BIN` is not set.
ANSIBLE_MCP_CACHENoServer-side cache (and the Ansible-side one in native mode): the dummy vault file, local temp, upgrade targets. Safe to delete.~/.cache/ansible-mcp
ANSIBLE_MCP_BIN_DIRNoAnsible-side directory holding `ansible-*` (a venv's `bin`). Also put first on the child's `PATH` (ansible-lint needs `ansible-playbook` next to it). Unset uses `PATH`.
ANSIBLE_MCP_RUNTIMENo`auto`: the newest oam at 0.19.0 or newer, else Node. `oam`: oam or exit with an error. `node`: always Node -- the escape hatch when a problem only shows up under oam.auto
ANSIBLE_MCP_PASS_ENVNoComma-separated names of server env vars to forward to the Ansible side in prefix mode.
ANSIBLE_MCP_PATH_STYLENo`wsl` or `native`. `auto` is `wsl` when the prefix starts with `wsl`/`wsl.exe`. Other prefixes (`ssh`, `docker exec`) get `env -C <dir> ...` and are best effort.auto
ANSIBLE_MCP_TIMEOUT_MSNoKill any Ansible command after this long (the upgrade download gets 3x).120000
ANSIBLE_MCP_REMOTE_CACHENoThe Ansible-side cache in prefix mode.$HOME/.cache/ansible-mcp on the Ansible side
ANSIBLE_MCP_COMMAND_PREFIXNoJSON array prepended to every Ansible command, e.g. ["wsl.exe","-d","Ubuntu","--exec"]. A value not starting with `[` is split on whitespace. Required on Windows (Ansible inside WSL). Unset means native execution.
ANSIBLE_MCP_ALLOW_PLAY_LOOKUPSNo`1` lets playbooks with lookups in play-level `name` / `hosts` / `vars_files` be parsed (Ansible runs those lookups on this machine). Unset refuses them.
ANSIBLE_MCP_ALLOW_DYNAMIC_INVENTORYNo`1` re-enables script, constructed and plugin inventory sources (they run code and may call cloud APIs). Unset disables them.

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

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
ansible_project_infoA

What this Ansible checkout contains and how Ansible sees it: ansible-core version, effective config file, collections and roles paths, installed ansible-* binaries, detected playbooks, inventories, roles and requirements files. Call it first. Read-only; never connects to a managed host (AAP MCP covers controller state, ADT MCP takes actions).

ansible_module_docA

Exact options (type, required, default, choices, aliases, suboptions) of a module or plugin as INSTALLED here (ansible-doc), with the collection version that provides it and redirects resolved. Use before writing a task; options drift between collection versions, so training-data guesses are often wrong.

ansible_module_searchA

Find installed modules or plugins by name or description (ansible-doc -l), ranked exact name, prefix, token, then description match. Pass query, collection, or both.

ansible_check_task_argsA

Check tasks (inline YAML, or a tasks file / playbook) against the INSTALLED module docs: unknown options, missing required ones, bad choices and types (YAML 1.1 aware: unquoted off/yes/0755), suboptions, deprecated options. ansible-doc cannot express cross-option rules (mutually_exclusive, required_if), so the answer says what it could not check; it catches action-plugin modules (copy, template) that ansible-lint's args rule skips.

ansible_role_interfaceA

A role's interface: argument_specs entry points and options (no_log honoured), defaults with redacted values, which defaults are undocumented, dependencies, vars names and galaxy_info. Works for local roles (roles_path, dir/roles, or a path) and collection roles (ns.collection.role).

ansible_inventoryA

Groups, hosts and inventory-level vars (ansible-inventory --graph/--list/--host), always redacted: vault values, secret-like names and secret-shaped values are hidden, templates are shown unrendered. Script and plugin inventory sources run code, so they are skipped unless ANSIBLE_MCP_ALLOW_DYNAMIC_INVENTORY=1 (which can also call cloud APIs); vault secrets are never supplied, so whole-file vaults degrade to a per-file view.

ansible_playbook_structureA

Plays, matched hosts, tasks (with module and file:line where unambiguous) and tags of a playbook (ansible-playbook --syntax-check, then --list-hosts --list-tasks --list-tags), plus deprecation warnings Ansible printed while parsing; never runs a play. Parses playbooks with Ansible: treat dir as code you would run --syntax-check on (play-level Jinja and playbook-adjacent vars plugins are evaluated); lookups in play-level fields are refused unless ANSIBLE_MCP_ALLOW_PLAY_LOOKUPS=1.

ansible_configA

The effective configuration for this dir (ansible-config dump) with each setting's origin (ansible.cfg, env, default); galaxy server tokens and passwords are always redacted. Settings this server overrides for safety in its other tools (vault password files, inventory and vars plugins) are flagged.

ansible_collectionsA

requirements.yml (collections and roles) against what is installed: ok, VIOLATES (with file:line) or MISSING, using galaxy constraint rules, plus collections shadowed across collections paths (the first in COLLECTIONS_PATHS wins). Never installs anything.

ansible_lint_summaryA

ansible-lint (offline) grouped by rule with counts, severities and file:line locations; never fixes anything (ADT MCP's ansible_lint fixes). Parses playbooks with Ansible: treat dir as code you would run --syntax-check on (play-level Jinja and playbook-adjacent vars plugins are evaluated); lookups in play-level fields are refused unless ANSIBLE_MCP_ALLOW_PLAY_LOOKUPS=1.

ansible_upgrade_impactA

What breaks in THIS project's tasks if one collection moves to an exact version: removed or moved modules (meta/runtime.yml redirects and tombstones), removed options and aliases, newly required options, dropped choices, type and default changes, each tied to the task's file:line, plus requirements.yml constraints and a verdict. Downloads the target collection from Galaxy (or the configured servers) into this server's cache on first use; never touches dir, requirements files or your collections paths.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4.1/5.0

Scored across 11 tools

Disambiguation5/5

Each tool targets a clearly distinct facet of Ansible project analysis: inventory, config, project info, playbook structure, role interface, module docs/search, task-arg validation, collections requirements, lint summary, and upgrade impact. The descriptions explicitly differentiate overlapping-sounding tools (e.g., ansible_check_task_args vs ansible_lint_summary, ansible_module_doc vs ansible_module_search), leaving no real ambiguity.

Naming Consistency4/5

All tools use a consistent ansible_ prefix and snake_case, which is highly predictable. The only minor deviation is mixed verb/noun construction (ansible_check_task_args and ansible_module_search are verb-led, while most others are noun phrases), but this remains readable and consistent enough.

Tool Count5/5

11 tools is well within the ideal 3-15 range for a read-only Ansible project analysis server. Each tool earns its place by covering a distinct inspection or validation concern, with no obvious redundancy.

Completeness4/5

The surface is broad and complete for read-only analysis: project info, config, inventory, playbook structure, roles, modules, task args, collections, lint, and upgrade impact are all covered. Minor gaps exist, such as no explicit variable-precedence or host-fact inspection tool, but these are largely workaroundable or intentionally out of scope.

Maintenance

ActivityMaintained
ResponsivenessNo issues