自动化控制室服务器

Automation Anywhere Control Room的开源MCP服务器,用于连接Claude Code以触发机器人、检查运行历史和查询WLM队列。

  • by VankProgrammingAndDesign
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 VankProgrammingAndDesign/aa-mcp-server

使用说明

Automation Anywhere Control Room MCP Server

The first open-source MCP server for Automation Anywhere Control Room. Connect Claude Code directly to your Control Room to trigger bots, inspect run history, and query WLM queues.

Note: Automation Anywhere released native inbound MCP support in v38 (their platform receives connections from external agents). This server is the reverse: it exposes Control Room as an MCP tool server so Claude and other MCP clients can drive it directly.

Prerequisites

  • Claude Code installed — the primary way to install and run this server. See that guide for Claude Code setup; this README does not cover it.
  • Python 3.11+
  • For the Control Room tools only: Automation Anywhere Control Room with API access enabled, and a service account with:
    • "Run my bots" privilege
    • Bot Runner license
    • AAE_Queue Admin role (for WLM tools)
    • Your API key: Control Room > Settings > Profile > API Key

The Bot Package Analysis and UiPath Migration tools need none of the Automation Anywhere items above — see Setup without a Control Room.

Installation

git clone https://github.com/VankProgrammingAndDesign/aa-mcp-server.git
cd aa-mcp-server
python3 -m venv .venv
source .venv/bin/activate
pip install -e .

Configuration

cp .env.example .env

Edit .env:

AA_CONTROL_ROOM_URL=https://your-tenant.automationanywhere.digital
AA_USERNAME=your.username@company.com
AA_API_KEY=your-40-character-api-key

Setup without a Control Room (offline / analysis-only)

The Bot Package Analysis and UiPath Migration tools run entirely on local A360 export ZIPs — no Control Room connection, credentials, or network. If that's all you need, skip real credentials.

Just omit the AA_* credentials — the server starts without them:

claude mcp add --scope user automation-anywhere \
  -- /path/to/aa-mcp-server/.venv/bin/aa-mcp-server

(Or ask Claude Code to register it with no credentials.) The Control Room tools (list_bots, deploy_bot, queues, run history) return a clear "credentials not configured" error until you set AA_CONTROL_ROOM_URL, AA_USERNAME, and AA_API_KEY; the analysis and migration tools work regardless.

Connect to Claude Code

Claude Code is the primary way to install and run this server. Install Claude Code first if you haven't — see the Claude Code installation guide (this README does not cover installing Claude Code itself).

Recommended: ask Claude Code to register it

After cloning and installing (above), open a Claude Code session and paste this prompt, filling in your values. Use the absolute path to your cloned repo.

Add the aa-mcp-server MCP to my Claude Code config:
- Server binary: /path/to/aa-mcp-server/.venv/bin/aa-mcp-server
- AA_CONTROL_ROOM_URL: https://your-tenant.automationanywhere.digital
- AA_USERNAME: your.username@company.com
- AA_API_KEY: your-40-character-api-key
Register it as "automation-anywhere" with --scope user.

Claude Code runs claude mcp add for you. Full walkthrough: CLAUDE-CODE-INSTALL.md.

Manual: run the command yourself

Replace /path/to/aa-mcp-server with the absolute path to your cloned repository.

claude mcp add --scope user automation-anywhere \
  --env AA_CONTROL_ROOM_URL=https://your-tenant.automationanywhere.digital \
  --env AA_USERNAME=your.username@company.com \
  --env AA_API_KEY=your-40-character-api-key \
  -- /path/to/aa-mcp-server/.venv/bin/aa-mcp-server

--scope user writes to ~/.claude.json, making the server available across all your Claude Code projects.

Verify

Open a Claude Code session and run /mcp. You should see automation-anywhere listed as connected.

Manual configuration

Add the following to ~/.claude.json (user-level) or .mcp.json in your project root (project-level):

{
  "mcpServers": {
    "automation-anywhere": {
      "command": "/path/to/aa-mcp-server/.venv/bin/aa-mcp-server",
      "env": {
        "AA_CONTROL_ROOM_URL": "https://your-tenant.automationanywhere.digital",
        "AA_USERNAME": "your.username@company.com",
        "AA_API_KEY": "your-40-character-api-key"
      }
    }
  }
}

