Exposing a workflow as its own MCP tool
Beyond the 112 static tools, any workflow you already have can be exposed as its own MCP tool — so an agent runs a curated, named automation (run_weekly_report, enrich_lead) instead of assembling one from primitives.
"Expose as an MCP tool" just sets a flag on a workflow in your own organization — nothing is published anywhere and nothing gets imported. It's unrelated to the workflow marketplace (search_workflow_templates / import_workflow_template), which is about sharing templates between orgs. Here you're simply making a workflow you already own callable by an agent.
How it works
- Have a workflow — one already in your org (built in the app, or over MCP with
create_workflow/edit_workflow— see Recipes). - Toggle it on as a tool — set a flag on that workflow, giving it a tool name + description:
- REST:
POST /v1/workflows/{workflow_id}/mcp-toolwith{ "enabled": true, "tool_name": "run_weekly_report", "tool_description": "…" } - or in the workflow's settings in the app.
- Under the hood this just sets
is_mcp_tool = true(+ name/description) on that workflow row in your org — pass{ "enabled": false }to turn it back off.
- REST:
- It appears in an authenticated
tools/list— alongside the static tools, as its ownrun_…tool. List the ones you've turned on withGET /v1/workflows/mcp-tools. - The agent calls it like any tool; arguments are passed to the workflow run as
inputs.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "run_weekly_report",
"arguments": { "inputs": { "week": "2026-W27" } }
}
}
Semantics
- Turning it on is the approval. A curated workflow tool runs immediately when called (no per-call confirm) — exposing it was the human decision. Running it still requires the
workflows:runscope (enforced when the tool is called). - Per-org. These tools are dynamic and scoped to the org whose key you present. They only show in an authenticated
tools/list— the public static catalog never includes them. - Reconnect to refresh. Clients read
tools/listat connect time; reconnect after turning on a new one.
run_workflow vs an exposed workflow toolrun_workflow / run_workflow_by_name (in the Workflows catalog) run any workflow by id/name and are confirm-gated. An exposed workflow tool is a single, named, pre-approved automation that runs directly. Use exposed tools for the handful of automations you want agents to invoke by name.