Skip to main content

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.

This is not the marketplace

"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

  1. Have a workflow — one already in your org (built in the app, or over MCP with create_workflow / edit_workflow — see Recipes).
  2. 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-tool with { "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.
  3. It appears in an authenticated tools/list — alongside the static tools, as its own run_… tool. List the ones you've turned on with GET /v1/workflows/mcp-tools.
  4. 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:run scope (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/list at connect time; reconnect after turning on a new one.
Static run_workflow vs an exposed workflow tool

run_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.