Skip to main content
Glama
joenukem

Open Automation Platform MCP Server

by joenukem

Open Automation Platform MCP Server

A Model Context Protocol (MCP) server that exposes open automation platform capabilities to AI agents and assistants. It is the open implementation of the AAP 2.7 MCP server.

Every tool call is governed the same way a human action is:

  1. Gateway auth — platform data is read/written only through the gateway origin, using the caller's token.

  2. RBAC scope — each tool requires a scope; a caller lacking it gets an explicit error, never a silent allow.

  3. Policy — mutating tools (e.g. launch_job_template) build a PolicyContext and call the policy service first; a denial blocks the action before it reaches the gateway. Fail-closed if the policy service is unreachable.

So an agent can never exceed the caller's RBAC or bypass policy.

Tools

Tool

Scope

Action

list_job_templates

controller:read

List controller job templates.

list_inventories

controller:read

List inventories.

list_collections

hub:read

List hub collections.

list_eda_activations

eda:read

List EDA activations.

read_audit_events

audit:read

Read normalized audit events.

policy_dry_run

policy:read

Evaluate a PolicyContext with no side effect.

launch_job_template

controller:launch

Launch a job template (policy-checked).

platform:admin satisfies any scope.

Related MCP server: Enterprise MCP Gateway and Tool Registry

Protocol

Conformant JSON-RPC 2.0 MCP core — initialize, tools/list, tools/call, ping — implemented dependency-free so the server is self-contained. It can be swapped for the official MCP SDK without changing the tool or client layers.

Transports: newline-delimited JSON-RPC over stdio (the standard local MCP transport) and an HTTP JSON-RPC endpoint (POST /, GET /healthz) for the platform.

Run

# stdio (per-agent), identity/scopes from env
GATEWAY_URL=http://awx-gateway:8080 POLICY_URL=http://policy:8181 \
MCP_AUTH_USER=agent MCP_AUTH_TEAMS=sre MCP_AUTH_SCOPES=controller:read,controller:launch,policy:read \
MCP_AUTH_TOKEN=... node src/index.mjs

# http (platform service)
MCP_TRANSPORT=http MCP_ADDR=0.0.0.0:8765 node src/index.mjs

Validate

scripts/local-validation   # node --check every module + node --test

Zero runtime dependencies (Node 20+ built-in fetch, http, readline, node:test). Container base and all images are public/community; no authenticated Red Hat registry.

Available Tools

7 tools
launch_job_templateB

Launch a controller job template. The action is policy-checked before it runs; a policy denial blocks the launch.

ParametersJSON Schema
NameRequiredDescriptionDefault
forksNo
inventoryNo
extra_varsNo
privilegedNo
template_idYes
survey_enabledNo

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description discloses the policy-check behavior, which is a key trait. However, it does not cover other behavioral aspects like return values, error states, or side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is only two sentences, each providing essential information without redundancy. It is highly concise and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (6 params, no schema descriptions, no output schema, no annotations), the description is severely incomplete. It omits explanations for required parameters, return values, and optional parameter usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description adds no meaning to the 6 parameters. The agent must infer from parameter names alone, which is insufficient for correct invocation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Launch a controller job template' with a specific verb and resource, distinguishing it from sibling tools like list_job_templates which list templates.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions a policy check, implying a use case and hinting at policy_dry_run as an alternative for dry runs, but it does not explicitly state when to avoid this tool or list alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_collectionsB

List automation hub collections.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations available, the description must disclose behavioral traits. It only states 'List', which implies a read operation, but does not mention any side effects, permissions, pagination, or other behaviors. The description is insufficiently transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and to the point, but lacks any structure or additional context. It is concise but not well-structured; a slightly longer description could improve clarity without losing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no parameters, no output schema, and no annotations, the description is minimal. It adequately conveys the basic function but does not explain what collections are or what the output format might be, leaving gaps for a complex context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and schema coverage is 100%. Therefore, the description does not need to add parameter details. The baseline score of 4 is appropriate as no additional semantics are required.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action 'List' and the resource 'automation hub collections', making the purpose specific. However, it does not differentiate from sibling tools like list_job_templates or list_inventories, but the resource name makes it reasonably clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. There is no mention of context, prerequisites, or exclusions, leaving the agent to infer usage solely from the name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_eda_activationsA

List Event-Driven Ansible rulebook activations.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, and the description adds no behavioral details beyond the basic listing action. No mention of return format, pagination, or any side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded, no wasted words. Perfectly concise for the tool's simplicity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with no parameters and no output schema, the description provides the essential purpose. Lacks detail about return structure but is adequate given the context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has no parameters (0 params), so baseline is 4. Description does not add parameter info, but none is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'List Event-Driven Ansible rulebook activations', using a specific verb and resource. It distinguishes from sibling list tools like list_job_templates and list_inventories by targeting rulebook activations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. The description does not mention any context or exclusion for other list tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_inventoriesB

