I built a self-hosted MCP server registry and proxy in TypeScript A developer built mcp-hub, a self-hosted MCP server registry and proxy written in TypeScript. It allows registering MCP servers, proxying tool calls, and logging all calls to PostgreSQL with live WebSocket streaming. The project is open-source on GitHub. 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 https://github.com/DIYA73/mcp-hub Feedback welcome — especially if you're running MCP servers in prod.