How to Combine MCP Servers Into One Endpoint With the MCP Gateway
The GetMCP MCP gateway lets you combine MCP servers into one endpoint: /mcp on your install, which publishes the tools of every server you run. You add it to Claude, ChatGPT or Cursor once. The client sees one merged tool list, and a server you build next month appears in it without another setup step.
It is for anyone with more than one GetMCP server: a team with separate billing, support and warehouse servers, an agency with several APIs for one client, or a developer who wants a database and an API in the same Cursor session. Each server keeps its own endpoint, so turning the gateway on changes nothing for clients that already use them.
What is an MCP gateway?
Without a gateway, every MCP server is a separate connection in every client: a URL to paste, a credential to store, a connector to approve. An MCP gateway puts one address in front of several servers. The client connects once, asks tools/list once, and calls any tool by name. The gateway routes each call to the server that owns the tool.
In GetMCP, the gateway has its own Gateway screen in the admin menu. It shipped in GetMCP 1.6.0 and works the same on the WordPress plugin and the standalone app. The servers it publishes live on the same install, so the merged list is built in-process: there is no extra network hop between the gateway and your servers.
How to combine MCP servers with the gateway
- Switch it on. Open Gateway and turn on the switch in the Gateway endpoint card. It is off by default, because republishing tools behind one credential is a decision to make on purpose. The card then shows the endpoint, for example
https://mcp.example.com/mcp, with a Copy button and a count of the servers and tools it publishes. - Choose how clients sign in. The Authentication card is separate from each server’s own authentication. Pick OAuth, API key, Bearer token or No authentication (details below).
- Choose what it publishes. In What it publishes, pick Every server or Only the servers I choose. The card lists what is included now and anything held back, with the reason.
- Check the names. The Published tools card counts the tools, and Show the exact names lists them as a client will see them.
- Connect a client. Paste the endpoint into any client that speaks Streamable HTTP. With OAuth, Claude, ChatGPT and Cursor register themselves and open a browser sign-in.

When a call arrives, the gateway matches the tool name to its owning server and hands the call to that server’s normal tool handler. The tool runs with that server’s stored API credential, connection variables, response shaping and redaction, and the call lands in that server’s call log and analytics.
Tool names that cannot collide
Two servers can both have a search tool. With Prefix tool names with their server on (the default), each published name is the server slug, two underscores and the tool name:
// tools/list from https://mcp.example.com/mcp
"tools": [
{ "name": "billing__list_invoices" },
{ "name": "billing__create_invoice" },
{ "name": "support__search_tickets" },
{ "name": "warehouse__run_query" }
]

