Skip to main content
Morphic MCP registers 103 tools. Advertising all of them costs roughly 105 KB — about 26–30k tokens — of tools/list on every connect, before the user has typed anything. Most integrations want a fraction of that. Tools are therefore organised into groups, and a connection can ask for a subset.

The groups

Each group has a stable kebab-case id. Ids appear in customer connection URLs and are treated as API surface: new ids get added, existing ids are never renamed or repurposed. ping belongs to no group and is always registered, however narrow the profile — it is the connection smoke test. See the Tools Reference for the tools in each group.
parallel_search, flint_action and agentmail_action are not advertised by default. Even a workspace that has purchased and installed the add-on will not see them until the connection opts in.
The add-on tools are entitlement-gated at call time, but entitlement cannot be checked at registration time without a blocking backend round-trip on every connect. Rather than advertise three tools that almost every workspace would get an “add-on not installed” error from, the addons group defaults to off. If your workspace is entitled, opt in on the connection URL:
…which gives you the add-ons only (plus ping). To get everything including add-ons, send ?tools= with an empty value — an empty spec means “every group”, and it stays correct when new groups are added:

Per-connection subsetting: ?tools=

Append ?tools= to the MCP transport URL. The value is a comma-separated spec: Unknown group ids are ignored, not fatal. A stale URL or an id removed in a later release degrades to a working connection rather than a broken one; the server logs one warning listing every unknown id. Example — a support bot that only needs records and the knowledge base:
Subsetting changes what is advertised, not what is authorised. The permission level you approved when connecting is unchanged; a narrower ?tools= spec is a context-window optimisation and a scoping convenience, not a security boundary. To actually restrict what a connection can do, choose a lower tier on the approval screen — see Authentication.

Read/write execution profiles

Agent runtimes that need a safe concurrency boundary can add ?effect=read or ?effect=write. The two profiles are disjoint and are derived from the registry’s readOnlyHint annotations. Morphic’s Revenue Agent uses the read profile for native Hermes parallel tool execution and keeps the write profile sequential. Like ?tools=, this only changes advertisement; it does not grant permission.

Server-wide default: MCP_TOOL_GROUPS

Self-hosted operators set the default profile for every connection with the MCP_TOOL_GROUPS environment variable. It takes the same spec syntax.
Precedence is ?tools= query param → MCP_TOOL_GROUPS-addons. A connection that sends no ?tools= gets the env-configured default; one that sends ?tools= (even empty) overrides it entirely.