See CLAUDE-CODE-INSTALL.md for a Claude Code-specific walkthrough, or INSTALL.md for the full guide.

Available Tools

Control Room

Tool Description
list_bots List available bots, with optional name filter
list_devices List bot runner devices and their status
deploy_bot Trigger a bot on a specific device
list_running_automations See what is running right now
list_run_history Query past runs by bot name, status, or date range
list_queues List WLM queues with item counts by status
get_queue_detail Get work items from a specific queue

Bot Package Analysis

These tools parse local A360 export ZIP files. No Control Room connection required.

Tool Description
load_bot_package Load an A360 export ZIP and return bot names, packages in use, and file counts. Call this first.
list_bot_actions List all actions in a bot in execution order, with depth, package, command, and subtask paths
get_bot_variables Get all variables defined in a bot with types, scope, and default values
get_bot_structure Get the full nested action hierarchy including attributes and error handler branches
search_bot_actions Search all bots in a package for actions matching a package or command name

UiPath Migration

Convert AA bots to UiPath project templates. No Control Room connection required. The output is a working starting point — mapped steps get real WF4 activities, unmapped steps become [PARTIAL] or [TODO] Sequence placeholders that are visible and labelled in Studio.

Tool Description
summarize_bot_process Parse an AA bot and return variable mappings with UiPath types, step-by-step activity mappings with status, sub-bots called, external systems, NuGet requirements, and coverage stats. Call this before generating to inspect the mapping.
generate_uipath_template Convert an AA bot to a complete UiPath project folder (project.json + XAML files) ready to open in Studio. Sub-bots present in the ZIP get full workflows; missing ones get stub files.
validate_uipath_project Validate a generated project folder without UiPath Studio. Checks XML well-formedness, project.json completeness, and all InvokeWorkflowFile references. Run immediately after generate_uipath_template.

UiPath output is experimental. It passes the structural validator but has not been confirmed in a live UiPath Studio/robot. Validation tasks are tracked in docs/UIPATH_VALIDATION.md and the uipath-validation issues.

Example Prompts

Trigger a bot:

"Run the invoice processor bot on RUNNER-PC-01"

Claude calls list_bots to find the bot ID, list_devices to find the device ID, then calls deploy_bot.

Check what is running:

"What automations are running right now?"

Investigate failures:

"Show me failed runs from the last 7 days" "What failed in the invoice queue today?"

Queue reporting:

"Give me a status summary of all WLM queues" "Show me the failed items in the AP Processing queue"

Analyze a bot package:

"Load the bot package at /path/to/Export.zip and summarize the overall process" "What subtasks does MasterBot call, and in what order?" "What are the input and output variables for SubTask_Login?" "Show me all the FTP upload actions across every bot in this package" "Walk me through the error handling structure in this bot"

Convert to UiPath:

"Summarize MasterTask for UiPath migration" "Generate a UiPath template from MasterTask and write it to ~/Desktop/uipath-output" "What steps will need manual work after conversion?"

Environment Variables

Variable Required Default Description
AA_CONTROL_ROOM_URL Control Room tools only — Base URL, no trailing slash
AA_USERNAME Control Room tools only — Service account username
AA_API_KEY Control Room tools only — 40-character API key
AA_TOKEN_REFRESH_BUFFER_SECONDS No 60 Seconds before expiry to refresh token
AA_HTTP_TIMEOUT_SECONDS No 30 Request timeout in seconds
AA_SSL_VERIFY No true Set to false for self-signed certificates
AA_LOG_LEVEL No WARNING Set to DEBUG to log request URLs and response codes to stderr

Troubleshooting

401 errors when calling a Control Room tool: Check that AA_API_KEY is correct and API access is enabled in Control Room settings.

Bot not found: Call list_bots with no filter to see all available bots, then match the exact name.

deploy_bot returns 400: run_as_user_id must be the numeric user ID for the device's credential mapping. Find it in Control Room > Devices.

WLM tools return a permission error: The service account needs the AAE_Queue Admin role. Add it in Control Room > Roles.

SSL certificate errors: Set AA_SSL_VERIFY=false in .env or pass --env AA_SSL_VERIFY=false to the claude mcp add command. Use this only on internal networks where you control the server.

Enable debug logging: Set AA_LOG_LEVEL=DEBUG to log all request URLs and response codes to stderr.

License

MIT