Skip to main content
Glama
srinivassrinu842

AAP MCP Server

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
MCP_HOSTNoHost for HTTP server when using streamable-http transport0.0.0.0
MCP_PORTNoPort for HTTP server when using streamable-http transport8000
MCP_TRANSPORTNoTransport mode: 'stdio' or 'streamable-http'stdio
AAP_VERIFY_SSLNoWhether to verify SSL certificates (set to 'true' or 'false')false
AAP_OAUTH_TOKENYesOAuth token for authentication (required)
AAP_API_BASE_PATHNoBase path for the AAP API (e.g., /api/controller/v2)/api/v2
AAP_CONTROLLER_URLYesURL of the Ansible Automation Platform controller (required)
AAP_MCP_READ_ONLY_MODENoEnable read-only mode to block all mutationsfalse

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": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
aap_list_organizationsA

List all organizations in Ansible Automation Platform.

Returns a paginated list of organizations with their IDs, names, descriptions, and member counts.

Args: params (ListOrgsInput): - page (int): Page number, default 1 - page_size (int): Results per page, default 20 - search (Optional[str]): Filter by name substring

Returns: str: JSON with keys: count, page, page_size, results (list of orgs)

aap_get_organizationA

Get details of a specific AAP organization by ID.

Args: params (GetOrgInput): - org_id (int): Organization ID

Returns: str: JSON with organization details including id, name, description, max_hosts, custom_virtualenv, created, modified.

aap_create_organizationA

Create a new organization in Ansible Automation Platform.

Args: params (CreateOrgInput): - name (str): Organization name - description (str): Optional description - max_hosts (int): Max hosts (0 = unlimited)

Returns: str: JSON with created organization details including id.

aap_update_organizationA

Update an existing AAP organization.

Only fields provided will be updated (PATCH semantics).

Args: params (UpdateOrgInput): - org_id (int): Organization ID - name (Optional[str]): New name - description (Optional[str]): New description - max_hosts (Optional[int]): New max hosts limit

Returns: str: JSON with updated organization details.

aap_delete_organizationA

Delete an AAP organization. DESTRUCTIVE - requires confirmation token.

Call once without confirmation_token to get a token, then call again with the token to confirm deletion.

Args: params (DeleteOrgInput): - org_id (int): Organization ID - confirmation_token (Optional[str]): Token from first call

Returns: str: Confirmation request message, or success/error JSON.

aap_list_usersA

List AAP users. Can filter for superusers/admins.

Example: "List users with admin privileges" → set is_superuser=True

Args: params (ListUsersInput): - page, page_size: Pagination - search (Optional[str]): Username/email substring - is_superuser (Optional[bool]): Filter superusers

Returns: str: JSON with user list.

aap_create_userA

Create a new AAP user.

Args: params (CreateUserInput): User details.

Returns: str: JSON with created user id and username.

aap_assign_roleA

Assign an RBAC role to an AAP user.

Args: params (AssignRoleInput): - user_id (int): User ID - role_id (int): Role ID (from /api/v2/roles/ or resource role lists)

Returns: str: JSON confirmation.

aap_revoke_roleA

Revoke an RBAC role from an AAP user.

Args: params (RevokeRoleInput): - user_id (int): User ID - role_id (int): Role ID to revoke

Returns: str: JSON confirmation.

aap_list_teamsC

List AAP teams.

Args: params (ListTeamsInput): Pagination and filter.

Returns: str: JSON with team list.

aap_create_teamA

Create a new AAP team within an organization.

Args: params (CreateTeamInput): Team name, organization_id, description.

Returns: str: JSON with created team id and name.

aap_add_user_to_teamA

Add a user to an AAP team.

Args: params (AddUserToTeamInput): - team_id (int): Team ID - user_id (int): User ID to add

Returns: str: JSON confirmation.

aap_remove_user_from_teamB

Remove a user from an AAP team.

Args: params (RemoveUserFromTeamInput): - team_id (int): Team ID - user_id (int): User ID to remove

Returns: str: JSON confirmation.

aap_get_userA

Get details of a specific AAP user by ID.

Args: params (GetUserInput): - user_id (int): User ID

Returns: str: JSON with user details.

aap_update_userA

Update an existing AAP user (PATCH).

Args: params (UpdateUserInput): Fields to update.

Returns: str: JSON with updated user id and username.

aap_delete_userA

Delete an AAP user. DESTRUCTIVE - requires confirmation.

Args: params (DeleteUserInput): - user_id (int): User ID - confirmation_token (Optional[str]): Token from first call

