Skip to main content
Glama
README.md
# MCP Gateway

![MCP Gateway dashboard](image.png)

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.