Describes how to connect multiple MCP clients (MCP-aware agents) to the Automation Anywhere Control Room.

Important: This feature is not generally available and is restricted to specific customers. Contact your Automation Anywhere account team for more information.

With the Agent Interoperability feature, you can connect multiple MCP clients to the Automation Anywhere Control Room so that:

  • For example, the following MCP clients can search, think, and direct tasks:
    • Microsoft Copilot
    • Anthropic Claude
    • OpenAI
    • ENTKB (Enterprise KB)
    Note: Each MCP client might support different MCP features, allowing for varying levels of integration with MCP servers. For a comprehensive list of supported MCP clients and latest features, click Feature support matrix

    The following table describes the goals and a typical setup for each MCP client:

    MCP client Goal Typical setup
    MS Copilot Let Copilot (Teams/Office) send intents to the Automation Anywhere Control Room using route, and start bots using invoke.
    • Register the MCP endpoint in your Copilot extensibility layer (such as through your Copilot Studio plugin or connector that uses MCP).
    • Map Copilot intents, such as “process invoices” or “create case”, to automation.trigger.
    • Add user identity or tenant in context for policy and audit purposes.
    Anthropic Claude Use Claude for thinking and content, but let the Automation Anywhere Control Room handle the automation.
    • Install the Claude MCP client or your in-house bridge.
    • Default authoring intents to Claude (content.draft), automation to AACR (automation.trigger).
    OpenAI Use OpenAI for RAG, writing, and tools while the Automation Anywhere Control Room manages enterprise automations.
    • Register the Automation Anywhere Control Room as an MCP tool or client.
    • Route kb.search fallback to OpenAI if ENTKB does not find anything.
    • Use tool.use with OpenAI for things such as simple utilities, and use bot-execution with the Automation Anywhere Control Room.
    ENTKB Preferred knowledge source for reliable answers.
    • First, direct kb.search to ENTKB and make sure to give credit to the source.
    • If there is no result or the confidence is low, then switch to LLM (OpenAI/Claude).
  • Inbound automation triggering can start enterprise automations (bots) and workflows directly from any MCP client.

  • The Control Room centrally manages invoking, routing, and observing flows with audit logging.

The following procedure includes these components:
  • Agents (clients): These might include MS Copilot, Claude, OpenAI, or ENTKB.
  • Orchestrator (server-side MCP client): This is the Automation Anywhere Control Room (AACR).
  • Core MCP endpoints (AACR):

    • invoke: This starts automations, bots and tools.
    • route: This maps intents to the right client or tool. Align bot permissions with agent identity and honor tenant/department boundaries via policies.
    • observe: This tracks job status and streams events or logs.
  • Security: OAuth2 access tokens are scoped for mcp.invoke, mcp.route, and mcp.observe and grant the least privilege per client.
  • Audit: All calls create audit events for compliance and debugging.

Procedure

  1. Create and save a starter MCP JSON manifest file, for example Automation Anywhere Control Room (AACR) Client (aacr-client.json).
    {
      "id": "client.aacr.controlroom",
      "name": "Automation Anywhere Control Room",
      "description": "MCP-aware orchestrator for bot execution, agent routing, and enterprise automation",
      "endpoints": {
        "invoke": "https://controlroom.automationanywhere.com/api/mcp/invoke",
        "route": "https://controlroom.automationanywhere.com/api/mcp/route",
        "observe": "https://controlroom.automationanywhere.com/api/mcp/observe"
      },
      "capabilities": [
        "bot-execution",
        "agent-routing",
        "rag-orchestration",
        "workflow-trigger",
        "tool-use",
        "audit-log"
      ],
      "schema": "https://modelcontextprotocol.io/schema/v1",
      "auth": {
        "type": "oauth2",
        "token_url": "https://controlroom.automationanywhere.com/oauth/token",
        "scopes": ["mcp.invoke", "mcp.route", "mcp.observe"]
      },
      "metadata": {
        "region": "us-central",
        "version": "v25.11",
        "vendor": "Automation Anywhere"
      }
    }
    
  2. To begin creating the client, register the manifest by uploading aacr-client.json to your MCP registry.
  3. Configure OAuth by creating a confidential client/app, and setting the token URL and scopes:
    • mcp.invoke: Allows bot and workflows to start and use the tool.
    • mcp.route: Allows intent routing.
    • mcp.observe: Allows job and stream observation.
  4. Define routing rules: Map intents to target clients and tools. For example, you can create a simple routing map (routing-rules.json):
    {
      "version": "1.0",
      "default_client": "client.aacr.controlroom",
      "intents": {
        "kb.search":        { "route_to": "client.entkb", "fallback": "client.openai" },
        "content.draft":    { "route_to": "client.openai", "alternates": ["client.claude"] },
        "ms365.action":     { "route_to": "client.ms.copilot" },
        "automation.trigger": { "route_to": "client.aacr.controlroom", "action": "start_bot" },
        "automation.status":  { "route_to": "client.aacr.controlroom", "action": "observe_job" },
        "handoff.human":      { "route_to": "client.aacr.controlroom", "action": "agent_handoff" },
        "tool.use":           { "route_to": "client.openai" }
      },
      "clients": {
        "client.ms.copilot":          { "type": "mcp", "id": "client.ms.copilot" },
        "client.claude":              { "type": "mcp", "id": "client.anthropic.claude" },
        "client.openai":              { "type": "mcp", "id": "client.openai" },
        "client.entkb":               { "type": "mcp", "id": "client.entkb" },
        "client.aacr.controlroom":    { "type": "mcp", "id": "client.aacr.controlroom" }
      }
    }
    
  5. Test endpoints: Validate invoke, route, and observe with sample payloads. All requests require Authorization: Bearer <access_token> using your OAuth2 token exchange. For example:
    Invoke an automation: POST /api/mcp/invoke
    {
      "action": "start_bot",
      "bot_id": "BOT-12345",
      "input": { "customerId": "ACME-001", "priority": "high" },
      "correlation_id": "cor-{{uuid}}"
    }
    
    Route an utterance: POST /api/mcp/route
    {
      "action": "start_bot",
      "bot_id": "BOT-12345",
      "input": { "customerId": "ACME-001", "priority": "high" },
      "correlation_id": "cor-{{uuid}}"
    }
    
    Observe a job: POST /api/mcp/observe
    {
      "correlation_id": "cor-{{uuid}}",
      "watch": true
    }
    
  6. Enable audit logging: Turn on event capture for compliance and debugging. Enable event streaming to your SIEM.