Conductor MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| CONDUCTOR_AUTH_KEY | Yes | Your application auth key | |
| CONDUCTOR_SERVER_URL | Yes | The URL of the Conductor server (including /api) | |
| CONDUCTOR_AUTH_SECRET | Yes | Your application secret key |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| workflow_create_workflow_definitionA | Creates a workflow definition from the provided workflow_definition dict param. These are the main constructs that should be considered:
In order to access workflow variables in javascript functions, they must first be assigned a value via inputParameters, for example: if there's a task named "analyze_market_data" then to access its output in javascript you need to create an inputParameter to assign it a value that can be used: "inputParameters": { "marketData": "${analyze_market_data.output}" } Then the "${analyze_market_data.output}" value can be accessed in javascript as "marketData" like so: "(function () {\n console.log("Market Data: " + $.marketData);\n})();" In switch cases, an expression field must be defined using the same input method as above. You can construct the expression field like this: "inputParameters": { "marketData": "${analyze_market_data.output}" } "expression": "(function () {\n $.marketData.includes("NASDAQ");\n})();" Here are some examples to help: ## Example of a switch task to run conditional tasks { "name": "switch_case_example", "description": "switch_case_example", "version": 1, "tasks": [ { "name": "switch", "taskReferenceName": "switch_ref", "inputParameters": { "switchCaseValue": "${workflow.input.case_param}" }, "type": "SWITCH", "decisionCases": { "case_a": [ { "name": "simple_1", "taskReferenceName": "simple_ref_1", "type": "SIMPLE" } ], "case_b": [ { "name": "simple", "taskReferenceName": "simple_ref", "type": "SIMPLE" } ] }, "defaultCase": [ { "name": "simple_2", "taskReferenceName": "simple_ref_2", "type": "SIMPLE" } ], "evaluatorType": "value-param" } ] } Args: workflow_definition: A nested dictionary representing a workflow definition |
| workflow_query_workflow_executionsA | Search for workflow (executions) based on payload and other parameters. The query parameter accepts exact matches using = and AND operators on the following fields: workflowId, correlationId, workflowType, and status. Matches using = can be written as taskType = HTTP. Matches using IN are written as status IN (SCHEDULED, IN_PROGRESS). The 'startTime' and 'modifiedTime' field uses unix timestamps and accepts queries using < and >, for example startTime < 1696143600000. Queries can be combined using AND, for example taskType = HTTP AND status = SCHEDULED If no query kwargs are provided, all workflow executions will be returned. Example call to this function to query for a status of FAILED and start time after Thu May 01 2025 22:20:59 GMT+0000: query_workflow_executions('status="FAILED" AND startTime > 1746138025 ') Searching for a range of time does not work, i.e. "startTime > 0 AND startTime < 1746138025" Example call for FAILED or COMPLETED status and workflow named "SimpleWorkflow": query_workflow_executions('status IN (FAILED, COMPLETED) AND workflowType="SimpleWorkflow"') Args: query: A query string, utilizing any of the following fields. workflowId: The id of a workflow execution. correlationId: The correlationId used to create any workflow executions. workflowType: Synonymous with workflow name. createTime: The creation unix timestamp of a workflow. startTime: The start unix timestamp of a workflow. status: The status of a workflow execution. One of [RUNNING, PAUSED, COMPLETED, TIMED_OUT, TERMINATED, FAILED]. endTime: The end unix timestamp of a workflow. |
| workflow_get_workflow_by_idB | Gets a conductor workflow execution in json format based on the workflow's execution id Args: workflow_id: The uuid representing the execution of the workflow |
| workflow_start_workflow_by_nameA | Starts a new execution of a conductor workflow by its name Args: workflow_name: The name of the workflow definition to create a new execution for correlation_id: An integer used as unique identifier for the workflow execution, used to correlate the current workflow instance with other workflows. priority: A number starting at 0 representing the priority of the execution of the workflow. Lower numbers mean higher priority. idempotency_key: An arbitrary, user-provided string used to ensure idempotency when calling this endpoint multiple times. idempotency_strategy: A string representing one of the following three strategies: RETURN_EXISTING: Return the workflowId of the workflow instance with the same idempotency key. FAIL: Start a new workflow instance only if there are no workflow executions with the same idempotency key. FAIL_ON_RUNNING: Start a new workflow instance only if there are no RUNNING or PAUSED workflows with the same idempotency key. Completed workflows can run again. data: A dictionary containing any arguments to pass into the workflow for creation |
| workflow_get_workflow_by_nameB | Gets the metadata for a conductor workflow in json format based on that workflow's name Args: workflow_name: The name of the workflow |
| workflow_get_all_workflowsA | Gets a short description of all existing conductor workflows. |
| workflow_pause_workflowA | Pauses a running workflow execution. The workflow will pause and can be resumed later. Args: workflow_id: The uuid representing the execution of the workflow to pause |
| workflow_resume_workflowA | Resumes a paused workflow execution. The workflow will continue from where it was paused. Args: workflow_id: The uuid representing the execution of the workflow to resume |
| workflow_terminate_workflowA | Terminates a workflow execution. This will stop the workflow and mark it as terminated. Args: workflow_id: The uuid representing the execution of the workflow to terminate reason: Optional reason for termination |
| workflow_restart_workflowA | Restarts a workflow execution from the beginning. This creates a new execution with the same input. Args: workflow_id: The uuid representing the execution of the workflow to restart use_latest_definitions: If True, use the latest workflow definition instead of the original version |
| workflow_retry_workflowB | Retries a failed workflow execution from the last failed task. Args: workflow_id: The uuid representing the execution of the workflow to retry resume_subworkflow_tasks: If True, resume any subworkflow tasks that were running |
| task_get_task_by_idA | Gets the metadata for a conductor workflow task in json format based on that task's id Args: task_id: The uuid representing the task id |
| task_get_task_queue_detailsA | Gets the current status details for all conductor workflow task queues |
| task_get_all_task_definitionsA | Gets all task definitions |
| task_get_task_definition_for_tasktypeA | Gets the task definition for the given taskType. Args: taskType: The string representing the desired tasks' taskType |
| task_get_task_logsA | Gets execution logs for a specific task. Returns log entries generated during task execution. Args: task_id: The uuid representing the task execution id |
| task_update_task_statusA | Updates the status of a task execution. This is typically used by workers to update task status. Args: task_id: The uuid representing the task execution id workflow_instance_id: The uuid representing the workflow instance id status: New task status (IN_PROGRESS, FAILED, FAILED_WITH_TERMINAL_ERROR, COMPLETED) output_data: Optional dictionary containing task output data logs: Optional list of log entries for the task |
| task_create_task_definitionA | Creates or updates a task definition. The task definition should include at minimum:
Example task definition: { "name": "my_custom_task", "description": "A custom task that processes data", "retryCount": 3, "timeoutSeconds": 300, "responseTimeoutSeconds": 180, "inputKeys": ["input1", "input2"], "outputKeys": ["result"] } Args: task_definition: A dictionary containing the task definition |
| event_get_event_handlersA | Gets all event handlers or filters by event name and active status. Event handlers define how Conductor responds to external events. They can trigger workflow executions or perform other actions when specific events occur. Args: event: Optional event name to filter by active_only: If True, return only active event handlers (default: True) |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| prompt_troubleshoot_workflow | Troubleshoot a failed or stuck workflow. Args: workflow_id: The workflow execution ID to troubleshoot |
| prompt_analyze_failures | Analyze recent workflow failures and identify patterns. Args: workflow_name: Optional workflow name to filter by hours: Number of hours to look back (default: 24) |
| prompt_create_workflow | Guide to create a new workflow definition. Args: workflow_name: Name for the new workflow description: Description of what the workflow does |
| prompt_monitor_workflow | Monitor a running workflow execution. Args: workflow_id: The workflow execution ID to monitor |
| prompt_optimize_workflow | Analyze a workflow for optimization opportunities. Args: workflow_name: Name of the workflow to optimize |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| resource_get_workflow_definitions | List of all registered workflow definitions in Conductor. Returns metadata about all workflows registered in Conductor, including workflow names, versions, descriptions, and task configurations. |
| resource_get_task_definitions | List of all registered task definitions in Conductor. Returns metadata about all tasks registered in Conductor, including task names, descriptions, retry policies, and timeout configurations. |
| resource_get_running_workflows | List of currently running workflow executions. Returns workflow executions that are currently in RUNNING status, including workflow IDs, names, start times, and current progress. |
| resource_get_failed_workflows | List of recently failed workflow executions. Returns workflow executions that have failed, including workflow IDs, names, failure reasons, and failed task information. |
| resource_get_paused_workflows | List of currently paused workflow executions. Returns workflow executions that are currently in PAUSED status, including workflow IDs, names, and pause timestamps. |
| resource_get_task_queue_status | Current status of all task queues. Returns the current queue status for all task types, including the number of pending tasks in each queue. |
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/conductor-oss/conductor-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server