MCP Gateway
README.md
# MCP Gateway

A compact non-production-ready MCP gateway.
Built with LLM-powered tools to befriend LLMs and the tools.
## Use cases
1. You need to expose the MCP server beyond localhost (ie for a dockerized harness)
2. You want to use the MCP server, but disable some of its tools
3. You need to expose the MCP, using one protocol, to a harness using other protocol
It routes (proxies) tool calls to configured downstream MCP servers.
It currently supports downstream `streamable-http` and `sse` transports.
It also has a dashboard where you can enable or disable certain tools.
## Run
```bash
uv sync
cp gateway.example.json gateway.json
uv run mcp-gateway
```
Use the MCP Inspector or any MCP client against `/http/mcp` (or `/sse/sse` for a legacy client).
## Configure upstream clients
Add `http://localhost:64345/http/mcp` as an endpoint to your client or harness.
## Configure downstream servers
Edit `gateway.json` accordingly.
`headers` are optional and are never shown by the dashboard.
`disabled_tools` is optional per server. List downstream tool names (before any gateway renaming) to hide at startup.
Restart the gateway after changing this list.
## Exposed tools
The gateway exposes **only** tools discovered from downstream servers. It copies each tool's name, description, schemas,
annotations, and result without a gateway wrapper.
When two or more downstream servers expose the same tool name, every conflicting tool is exposed as
`servername-toolname`, for example `github-search`.
Tool discovery happens at gateway startup. Restart the gateway to pick up downstream inventory changes.
## Disclaimer
This is a starter gateway, not an authorization boundary.
Expect bugs.
Never expose beyond localhost.
This server cannot be deployed
Maintenance
ActivitySlowing
ResponsivenessNo issues