Install
brew install MikkoParkkola/tap/mcp-gateway # 1. install
mcp-gateway setup wizard --configure-client # 2. import existing servers + wire up clients
mcp-gateway serve # 3. runIf you connect multiple MCP servers and REST APIs to the same AI client, you will quickly notice that the tool definitions themselves fill up the context. MCP Gateway's approach is to put a single Rust binary between the client and all of its tools: the various backends hang behind it, and the agent sees a compact meta-surface of 14 to 16 tools instead of every backend's full definition. The more tool definitions sit in the context, the less budget is left for the actual task; collapsing them into one small fixed surface is exactly the problem it set out to solve. Before you start, confirm one premise: it ships under a noncommercial license by default — personal and noncommercial use (including running the full gateway) is free, and commercial operation requires a commercial license.
Who it's for
- Suits users who already connect — or plan to connect — multiple MCP servers and REST APIs and want the size of the tool list to stay stable: no matter how many backends hang behind it, the agent faces a fixed small set of meta-tools instead of the sum of all backend definitions.
- Suits people who can keep one service running permanently on their own machine: the gateway runs as a local HTTP service, and clients connect to it through a local endpoint.
- Not suitable for direct use in commercial environments: commercial operation requires a commercial license, a premise you must settle before adoption; only a small MIT core of generic building blocks is available under the MIT license.
- With only a few backends and an already short tool list, aggregation offers limited value; the evidence gives no comparative data on concrete gains at small scale.
- The list of supported clients, remote deployment, and authentication methods are not covered by the evidence; treat them as unconfirmed and do not assume them on your own.
First attempt in 3 minutes
- Prerequisite: an environment where Homebrew is available. The official installation entry point is a Homebrew tap; the evidence gives no other installation methods.
- Run the three commands of the official main path in order:
brew install MikkoParkkola/tap/mcp-gateway # 1. install
mcp-gateway setup wizard --configure-client # 2. import existing servers + wire up clients
mcp-gateway serve # 3. run
- The setup wizard in step two imports your existing servers and wires up the clients. Note that this is a local state write: it rewrites the gateway's and the clients' local configuration and is not a read-only operation; exactly which files it writes and how it saves them is not itemized in the evidence.
- After step three starts, the gateway runs as a local HTTP service. On the client side, connect using the configuration snippet the official documentation gives. The snippet declares a service named gateway as type http, pointing at the /mcp path on local port 39400:
{
"mcpServers": {
"gateway": {
"type": "http",
"url": "http://localhost:39400/mcp"
}
}
}
- Success signal: once the client is connected to http://localhost:39400/mcp, the tool list collapses into a fixed small set; at this point call gateway_search_tools once — the official description says it searches backend tools — and if the search returns tools from the backends you connected, the path from client to gateway is working. The evidence does not state a readOnlyHint for this tool, so its read-only property is unconfirmed; keep the first attempt to a search only and do not perform write-like actions. At this point the agent loads a fixed small set of meta-tools instead of every backend definition.
Use cases
- Case 1: slim down a multi-server tool stack. Scenario: the client already connects several MCP servers, and every backend's tool definitions consume context. Approach: hand your existing servers to the wizard for import and keep http://localhost:39400/mcp as the client's only endpoint. Expectation: the agent's tool surface stays fixed at around 14 to 16 tools instead of the sum of all backend definitions; when you need a specific capability, locate it first with gateway_search_tools. How to judge: whether the number of tools the client shows is clearly smaller than the total number of tools across the backends you connected.
- Case 2: search, then invoke a real tool once. Scenario: you want to execute a capability offered by a connected backend (an MCP server or a REST API). Approach: first locate the target tool with gateway_search_tools, then invoke it with gateway_invoke — the officially described usage is exactly these two meta-tools, search plus invoke. Expectation: the call is forwarded to the corresponding backend and its result returned; the concrete output depends on which backends you connected, and the evidence contains no fixed example output. If the search does not find the tool you expected, first confirm that the backend was imported through the wizard, then retry the search.
Usage boundaries
- License and restrictions: personal and noncommercial use is free, including running the full gateway; commercial operation requires a commercial license; only a small MIT core of generic building blocks is available under MIT. This point decides whether you can use it and within what scope, and it comes before every other judgment.
- Read/write nature and side effects: the gateway itself is a locally resident service; the wizard writes local configuration; gateway_invoke really drives backend tools, and its side effects depend on the backend being invoked — confirm the nature of the target operation and its confirmation points before executing.
- Dependencies: installation depends on Homebrew; connecting existing servers is done through the wizard's import.
- Unconfirmed items: the list of supported clients, the concrete configuration format for attaching REST APIs, deployment beyond localhost, authentication mechanisms, and whether each meta-tool carries a readOnlyHint are all unstated in the evidence. Whether the gateway itself has access control and how it logs are likewise unstated. An absence of documentation is not an absence of risk; before adoption, defer to the official repository's current documentation.