Skip to main content
Development 2026-07-02

How to Combine Multiple MCP Tools into One Workflow (Composite Tools)

MCP Trail

MCP Trail Team

Technical Team

How to Combine Multiple MCP Tools into One Workflow (Composite Tools)

How to Combine Multiple MCP Tools into One Workflow (Composite Tools)

Some AI tasks aren’t one tool call — they’re always the same three. Triage a bug: fetch the issue, search the codebase, post a summary. Publish a report: query the database, format the result, write the page. When you leave that sequence to the model, it improvises: sometimes it skips a step, sometimes it reorders them, sometimes it takes four expensive reasoning turns to do what is, honestly, a fixed pipeline.

A composite tool (an MCP workflow) fixes the sequence in place. You define the steps once — which tools run, in what order, sequential or parallel, how outputs feed inputs — and the gateway exposes the whole thing as one new tool. The model calls triage_bug once; the workflow engine executes the steps deterministically. On MCP Trail, composite tools work on any Guardian server or bundle, so steps can even span different upstream servers.

Why turn tool chains into workflows?

  • Determinism: the steps always run, always in order — no model improvisation in the middle of your process
  • Fewer reasoning turns: one tool call instead of N, which is faster and cheaper in tokens
  • Simpler tool surface: agents see publish_weekly_report, not the five primitives behind it
  • One policy point: approvals, DLP, and audit apply to the workflow as a unit — and to each step

What you’ll need

  1. A free MCP Trail account
  2. A Guardian server or bundle whose tools you want to chain (a bundle if the steps span multiple servers, e.g. GitHub + Notion)

Step 1: Create your free MCP Trail account

Sign up at app.mcptrail.com and make sure the server (or bundle) with your ingredient tools is running — its tools list is what you’ll compose from.

A Guardian server's tools list — the ingredients for the workflow

Step 2: Create a new workflow

Open your server under Guardian servers and go to its Workflows section. Create a new workflow and give it the name the model will see — make it verb-like and specific: triage_github_issue, not workflow_1. The description matters too; it’s what the model reads when deciding to call it.

Creating a new workflow on the server's Workflows card

Step 3: Add the steps

Add each tool as a step. For every step you choose the tool and map its arguments: fixed values, workflow inputs, or outputs of previous steps. Independent steps can run in parallel; dependent ones run in sequence.

Our example, triage_github_issue:

  1. get_issue — fetch the issue (input: issue number, from the workflow’s argument)
  2. search_code — search the repository for the error string (input: extracted from step 1’s output)
  3. add_issue_comment — post a structured triage summary (input: composed from steps 1–2)

The workflow step editor with three chained steps and argument mappings

Step 4: Check the dependency graph

The visual graph shows how steps feed each other and which ones parallelize. If a step doesn’t depend on the previous one, it runs concurrently — free latency win for things like “fetch from three sources, then merge”.

The workflow dependency graph visualization

Step 5: Test it, then call it from your client

Use the server’s built-in playground to invoke the workflow with a sample input and inspect each step’s output. Once it behaves, it’s already live: the workflow appears in the server’s tool list, so any connected client can call it like any other tool.

Use triage_github_issue on issue #482

One call from the model; three deterministic steps at the gateway.

Testing the composite tool in the playground

Step 6: Verify in the audit log

Open Audit log — you’ll see the workflow invocation and each step it executed, in order, with statuses. If a middle step fails, the log shows exactly which one and why, which beats reconstructing what the model “meant to do” from a chat transcript.

The audit log showing a workflow run and its individual steps

Guardrails still apply — per step

Composite tools don’t bypass the policy layer. Each step is checked like a direct call: a step that hits a DLP rule gets blocked or redacted, and a step routed to human approval pauses the workflow in the Approval queue until sign-off. You can automate the boring 90% and still keep a human on the one step that posts publicly.

FAQ

How is a workflow different from the model just calling tools in a row?

The model calling tools in a row is a suggestion; a workflow is a guarantee. Order, arguments, and error handling are fixed at the gateway, and the whole thing costs one model turn instead of several.

Can steps come from different MCP servers?

Yes — build the workflow on a bundle and steps can target any member server’s tools (e.g. read from GitHub, write to Notion).

Can steps run in parallel?

Yes. Steps without dependencies on each other execute concurrently; the dependency graph shows what parallelizes.

What happens if a step fails?

The workflow stops (or handles the failure per its configuration) and the audit log records which step failed with the upstream error — no silent partial completion.

Have a tool chain your agents keep re-deriving? Create your free MCP Trail account and turn it into one composite tool.

Share this article