Adopt without redeploying
Give clients one front door
Keep remote credentials private
Make remote traffic visible
When to use an external server
Choose an external server when the runtime should stay outside FastMCP Gateway, but MCP access should be managed through FastMCP Gateway.User-visible contract
To clients, an external server behaves like a FastMCP Gateway MCP server. The client connects to the FastMCP Gateway endpoint, authenticates to FastMCP Gateway when required, and discovers the capabilities that FastMCP Gateway has learned from the remote server. FastMCP Gateway does not change the remote server’s tool behavior. It governs the path to the server, records gateway activity, and forwards accepted MCP requests to the remote endpoint you configured.Ownership boundary
External servers intentionally split platform responsibility from remote runtime responsibility.Request flow
Client calls the FastMCP Gateway endpoint
FastMCP Gateway checks access
FastMCP Gateway forwards to the remote server
Authorization header.The remote server handles the MCP call
FastMCP Gateway returns the response
Authentication model
The MCP client signs in to the FastMCP Gateway endpoint first. FastMCP Gateway then presents a separate OAuth token or API key to the remote MCP server, unless the remote server accepts anonymous requests.https://horizon.prefect.io/oauth/external/callback. Providers that support
Dynamic Client Registration receive the same callback URL during registration.
For OAuth discovery, Dynamic Client Registration, manual client fields, API-key
header formatting, and the complete setup flow, see
External authentication.
Register an external server
Choose external server
Enter the remote MCP URL
Configure remote authentication
Inspect capabilities
Grant access
How discovery works
When you register or refresh an external server, FastMCP Gateway captures a snapshot of the remote server’s MCP metadata. FastMCP Gateway initializes an MCP session with the remote endpoint, then asks for tools, prompts, and resources. Those list requests run independently, so one failed list method does not automatically discard metadata returned by the others. FastMCP Gateway stores that snapshot with the external server metadata. The snapshot is used for the dashboard, client setup surfaces, remix composition, and capability policy setup. If initialization fails, metadata capture fails. If every list response is empty or unavailable, metadata capture fails because FastMCP Gateway cannot tell whether the server has no useful capabilities or discovery did not work. If at least one list response succeeds, FastMCP Gateway can store the metadata it received and leave the missing capability types empty. To refresh metadata, open the external server’s Connection page and select Sync capabilities. Each attempt appears in Sync history. When a sync fails, its row shows the sync error, and the previous metadata stays in place. Runtime traffic still goes to the remote server. When a client callstools/list, prompts/list, or resources/list through the FastMCP Gateway endpoint,
FastMCP Gateway asks the remote server for the current list and applies access filtering
before returning the response. Playground, ChatMCP, and external clients still
depend on the runtime endpoint being able to reach the remote server.
tools/list response before the dashboard snapshot has been
refreshed. If capability policy is configured, refresh the external server
metadata and update policy before expecting the new tool to appear.Metadata and policy lifecycle
Treat remote metadata changes as compatibility changes. If the remote server adds, removes, renames, or changes a capability schema, refresh discovery and review policies before relying on the new shape in production clients.List and call failure behavior
An external server has one remote backend, so list behavior depends on that backend’s response.Before clients use the server
An external server is ready for client use when FastMCP Gateway can discover it, use the expected remote authentication mode, and enforce the access boundary you expect. Check the server from FastMCP Gateway before updating client configuration:- Discovery shows the tools, resources, and prompts clients should see.
- Playground can call representative capabilities through the FastMCP Gateway endpoint.
- A caller without access receives a gateway denial instead of reaching the remote server.
- Request logs show forwarded calls with the expected client and user metadata.
- The team that owns the remote server can debug runtime errors outside FastMCP Gateway.
Troubleshooting
Start with where the request stopped. FastMCP Gateway request logs show whether the gateway denied, forwarded, or received an error from the remote server. If forwarding succeeded, debug the remote runtime.FastMCP Gateway cannot discover capabilities
FastMCP Gateway cannot discover capabilities
Clients receive 401
Clients receive 401
Clients receive 403
Clients receive 403
The OAuth popup never completes
The OAuth popup never completes
Authorize with OAuth. If
the popup opens but returns an error, restart the OAuth flow so FastMCP Gateway can
create a fresh authorization request.The OAuth provider rejects the token request
The OAuth provider rejects the token request
Clients receive errors from the remote server
Clients receive errors from the remote server
Playground shows stale tools
Playground shows stale tools
FastMCP Gateway request logs succeed but the user sees bad data
FastMCP Gateway request logs succeed but the user sees bad data