:8082) that fronts
Model Context Protocol servers. Rather than connecting an
agent to each MCP server directly, TrustGate aggregates several servers into a single
MCP endpoint — composing their tools, prompts, and resources — and applies the same tenancy,
access control, auth, and observability as LLM traffic.
The TrustGate data plane must reach each MCP registry
url. SaaS cannot call private VPC endpoints unless you expose them. Use Hybrid for internal MCPs.One endpoint, many servers
An agent connects to one TrustGate MCP endpoint and sees a unified surface. TrustGate speaks JSON-RPC over thestreamable-http transport and implements the standard methods:
Behind the endpoint, each upstream is an MCP registry
(
type: MCP). TrustGate fans list calls out to the bound registries, merges the results,
and routes each call/read/get to the owning server.
Tool name composition
Because two servers can expose the same tool name, TrustGate keeps names unique on the merged surface:- Unique names pass through unchanged.
- On a collision, the tool is prefixed with the registry name (e.g.
asana_create_task). - If that still collides, a short registry id is added; as a last resort a numeric suffix.
Registering an MCP server
Register a server as a registry oftype: MCP with an
mcp_target:
Browse pre-seeded enterprise servers via
GET /v1/mcp-servers-catalog, validate a
connection with test-connection, and list a registry’s live tools via
GET /v1/gateways/{gateway_id}/registries/{id}/tools.
Toolkits — scoping what an agent can use
A consumer doesn’t automatically get every tool on every bound server. Access is governed by a toolkit — a list of grants, each scoping a registry to specific tools, prompts, or resources:
For inline MCP consumers, the toolkit lives on the consumer
(
mcp.toolkit). For role-based consumers, the effective view is
built from the matched roles:
- Registries = the union of the matched roles’ MCP registries.
- Toolkit = the union of the roles’
mcp_policiestoolkits. A role that binds an MCP registry without an explicit toolkit grants that server fully.
Fail mode
fail_mode decides what happens when an upstream server is unavailable:
open— degrade gracefully (skip the failed server).closed— fail the call.
Upstream authentication
mcp_target.auth.mode controls how TrustGate authenticates to the MCP server. Each mode
has its own requirements:
Exchange patterns
Theexchange mode implements standard token-exchange patterns:
Forwarded (per-user OAuth)
For SaaS servers where each end-user must connect their own account (e.g. their Asana),forwarded mode stores a per-user OAuth credential:
- Set
providerand eitherregistration: auto(TrustGate registers the client) orregistration: manualwithclient_id,authorize_url, andtoken_url. - The first call for a user with no stored credential returns a consent-required signal with a connect link; the user authorizes the provider once and the credential is vaulted.
- TrustGate refreshes expiring credentials automatically and re-prompts for consent only when a grant can no longer be refreshed.
Agent authentication
The MCP plane is itself an OAuth2 authorization server for the agents connecting to it, implementing the standard discovery and flow endpoints:
Together these let an agent register, obtain a token, call the unified MCP endpoint, and —
when a downstream needs per-user authorization — complete a one-time connect without leaving
the gateway.