Names are capped at 128 characters. When a long slug would push a name past that, the gateway shortens the prefix and adds a short hash, and keeps the tool name intact, because the tail is what tells the model what the tool does. Each description also gets “(From the Billing server.)” appended, which helps a model choose between similar tools.
Key settings
| Setting | What it does |
|---|---|
| OAuth (recommended) | The client registers itself and opens a browser sign-in to your install. The person approving signs in with their own account, which must be allowed to manage GetMCP servers (administrators by default). Nothing to copy or store. |
| API key | The client sends one of your API keys in a header. For scripts and agents that cannot open a browser. |
| Bearer token | The client sends a token in an Authorization header. Works in any client with a headers field. |
| No authentication | Anyone with the URL can call the published tools. Local testing only; see the security rules below. |
| Every server | Publishes every active server. New servers appear automatically. The built-in GetMCP management server is never included. |
| Only the servers I choose | Publishes only the servers you tick, with Select all and Clear. With nothing ticked, the gateway publishes no tools and says so. |
| Prefix tool names with their server | On by default. Off publishes the original names; if two servers share a name, the later duplicate is dropped, not renamed. |
| Published tools | The tool count, and the exact names on request. A warning appears above 60 tools. |
Built so a gateway cannot weaken a server
- An open gateway carries only open servers. With No authentication, any server that requires its own credential is held back and listed as “held back”, rather than republished without protection. Ticking it in Only the servers I choose is the only way to include it, and that is a deliberate act.
- Reserved names. gateway, hub, all, portal, aggregate, everything and mcp are reserved as server slugs, so nothing can shadow the gateway. A server that already used one keeps it.
- Off means off. With the gateway switched off, an MCP request to
/mcpgets a JSON-RPC error pointing at the Gateway screen, and an ordinary browser visit falls through to your site. - Standard discovery. OAuth discovery is served at the URL the gateway’s 401 challenge names, as the MCP specification expects, so strict clients connect first time.
Use cases
These are the setups where it pays to combine MCP servers behind one endpoint.
One connector for an operations team
Acme runs separate servers for billing, the help desk and the warehouse database. Instead of three connectors per person, the team adds the gateway once in Claude and signs in with their own accounts. Asking “which customers with open tickets have unpaid invoices?” can now use tools from two servers in one conversation.
Claude → /mcp → support__search_tickets → billing__list_invoices → answer
A focused agent that only sees what it needs
A support agent built on ChatGPT should not see the finance tools. Choose Only the servers I choose, tick the help desk and mailbox servers, and the tool list stays short. Short lists also help accuracy, which falls as a model is offered more tools.
New servers without new client setup
A SaaS team adds a server for its new reporting API. With Every server selected, it shows up in everyone’s existing connection the next time their client refreshes the tool list. Nobody pastes a new URL.
Database plus API in one Cursor session
Yuki Tanaka, a developer, wants Cursor to read the staging database and call the product API while debugging. A Database connector server and the API server, both behind the gateway, give Cursor both in one connection.
Cursor → /mcp → staging-db__run_query → product-api__get_order → fix suggested
Sign in with your own WordPress accounts
An agency wants client staff to connect with accounts it controls, rather than a shared key. Publish the client’s servers through the gateway with OAuth, keep each server itself on an API key, and every connection is approved by a named user on the install.
A quick local test bench
On a laptop install, set the gateway to No authentication to try several open servers from one client. Servers with their own credentials stay held back automatically, so the shortcut cannot expose them by accident.
Tips and gotchas
- Only active things are published. Paused servers and draft or disabled tools stay out of the gateway, just as they stay out of the server’s own
tools/list. - Renaming changes tool names. A server’s slug is part of every published name. Changing the slug, or switching prefixing on or off, renames tools; reconnect clients or refresh their tool list, and update any prompts that name tools.
- The gateway has its own request limit. Requests to
/mcpare limited at the gateway, 240 per minute per client. Per-tool limits on the owning tools still apply. - Claude’s connector needs OAuth. Claude’s custom connector runs the OAuth flow but cannot send custom headers, so keep the gateway on OAuth if your team connects that way.
- On WordPress, use pretty permalinks. MCP endpoints are rewrite rules, so plain permalinks will not serve
/mcp. - Keep the list lean. Every published tool is sent to the model on each request. Past a few dozen tools, publish only the servers an agent needs.
Related features
- Inbound security with OAuth 2.1 and API keys: how each server authenticates clients on its own endpoint.
- Connecting Claude, ChatGPT and Cursor: client-by-client setup, which works the same for the gateway URL.
- Rate limiting and PII redaction: the per-server and per-tool controls that still apply behind the gateway.
- One MCP endpoint per client: how agencies use the gateway to connect every app a client runs.
FAQ
Do I have to use the MCP gateway?
No. It is off by default and every server keeps its own /mcp/your-slug endpoint. Turn the gateway on when a client needs several servers at once.
Which clients can connect to the gateway?
Any MCP client that speaks Streamable HTTP. With OAuth selected, Claude, ChatGPT and Cursor register themselves and open the sign-in. With an API key or bearer token, anything that can send a header works.
Does the gateway bypass a server’s own authentication?
The client authenticates to the gateway, not to each server, so treat the gateway’s authentication as the door to everything it publishes. That is why an open gateway holds back every server that has its own credential unless you tick it explicitly.
Does the gateway slow calls down?
No extra network hop is involved. The servers run on the same install, so the merged list is assembled in-process and each call goes straight to the owning server’s handler.
Can the gateway publish servers from another install?
No. It publishes the servers on its own install. To combine servers from two installs, export a server from one and import it on the other, then publish it there.
One URL, one sign-in, every tool you have built. See the MCP Gateway page for more, or compare plans on pricing.
Ship an MCP server for your product this week.
Install GetMCP on any PHP host, import your API and share one URL. Your users can call your tools from Claude tonight.