: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. It composes their tools, prompts, and resources, then applies tenancy,
access control, authentication, and observability.
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
Connect MCP servers from the console:- Open TrustGate → Registry → MCP.
- Pick a catalog server (one-click when no extra config is needed) or Add custom. For a remote MCP server, paste the server URL. To expose a REST API instead, set Source to OpenAPI document and follow OpenAPI tools.
- For MCP URLs: configure transport (streamable HTTP), static headers, and upstream auth. For OpenAPI: the document URL, then Validate OpenAPI.
- Select Test connection (MCP URL) or complete validation (OpenAPI), then Connect / Save.
- Open the registry to browse live tools the server exposes.
Toolkits and capability scope
A consumer does not automatically get every tool on every bound server. Access is governed by a toolkit, which lists grants that scope 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: 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 Gateway 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
complete a one-time connection when a downstream service requires per-user authorization.
Connect an agent
All clients use the same endpoint for a given consumer. The consumer’s Connect tab provides Cursor, Claude Code, and generic JSON snippets.
Do not use a TrustGuard collector
tgk_… as an MCP credential.
Related
- OpenAPI to MCP: expose REST API operations as tools
- Okta · Entra ID