Capabilities
- Dynamic tool discovery: Each flow model is shown as multiple MCP tools for synchronous execution, asynchronous execution, and status queries.
- Resilient session management: Multi‑session design supports reconnection and cleanup.
- Flexible execution: Synchronous (wait for completion) and asynchronous (claim‑check) patterns.
- Protocol compliance: MCP over Streamable HTTP transport.
- Security: User‑based authorization for all operations.
Overview
- Tool discovery: Dynamic registration of tools per flow model (synchronous, asynchronous, query) and management tools.
- Management tools: subscribe_flow, replay_flow_pending_elicitation, submit_flow_elicitation, list_flows, cancel_flow.
Tool registration
The Flow MCP server provides three tools per flow model to support distinct execution patterns. Draft and versioned models obtain separate tools. Naming convention:- Draft (latest):
run_flow_<model_name> - Specific version:
run_flow_<model_name>_<version>
json
Tool 1 Synchronous flow execution (run_flow__<model_name>)
Runs a flow and waits for completion or interruption:
json
Behavior
- Runs to completion or returns on user input.
- Always returns status; includes output only on successful completion with results.
- Elicitations are issued automatically when user input is required.
json
json
Tool 2 Asynchronous flow execution (run_flow_async__<model_name>)
Starts a flow and returns immediately with an instance_id (claim‑check pattern).
Specification:
json
Behavior
- Starts execution in the background and returns instance_id.
- Elicitations are issued when user input is required.
- Clients query status through
query_flow__<model_name>.
json
Tool 3 Flow status query (query_flow__<model_name>)
Retrieves the status and output (if available) for a flow instance.
Specification:
json
- Output is present only when the flow completes with results.
- Status is always present and includes execution metadata.
Context Parameters
An optional _context object is available for callers to pass in more context, for example,thread_id, environment_id, channel_id, agent_id, agent_version. For the moment, only thread_id (the wxO message thread_id) and environement_id (‘draft’ or ‘live’) are used.
Elicitation Handling
When a flow requires user input, an elicitation request is automatically issued to the MCP client. The client must respond within the timeout period to continue flow execution.Timeout behavior
- Elicitations timeout after 5 minutes by default.
- When a timeout occurs, the elicitation request fails with a timeout error.
Recovery from timeout
- If an elicitation times out, note the elicitation ID from the original request.
- Collect the user’s response.
- Call
submit_flow_elicitationwith the elicitation ID and response data. - The flow resumes execution with the provided input.
json
Dynamic tool lifecycle management
The server updates tool registrations in response to flow model events (create, update, delete, activate, deactivate).Lifecycle states
- Active: Tools available and executable.
- Deactivated: Tools that are registered but marked unavailable.
- Deleted: Tools registered but marked deleted.
Behavior
- Tools are marked as [DEACTIVATED] or [DELETED] in descriptions when flows are not runnable.
- Clients are notified through notifications/tools/list_changed when tool availability changes.
Execution patterns
Synchronous
- Use
run_flow__<flow_name>. - Suitable for short‑running flows.
- Returns status and, when available, output.
- If user input is required, returns input_required and issues elicitation; continue through the background then query with
query_flow__<flow_name>.
Asynchronous (claim‑check)
- Use
run_flow_async__<flow_name>. - Returns instance_id immediately; query with
query_flow__<flow_name>. - Elicitations are issued as needed; execution continues in the background.
Authorization model
- Identity: Each request is associated with an authenticated principal.
- Ownership: Initiators can list, query, subscribe to, replay elicitations for, and cancel their own flow instances.
- Session binding: Operations are validated per session.
- Operation checks: Authorization is evaluated for each action (subscribe_flow, replay_flow_pending_elicitation, submit_flow_elicitation, list_flows, cancel_flow).
Session management
Unique session IDs per MCP client and clean up on disconnect.MCP Context Forge support
The flow MCP server is compatible with MCP Context Forge for enhanced context management and orchestration. Current Context Forge clients do not support MCP elicitations; human‑in‑the‑loop features are not available through that path. For more information see, MCP context forge.Connecting to Flow MCP Server
To connect to the Flow MCP server as a remote MCP endpoint, obtain the Watson Orchestrate API endpoint for your instance (https://api.<hostname>/instances/<tenant_id>) and append /v1/orchestrate/flows/mcp. Generate an access token from an API key that uses the documented process and provide it during registration. The access token has a limited validity period, refresh and reregister when it expires.