aap_update_teamA

Update an existing AAP team (PATCH).

Args: params (UpdateTeamInput): Fields to update (name, description).

Returns: str: JSON with updated team id and name.

aap_delete_teamA

Delete an AAP team. DESTRUCTIVE - requires confirmation.

Args: params (DeleteTeamInput): - team_id (int): Team ID - confirmation_token (Optional[str]): Token from first call

aap_list_projectsA

List AAP projects (SCM-backed playbook repositories).

Args: params (ListProjectsInput): Pagination and filter options.

Returns: str: JSON with count and project list. Each entry has id, name, scm_type, scm_url, status, last_updated.

aap_get_projectA

Get full details of an AAP project.

Args: params (GetProjectInput): - project_id (int): Project ID

Returns: str: JSON with full project details.

aap_create_projectA

Create a new AAP project from a Git/SCM repository.

Example: "Create a new project called redis-automation from GitHub"

Args: params (CreateProjectInput): Project configuration.

Returns: str: JSON with created project id, name, and initial status.

aap_sync_projectB

Trigger an SCM sync (git pull) for an AAP project.

Args: params (SyncProjectInput): - project_id (int): Project ID to sync

Returns: str: JSON with project_update_id for status tracking.

aap_get_project_sync_statusA

Get the status of an ongoing or completed project SCM sync.

Args: params (GetSyncStatusInput): - update_id (int): Project update ID

Returns: str: JSON with status, elapsed time, and output preview.

aap_delete_projectA

Delete an AAP project. DESTRUCTIVE - requires confirmation.

Args: params (DeleteProjectInput): - project_id (int): Project ID - confirmation_token (Optional[str]): Token from first call

Returns: str: Confirmation prompt or success JSON.

aap_update_projectB

Update an AAP project (PATCH).

Args: params (UpdateProjectInput): Fields to update.

Returns: str: JSON with updated project id and name.

aap_list_inventoriesA

List AAP inventories.

Args: params (ListInventoriesInput): Pagination and filter options.

Returns: str: JSON with count and inventory list (id, name, description, total_hosts, groups_with_active_failures).

aap_create_inventoryA

Create a new AAP inventory.

Example: "Create an inventory called AWS-Production"

Args: params (CreateInventoryInput): Inventory configuration.

Returns: str: JSON with created inventory id and name.

aap_list_hostsA

List hosts in an AAP inventory.

Args: params (ListHostsInput): Pagination and filter options.

Returns: str: JSON with host list including id, name, inventory, enabled, variables.

aap_create_hostB

Add a host to an AAP inventory.

Example: "Add host web01.example.com to the Production inventory"

Args: params (CreateHostInput): Host configuration.

Returns: str: JSON with created host id and name.

aap_create_groupA

Create a host group inside an AAP inventory.

Args: params (CreateGroupInput): Group configuration.

Returns: str: JSON with created group id and name.

aap_add_host_to_groupA

Add an existing host to a group within an inventory.

Args: params (AddHostToGroupInput): - group_id (int): Target group ID - host_id (int): Host ID to add

Returns: str: JSON confirmation.

aap_remove_host_from_groupA

Remove a host from a group (disassociate, not delete the host).

Args: params (RemoveHostFromGroupInput): - group_id (int): Group ID - host_id (int): Host ID to remove

Returns: str: JSON confirmation.

aap_delete_inventoryA

Delete an AAP inventory. DESTRUCTIVE - requires confirmation.

Args: params (DeleteInventoryInput): - inventory_id (int): Inventory ID - confirmation_token (Optional[str]): Token from first call

Returns: str: Confirmation prompt or success JSON.

aap_update_inventoryA

Update an existing AAP inventory (PATCH).

Args: params (UpdateInventoryInput): Fields to update.

Returns: str: JSON with updated inventory id and name.

aap_update_hostB

Update an existing AAP host (PATCH).

Args: params (UpdateHostInput): Fields to update.

Returns: str: JSON with updated host id and name.

aap_delete_hostA

Delete a host from an AAP inventory. DESTRUCTIVE - requires confirmation.

Args: params (DeleteHostInput): - host_id (int): Host ID - confirmation_token (Optional[str]): Token from first call

aap_update_groupB

Update an existing AAP inventory group (PATCH).

Args: params (UpdateGroupInput): Fields to update.

Returns: str: JSON with updated group id and name.

aap_delete_groupA

Delete a host group from an AAP inventory. DESTRUCTIVE - requires confirmation.

