The pain it removes is real: every client keeps its own list of servers, and moving or restarting one means editing all of them. Register servers here instead and each client holds a single `ws://` address; profiles let you bring up a working set — say your dev tools — and drop it again without touching any client config.
A local gateway that runs your MCP servers as child processes and fronts them with a single endpoint. You register each server once in the browser UI, group them into profiles, and clients connect to one URL that says which server or profile it wants. The README is in Japanese.
- A `/mcp` WebSocket that routes by query string: `?serverId=<id>` or `?profile=<name>`
- Server entries you edit in the UI — command, args, env, and `autoStart`
- Profiles you can create, switch and hold active several at a time; their `autoStart` servers come up automatically
- Manual start and stop per server, plus per-server logs at `~/.mcp-gateway/logs/<id>.log`
- State kept in `~/.mcp-gateway/state.json`, so registrations survive a restart
- An HTTP API behind the UI — `GET /api/status`, `POST /api/servers/:id/start`, `GET /api/logs/:id?lines=200` and the rest
Node with pnpm. `pnpm install`, build the UI with `pnpm --filter mcp-gateway-ui run build`, then `pnpm start` — it listens on http://127.0.0.1:8787, and `--port`, `--host` and `--data-dir` are accepted by `cli.js`. Local only, no account. `pnpm init:samples` seeds example entries if you want something to look at. Install once and it runs offline afterwards.
One command — npx -y mcp-gateway
