Control-M MCP Server

Control-M MCP Server is a standards-based interface that enables AI agents and AI assistants to securely interact with Control-M workflows and automation services. It is built on the Model Context Protocol (MCP) and allows AI systems to dynamically discover Control-M capabilities and execute actions, such as trigger jobs, check workflow status, and investigate failures. For more information, see Job Management in the Control-M Automation API documentation.

Control-M MCP Server lets you utilize your own corporate AI tools and models. You can connect the Control-M MCP Server to a central tool registry or MCP gateway, together with other MCP servers. This allows you to combine different tools into a single solution. For example, you can create a single AI prompt that uses multiple MCP servers. The AI agent queries and operates the different tools to support specific business requirements and automate workflows.

Control-M MCP Server supports elicitation, which prompts the user to confirm an action before it is executed. If you want to generate a confirmation request before you perform a Control-M action, your AI assistant must also support elicitation. Authorization to perform actions is defined in the User and Role Authorizations.

Control-M MCP Server can connect to a maximum of five AI assistants in parallel and support up to 60 requests per minute.

Control-M MCP Server does not run Forecast jobs.

Control-M MCP Server is a Preview feature. Preview features enable you to provide early feedback on new ideas. You can raise Support cases for Preview features at Impact Level 3 and 4. Preview feature functionality might be modified in the future. BMC recommends that you utilize this feature in non-production environments.

Connecting AI Assistants to Control-M MCP Server

This procedure describes how to connect third-party AI assistants to Control-M MCP Server.

Before You Begin

  • Verify that you have Control-M Automation API 9.0.22.110 installed on Control-M/EM, as described in Control-M Automation API Installation. If you have a distributed environment, verify that Control-M Automation API 9.0.22.110 is installed on each Control-M/EM server.

  • Verify that your AI assistant supports elicitation if you want to generate a confirmation request before you perform an action.

Begin

  1. From the Control-M/EM server, navigate to the following path:

    • UNIX: $HOME/ctm_em/etc/emweb/automation-api/automation-api.properties

    • Windows: %EM_HOME%\emweb\automation-api\automation-api.properties

  2. In the automation-api.properties file, change the value of the mcp.server.enabled parameter to the following:

    mcp.server.enabled=true

  3. Stop the Control-M Automation API server with the following command:

    emrestsrv stop

    The server starts automatically.

  4. On your third-party AI assistant, add Control-M MCP Server with the settings, as described in Control-M MCP Server Settings.

    The configuration process to add an MCP server varies according to the AI assistant vendor.

    This generates a JSON file with the configured settings on your AI assistant.

    • Claude Desktop

    • Visual Studio

    • Cursor

    The following JSON is an example of the Control-M MCP Server configuration with an API token in Claude Desktop:

    Copy
    "controlm": {
       "command": "C:\\PROGRA~1\\nodejs\\npx.cmd",
       "args": [
          "-y", "mcp-remote",
           "https://aapidomain:port/automation-api/mcp/stream",
           "--header", "x-api-key: APIkey123"
          ]
    }

    If you copy the example for Claude Desktop, verify the following:

    • Node.js is installed on you AI assistant.

    • The command parameter value must not contain spaces. For example: C:\\Program Files\\nodjs\\npmx.cmd must be C:\\PROGRA~1\\nodejs\\npx.cmd

    The following JSON is an example of the Control-M MCP Server configuration with an API token in Visual Studio code:

    Copy
    "controlm": {
        "url": "https://aapidomain:port/automation-api/mcp/stream",
        "type": "http",
        "headers": {
           "x-api-key": "APIkey123"
         }
    }

    The following JSON is an example of the Control-M MCP Server configuration with an API token in Cursor with stateless HTTP:

    Copy
    "controlm": {
       "url": "https://aapidomain:port/automation-api/mcp/message",
       "type": "http",
       "headers": {
          "Content-Type": "application/json",
          "Accept": "application/json, text/event-stream",
          "x-api-key": "APIkey123"
       }
    }

    If you utilize stateless HTTP in Cursor, you must add the following parameters in the headers:

    "Content-Type": "application/json"

    "Accept": "application/json"

  5. Verify in the AI assistant that Control-M MCP Server is connected. A list of MCP tools appears when it is connected.

  6. Type your prompt in the AI assistant. For prompt examples, see Control-M MCP Server Prompt Examples

Control-M MCP Server Settings

The following table describes the Control-M MCP Server settings.

Parameter

Description

url

Defines the URL of the Control-M MCP Server that you want to connect to the AI assistant in one of the following formats:

  • Streamable HTTP: https://<Control-M/EM domain:port>/automation-api/mcp/stream

  • Stateless HTTP: https://<Control-M/EM domain:port>/automation-api/mcp/message

type

Determines the server type, which must be a remote HTTP server that implements the MCP protocol.

Valid Value: HTTP

headers > x-api-key

Defines an API token to grant access permissions to specific roles for a period that you can pre-define.

You can create an API token with the authentication token::create API call or in Control-M Web, as described in Creating an API Token. You must include this API token in the HTTPS header of subsequent API calls in the following format:

x-api-key: <token>

x-api-key: E14A4F8E45406977B31A1B091E5E04237D81AEFE63ADE182E5702F5A9131A2DA0A8E8AE76D7C3CCBA0B7

Control-M MCP Server Prompt Examples

The following table describes various types of prompt examples.

Prompt Type

Examples

Job status

  • What is the current status of the "Daily_Billing_Report" job?

  • Show me all jobs that failed in the last 2 hours.

  • Are there any jobs currently running in the PROD environment?

  • Which jobs ended not-OK today?

Logs and output

  • Show me the log for the last run of the "ETL_Load_Customers" job.

  • What was the output of "File_Transfer_EU" job that ran this morning?

  • Why did the "Archive_Orders" job fail? Show me the relevant log lines.

Job actions

  • Rerun the "Daily_Billing_Report" job.

  • Hold the "Nightly_Backup" job until further notice.

  • Release the "ETL_Load_Customers" job so it can run.

  • Set the "Archive_Orders" job to OK.