Args: params (DeleteGroupInput): - group_id (int): Group ID - confirmation_token (Optional[str]): Token from first call

aap_list_credentialsA

List AAP credentials. Secrets are never returned by the API.

Args: params (ListCredsInput): Pagination and filter options.

Returns: str: JSON with credential list (id, name, kind, type_name, organization). Note: secret fields are always masked by AAP.

aap_get_credentialA

Get details of an AAP credential (secrets masked by AAP).

Args: params (GetCredInput): - credential_id (int): Credential ID

Returns: str: JSON with credential metadata. Secret fields shown as '$encrypted$'.

aap_create_credentialA

Create a new AAP credential.

Use aap_list_credential_types first to find the correct type ID and understand required inputs schema for that type.

Args: params (CreateCredInput): - name (str): Credential name - credential_type_id (int): Type ID - inputs (dict): Type-specific inputs (username, password, ssh_key_data, etc.) - organization_id (Optional[int]): Owner org - description (str): Optional description

Returns: str: JSON with created credential id and name.

aap_update_credentialB

Update an existing AAP credential (PATCH).

Args: params (UpdateCredInput): Fields to update.

Returns: str: JSON with updated credential id and name.

aap_delete_credentialA

Delete an AAP credential. DESTRUCTIVE - requires confirmation.

Args: params (DeleteCredInput): - credential_id (int): Credential ID - confirmation_token (Optional[str]): Token from first call

Returns: str: Confirmation prompt or success JSON.

aap_list_credential_typesA

List available AAP credential types (SSH, Vault, AWS, Azure, etc.).

Use the returned id when calling aap_create_credential.

Args: params (ListCredTypesInput): - managed (Optional[bool]): Filter built-in vs custom types

Returns: str: JSON with credential type list including id, name, kind, and injectors schema.

aap_create_credential_typeA

Create a custom AAP credential type with custom fields and injectors.

Args: params (CreateCredTypeInput): - name (str): Type name - kind (str): 'cloud', 'net', or 'ssh' - inputs (dict): Field schema definition - injectors (dict): Environment/extra_vars injection mapping

Returns: str: JSON with created credential type id and name.

aap_list_execution_environmentsA

List AAP execution environments (container images for job execution).

Returns: str: JSON with EE list including id, name, image, and managed status.

aap_create_execution_environmentA

Create an AAP execution environment referencing a container image.

Args: params (CreateEEInput): EE configuration.

Returns: str: JSON with created EE id and name.

aap_update_execution_environmentB

Update an existing AAP execution environment (PATCH).

Args: params (UpdateEEInput): Fields to update.

aap_delete_execution_environmentA

Delete an AAP execution environment. DESTRUCTIVE - requires confirmation.

aap_list_job_templatesA

List AAP job templates with optional filtering.

Args: params (ListJTInput): - page (int): Page number - page_size (int): Results per page - search (Optional[str]): Name substring filter - organization (Optional[int]): Filter by org ID - project (Optional[int]): Filter by project ID

Returns: str: JSON with count and results list. Each result has: id, name, description, project, inventory, playbook, ask_variables_on_launch, last_job_status, last_job_run

aap_get_job_templateA

Get full details of an AAP job template.

Args: params (GetJTInput): - template_id (int): Job template ID

Returns: str: JSON with full template details including credentials, labels, survey spec, extra_vars, verbosity, become_enabled, etc.

aap_create_job_templateA

Create a new AAP job template.

Example: Create a job template for Apache installation using a project and inventory, with become enabled and check mode disabled.

Args: params (CreateJTInput): Template configuration. See field descriptions.

Returns: str: JSON with created template id, name, and launch URL.

aap_launch_job_templateA

Launch an AAP job template and return the job ID.

Example: "Launch the Redis production workflow" or "Run the Apache installation template on web01.example.com"

Args: params (LaunchJTInput): - template_id (int): Job template ID - extra_vars (Optional[str]): Variables as JSON/YAML - inventory_id (Optional[int]): Override inventory - limit (Optional[str]): Host limit pattern - tags (Optional[str]): Ansible tags - skip_tags (Optional[str]): Tags to skip - verbosity (Optional[int]): Verbosity level - diff_mode (Optional[bool]): Show diffs

Returns: str: JSON with job id, status, url, and monitoring instructions.

aap_relaunch_jobA

Relaunch a completed or failed AAP job.

Args: params (RelaunchJobInput): - job_id (int): Job ID to relaunch - hosts (str): 'all' or 'failed' (retry only failed hosts)

