Skip to main content

Composing MCP Servers

Composition merges tools from one or more template MCP servers into a private endpoint you own. Your AI client calls one MCP URL; the platform resolves that to a single bundle_id and serves the union of included tools.

Why compose?​

ApproachURLs in your AI configTool setConnections configured on
Several workspace serversOne URL per serverEach server’s tools onlyEach server’s detail page
One composed private serverOne URLTools from every included templateThe composed server’s Connections section
Hub (/hub/)One URLDynamic across enabled serversPer-server as you enable them

Compose when you want a fixed, curated tool surface in Direct mode (under the 100-tool rule). Use the Hub when you want one URL and dynamic discovery. See The Hub and Execution modes.


How composition works (backend)​

When template server A is included in private server B:

  1. Tools by reference — A’s tools are not copied; they are linked through bundle_template_links. Updates on A flow to B.
  2. One MCP URL — Clients call B’s URL (https://mcp.mcpbundles.com/bundle/{slug}). Every tool invocation is scoped to B’s bundle id.
  3. Connections on B — Credential injection uses UserBundleProviderCredential rows on the composed server, not bindings on the original catalog copy of A. Connect Stripe, CRM, etc. on B’s page under Connections.
  4. Auto-bind after include — When a template is added, the platform may bind one verified workspace credential per required provider onto B. If you have zero or more than one verified credential for that provider, nothing is auto-selected; the header shows Connect or Fix connections until you pick bindings on B.
  5. Same credential, two rows — You can bind the same saved credential on both a catalog server and a composed server; those are separate binding rows. The composed URL only sees bindings attached to its bundle id.
  6. Stacks — B can include many templates (e.g. CRM + email + payments).

Dedicated servers vs multi-include stacks​

PatternWhat it is
Dedicated serverComposition with one child template — own name, URL, and connections. Listed under Dedicated servers on the parent. See Accounts and dedicated servers.
Multi-include stackOne private URL with several templates (e.g. “Sales Ops”). Same connection rules: everything is configured on that composed server.
Multiple accounts, one URLAttach more than one connection for the same provider on the composed server; agents disambiguate when N>1. Same as any MCP server — see Accounts and dedicated servers.

What you can do in the dashboard today​

Composition is supported in the product (include, remove, MCP calls, auto-bind). Some self-serve “add include” buttons are temporarily hidden while the Studio-centric IA is refined.

ActionStatus
View Included MCP Servers on a private serverAvailable
Remove an included serverAvailable (Remove on each card)
Add another template from the bundle pageAdd MCP Servers / empty-state add controls are commented out on the server page; catalog Add MCP Server (include into existing private server) is also commented out
Add external MCP by URLUse Add remote MCP URL on MCP Servers (separate from template composition)
Connect providers for composed toolsConnections on the composed server — always the source of truth

If you already have a composed server, open it, finish Connections there, and use Quick Setup for your AI host. To extend includes when the UI returns, the underlying flow is addBundleToComposition (browse providers/servers in the add dialog and include whole template bundles — not a global per-tool checklist).

For creating an empty private server first, see Creating custom MCP servers — note the list header does not expose Create until those flows are re-enabled.


Example: Sales operations stack (mental model)​

Goal: One MCP URL for CRM, email, billing, and chat.

  1. Create or open a private MCP server (e.g. “Sales Ops”).
  2. Include template servers for each service (when the add-include UI is available, or via existing composed servers you already have).
  3. On Sales Ops, open Connections and Connect each provider (CRM, email, etc.) on this server — not only on the original catalog pages.
  4. Wait for Ready, then copy the MCP URL from Quick Setup.
https://mcp.mcpbundles.com/bundle/sales-ops-a3f

Until include-from-catalog is visible again, many teams use the Hub for cross-service workflows or run separate URLs per catalog server.


Execution mode​

Composed servers follow the same rules as other servers:

  • Under 100 tools — Direct mode allowed
  • Over 100 tools — Dynamic mode required

See Execution modes.


Composition vs Hub​

Composed private server

  • Fixed includes you (or your workspace) chose
  • Direct mode when tool count allows
  • Connections maintained on that bundle

Hub

  • Dynamic discovery and execution across enabled servers
  • One URL, no manual include list