MCP tool reference

Every tool exposed by the Flux MCP server — name, parameters, return shape, and corresponding Flux REST endpoint.

Tools are registered in flux/mcp_server.py inside MCPServer._setup_tools. Each is a single async function decorated with @self.mcp.tool() and forwards to a Flux REST endpoint via the shared httpx.AsyncClient. Tool arguments are JSON; return values are JSON dicts. Most tools return {"success": true, ...} on the happy path and {"success": false, "error": "..."} on failure. A few — execute_workflow_sync, execute_workflow_async, resume_workflow_*, get_execution_status, get_execution — return either the full ExecutionContext dict or its summary() shape depending on the detailed argument.

For the overall process model and how to start the MCP server, see MCP server overview. Per-workflow MCP tools (with bespoke names and schemas) are produced by flux service create --mcp, not by this server.

Conventions used below

Workflow management

list_workflows

List every workflow registered on the Flux server.

list_namespaces

List all workflow namespaces with their workflow counts.

get_workflow_details

Fetch one workflow’s metadata, including its input schema (if the workflow declares a Pydantic input type).

list_workflow_versions

List every registered version of a workflow.

get_workflow_version

Get details of a specific workflow version.

upload_workflow

Upload and register a new workflow file by sending its source as a multipart form field. The server parses the file and registers every @workflow it finds.

delete_workflow

Delete a workflow. If version is omitted, every version is removed.

Workflow execution

execute_workflow_async

Start an execution and return immediately. The MCP client then polls via get_execution_status.

execute_workflow_sync

Start an execution and wait for it to reach a terminal state. The MCP server uses a 300-second HTTP timeout for this call.

resume_workflow_async

Resume a paused execution by id without waiting.

resume_workflow_sync

Resume a paused execution and wait for it to reach a terminal state. 300-second HTTP timeout.

cancel_execution

Cancel an in-flight execution.

Execution monitoring

get_execution_status

Fetch status of an execution by id, scoped under a workflow name.

list_executions

List executions across the server, with optional filters.

get_execution

Get one execution by id alone (no workflow name required).

list_workflow_executions

List executions scoped to a single workflow.

Workers

list_workers

List every worker known to the server.

get_worker

Get one worker by name.

Schedules

create_schedule

Create a schedule for a workflow.

list_schedules

List schedules with optional filtering.

get_schedule

Get one schedule by id or name.

update_schedule

Update an existing schedule. At least one of schedule_config, description, input_data must be supplied or the tool returns an error.

pause_schedule

Pause an active schedule.

resume_schedule

Resume a paused schedule.

delete_schedule

Delete a schedule.

get_schedule_history

Fetch execution history for a schedule.

Health

health_check

Check the Flux server’s /health endpoint.

Custom tools