Returns: str: JSON with new job_id and status.

aap_cancel_jobA

Cancel a running AAP job. Requires confirmation.

Args: params (CancelJobInput): - job_id (int): Job ID to cancel - confirmation_token (Optional[str]): Token from first call

Returns: str: Confirmation prompt or success JSON.

aap_delete_job_templateA

Delete an AAP job template. DESTRUCTIVE - requires confirmation.

Args: params (DeleteJTInput): - template_id (int): Template ID to delete - confirmation_token (Optional[str]): Token from first call

Returns: str: Confirmation prompt or success JSON.

aap_copy_job_templateA

Copy an existing job template with a new name.

Args: params (CopyJTInput): - template_id (int): Source template ID - name (str): Name for the copy

Returns: str: JSON with new template id and name.

aap_update_job_templateA

Update an existing AAP job template (PATCH).

Only fields provided will be changed.

Args: params (UpdateJTInput): Fields to update.

Returns: str: JSON with updated template id and name.

aap_list_workflow_templatesA

List AAP workflow job templates.

Args: params (ListWFTInput): Pagination and filter.

Returns: str: JSON with count and workflow template list.

aap_get_workflow_templateA

Get full details of an AAP workflow template including node structure.

Args: params (GetWFTInput): - workflow_id (int): Workflow template ID

Returns: str: JSON with workflow details and node count.

aap_create_workflow_templateA

Create a new AAP workflow template.

Example: "Create a workflow that provisions EC2 and configures Apache" Note: After creation, use the AAP UI or API to add workflow nodes.

Args: params (CreateWFTInput): Workflow template configuration.

Returns: str: JSON with created workflow id and name.

aap_launch_workflowA

Launch an AAP workflow template.

Example: "Launch the Redis production workflow"

Args: params (LaunchWorkflowInput): - workflow_id (int): Workflow template ID - extra_vars (Optional[str]): Variables to pass - limit (Optional[str]): Host limit

Returns: str: JSON with workflow job id, status, and monitoring tip.

aap_get_workflow_statusA

Get status of a running or completed workflow job including node results.

Args: params (GetWorkflowStatusInput): - workflow_job_id (int): Workflow job ID

Returns: str: JSON with workflow status, elapsed time, and per-node results.

aap_delete_workflow_templateA

Delete an AAP workflow template. DESTRUCTIVE - requires confirmation.

Args: params (DeleteWFTInput): - workflow_id (int): Workflow template ID - confirmation_token (Optional[str]): Token from first call

Returns: str: Confirmation prompt or success JSON.

aap_update_workflow_templateC

Update an existing AAP workflow template (PATCH).

Args: params (UpdateWFTInput): Fields to update.

Returns: str: JSON with updated workflow id and name.

aap_list_schedulesA

List AAP schedules for jobs and workflows.

Args: params (ListSchedulesInput): Pagination and filter options.

Returns: str: JSON with schedule list including rrule, next_run, and linked template.

aap_create_scheduleB

Create a schedule for an AAP job template or workflow.

Args: params (CreateScheduleInput): - name (str): Schedule name - unified_job_template_id (int): Template ID to schedule - rrule (str): RFC 5545 recurrence rule string - enabled (bool): Activate the schedule immediately - extra_vars (str): Variables for each scheduled run

Returns: str: JSON with created schedule id, name, and next_run.

aap_update_scheduleB

Update an existing AAP schedule (PATCH).

Args: params (UpdateScheduleInput): Fields to update.

Returns: str: JSON with updated schedule id, name, next_run.

aap_delete_scheduleA

Delete an AAP schedule. DESTRUCTIVE - requires confirmation.

Args: params (DeleteScheduleInput): - schedule_id (int): Schedule ID - confirmation_token (Optional[str]): Token from first call

aap_list_collectionsA

List Ansible collections in Automation Hub.

Note: Requires Automation Hub API access at /api/automation-hub/v3/

Args: params (ListCollectionsInput): Pagination and filter.

Returns: str: JSON with collection list.

aap_get_controller_healthA

Check AAP Controller health status (ping endpoint).

Returns: str: JSON with ha (bool), version, active_node, install_uuid, and instance statuses.

aap_get_cluster_statusA

Get AAP cluster node status, capacity, and health summary.

Returns: str: JSON with list of instances and their capacity/health.

aap_get_license_infoA

Get AAP subscription and license details.

Returns: str: JSON with license type, expiry, host count, and validity status.