List automation controller inventories.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description should disclose behavioral traits. It only says 'list', which implies a read operation, but fails to mention any constraints, pagination, authentication needs, or what the output contains.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, short sentence that is front-loaded and directly states the purpose. Every word is necessary and contributes to clarity without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with no parameters and no output schema, the description is adequate. It tells what the tool does. However, it lacks detail on return format, pagination, or any potential limitations, which would be helpful for completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters (0 params), and schema coverage is 100% (empty schema). The description adds no parameter information, but the baseline for 0 params is 4, yet the high coverage rule suggests 3. The bare description provides no additional meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the action ('List') and the resource ('automation controller inventories'), which is specific to the tool's function. It matches the tool name closely but does not distinguish from sibling list tools beyond the resource name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like list_job_templates or list_collections. There is no mention of context, prerequisites, or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_job_templatesA

List automation controller job templates the caller can see.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description must carry the burden. It mentions filtering by caller visibility but does not disclose pagination, full details returned, or other behavioral traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, no wasted words. Front-loaded with action and resource.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list with no parameters, the description is adequate but lacks mention of pagination or response format. It covers the essential purpose minimally.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Zero parameters; baseline is 4. The description adds context ('automation controller', 'the caller can see') beyond the empty schema, but no parameter details needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action 'List' and the resource 'automation controller job templates', with scope 'the caller can see' distinguishing it from sibling list tools like list_inventories.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. It does not mention when it is appropriate or provide any exclusion criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

policy_dry_runC

Evaluate a PolicyContext without performing any action; returns allow/deny with reasons.

ParametersJSON Schema
NameRequiredDescriptionDefault
policy_contextYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must cover behavioral traits. It discloses that the tool is non‑destructive ('without performing any action') and returns allow/deny reasons, but it fails to mention permissions, rate limits, or what happens if the PolicyContext is invalid.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a concise single sentence of 13 words, front‑loaded with the verb and key information. Every word earns its place, with no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (one required nested object parameter) and lack of output schema or annotations, the description is insufficient. It does not explain what a PolicyContext is, what fields are needed, or the format of the return value.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0% description coverage and only a single 'policy_context' object parameter with no nested schema. The description adds no meaning beyond the schema—it merely repeats the parameter name without explaining required fields or structure.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'evaluate' and the resource 'PolicyContext', and explains the outcome (allow/deny with reasons). It distinguishes from sibling tools which are for listing, reading, or launching other entities, though it could be more specific about what a PolicyContext is.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'without performing any action' implies it is for testing purposes, warning the agent that no side effects occur. However, there is no explicit guidance on when to use this tool versus alternatives, nor are there any exclusions or prerequisites mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_audit_eventsB

Read recent normalized platform audit events.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided; description only says 'read' implying non-destructive but lacks details on authentication, rate limits, or time bounds.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, concise, but may be overly brief.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite low complexity, description omits important details like event types, ordering, and time range for 'recent'.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage 0% and description does not explain the 'limit' parameter meaning beyond schema constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states verb 'read' and resource 'normalized platform audit events', distinguishing it from sibling list/launch tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implied when to use (need audit events) but no explicit when-not or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 7 tool updatesv0.1.0
    • First observedlaunch_job_template
    • First observedlist_collections
    • First observedlist_eda_activations
    • First observedlist_inventories
    • First observedlist_job_templates
    • First observedpolicy_dry_run
    • First observedread_audit_events

TDQS

B3.3/5.0

Scored across 7 tools

Disambiguation5/5

Each tool targets a distinct resource or action: listing various entities (job templates, inventories, collections, EDA activations), reading audit events, performing a policy dry-run, and launching a job template. No overlapping purposes.

Naming Consistency3/5

Mix of prefixes: list_ for four tools, read_ for one, launch_ for one, and policy_dry_run as a phrase. Not fully consistent but still readable.

Tool Count5/5

Seven tools is a well-scoped set for an automation platform, covering core viewing and launch operations without being overwhelming.

Completeness2/5

Missing create/update/delete operations for resources like job templates and inventories. The server is limited to listing and launching, with a dry-run policy check, but lacks basic CRUD, which may cause agent failures when needing to manage resources.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    C
    quality
    D
    maintenance
    Enables comprehensive management of Ansible Automation Platform Controller and Gateway through 17 specialized tools covering job execution, inventory management, workflows, credentials, user administration, and system monitoring.
    18
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    A secure MCP gateway for enterprise AI tool execution, enabling governed invocation of business tools with authentication, RBAC, audit logging, PII redaction, and async processing.
    Apache 2.0