The official MCP registry is written in Go and cloud-hosted.
I wanted something I could self-host, written in TypeScript,
that my team could run inside our own infra.
So I built mcp-hub.
Register a server once:
curl -X POST http://localhost:3000/api/v1/servers \
-H 'Content-Type: application/json' \
-d '{
"name": "github-mcp",
"url": "http://my-mcp-server:8080",
"transport": "http"
}'
Then proxy any tool call through mcp-hub:
curl -X POST http://localhost:3000/api/v1/proxy/{serverId}/call \
-H 'Content-Type: application/json' \
-d '{ "tool": "create_issue", "input": { "title": "Bug" } }'
Every call is logged to PostgreSQL and streamed live over WebSocket.
git clone https://github.com/DIYA73/mcp-hub
cd mcp-hub
cp .env.example .env
docker compose up
API at http://localhost:3000/api/v1
WebSocket at ws://localhost:3000/logs
I'm running multiple MCP servers locally and needed a central
place to register them, forward calls, and see what's happening
in real time. Nothing TypeScript-native existed.
GitHub: https://github.com/DIYA73/mcp-hub
Feedback welcome — especially if you're running MCP servers in prod.