aap_get_instance_capacityA

Get capacity and workload details for a specific AAP controller node.

Args: params (GetInstanceInput): - instance_id (int): Instance ID

Returns: str: JSON with capacity, consumed capacity, running jobs.

aap_list_instancesB

List all AAP controller and execution node instances.

Returns: str: JSON with list of instances.

aap_get_job_outputA

Fetch stdout/stderr output from an AAP job run.

Useful for troubleshooting failures or reviewing what a job did.

Args: params (GetJobOutputInput): - job_id (int): Job ID - format (str): 'txt' or 'json' - max_lines (int): Max output lines (default 200)

Returns: str: Job output text or JSON with status and truncated output.

aap_get_job_eventsA

Get structured events from an AAP job (tasks, roles, failures).

More granular than stdout - shows individual task results per host.

Args: params (GetJobEventsInput): - job_id (int): Job ID - event_type (Optional[str]): Filter by event type - page/page_size: Pagination

Returns: str: JSON with event list including host, task, result details.

aap_get_failed_jobsA

List failed AAP jobs within the last N hours.

Example: "Show failed jobs from the last 24 hours"

Args: params (GetFailedJobsInput): - hours (int): Look-back window in hours (default 24) - limit (int): Max results (default 20) - job_template (Optional[str]): Filter by template name

Returns: str: JSON with list of failed jobs including id, name, started, finished, elapsed, and template name.

aap_list_running_jobsA

List all currently running jobs in AAP.

Args: params (ListRunningJobsInput): - include_workflow_jobs (bool): Also show running workflow jobs

Returns: str: JSON with list of running jobs.

aap_get_recent_activityB

Get recent AAP activity stream (audit trail of changes).

Args: params (GetActivityInput): - limit (int): Number of events to return - operation (Optional[str]): Filter by CRUD operation - object_type (Optional[str]): Filter by resource type - username (Optional[str]): Filter by actor username

Returns: str: JSON with activity events.

aap_get_audit_logsA

Get AAP audit logs (alias for activity stream with delete/create focus).

Args: params (GetAuditLogsInput): - limit (int): Number of log entries - username (Optional[str]): Filter by actor

Returns: str: JSON with audit log entries.

aap_export_projectA

Export an AAP project as Configuration-as-Code (infra.aap_configuration format).

Args: params (ExportProjectInput): - project_id (int): Project ID - format (str): 'yaml' or 'json'

Returns: str: YAML/JSON suitable for aap_configuration collection playbooks.

aap_export_job_templateA

Export a job template as Configuration-as-Code YAML.

Args: params (ExportJobTemplateInput): - template_id (int): Template ID - format (str): 'yaml' or 'json'

Returns: str: YAML compatible with infra.aap_configuration.controller_job_templates.

aap_export_workflowA

Export a workflow template as Configuration-as-Code YAML.

Args: params (ExportWorkflowInput): - workflow_id (int): Workflow template ID - format (str): 'yaml' or 'json'

Returns: str: YAML compatible with infra.aap_configuration.controller_workflows.

aap_export_inventoryA

Export an AAP inventory as Configuration-as-Code YAML.

Args: params (ExportInventoryInput): - inventory_id (int): Inventory ID - include_hosts (bool): Include host entries - format (str): 'yaml' or 'json'

Returns: str: YAML for infra.aap_configuration.controller_inventories.

aap_export_all_resourcesA

Export all AAP resources (projects, inventories, job templates, workflows) as Configuration-as-Code.

Example: "Export all job templates as code"

This produces a single YAML document compatible with the infra.aap_configuration Ansible collection.

Args: params (ExportAllInput): - organization_id (Optional[int]): Scope exports to one org - format (str): 'yaml' or 'json'

Returns: str: Combined YAML/JSON export of all resources.

Prompts

Interactive templates invoked by user choice

NameDescription
aap_deploy_projectPrompt to create a project and set up a job template from GitHub.
aap_troubleshoot_failuresPrompt to investigate failed jobs and summarize root causes.
aap_cluster_health_checkPrompt for a comprehensive AAP cluster health report.
aap_export_as_codePrompt to export all AAP resources as Configuration-as-Code.
aap_new_inventory_setupPrompt to create and populate a new inventory.
aap_launch_and_monitorPrompt to find, launch, and monitor a job template.

Resources

Contextual data attached and managed by the client

NameDescription
get_api_mapComplete MCP Tool → AAP REST API mapping reference.

Latest Blog Posts

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/srinivassrinu842/aap-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server