Skip to main content
Beyond LLM traffic, TrustGate runs a dedicated MCP Gateway (: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 the streamable-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.
So an agent always sees stable, unambiguous names regardless of how many servers are behind the endpoint.

Registering an MCP server

Connect MCP servers from the console:
  1. Open TrustGateRegistryMCP.
  2. 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.
  3. For MCP URLs: configure transport (streamable HTTP), static headers, and upstream auth. For OpenAPI: the document URL, then Validate OpenAPI.
  4. Select Test connection (MCP URL) or complete validation (OpenAPI), then Connect / Save.
  5. 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_policies toolkits. A role that binds an MCP registry without an explicit toolkit grants that server fully.
So one MCP endpoint can present a different, identity-scoped toolkit to each caller.

Fail mode

fail_mode decides what happens when an upstream server is unavailable:
  • open: skip the failed server.
  • closed: fail the call.
For role-based consumers, the effective mode is open only when every contributing role declares it open; otherwise it is closed (and closed when no role grants access).

Upstream authentication

mcp_target.auth.mode controls how TrustGate authenticates to the MCP server. Each mode has its own requirements:

Exchange patterns

The exchange 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 provider and either registration: auto (TrustGate registers the client) or registration: manual with client_id, authorize_url, and token_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.