{"slug": "i-built-a-self-hosted-mcp-server-registry-and-proxy-in-typescript", "title": "I built a self-hosted MCP server registry and proxy in TypeScript", "summary": "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.", "body_md": "The official MCP registry is written in Go and cloud-hosted.\n\nI wanted something I could self-host, written in TypeScript,\n\nthat my team could run inside our own infra.\n\nSo I built **mcp-hub**.\n\nRegister a server once:\n\n```\ncurl -X POST http://localhost:3000/api/v1/servers \\\n  -H 'Content-Type: application/json' \\\n  -d '{\n    \"name\": \"github-mcp\",\n    \"url\": \"http://my-mcp-server:8080\",\n    \"transport\": \"http\"\n  }'\n```\n\nThen proxy any tool call through mcp-hub:\n\n```\ncurl -X POST http://localhost:3000/api/v1/proxy/{serverId}/call \\\n  -H 'Content-Type: application/json' \\\n  -d '{ \"tool\": \"create_issue\", \"input\": { \"title\": \"Bug\" } }'\n```\n\nEvery call is logged to PostgreSQL and streamed live over WebSocket.\n\n```\ngit clone https://github.com/DIYA73/mcp-hub\ncd mcp-hub\ncp .env.example .env\ndocker compose up\n```\n\nAPI at `http://localhost:3000/api/v1`\n\nWebSocket at `ws://localhost:3000/logs`\n\nI'm running multiple MCP servers locally and needed a central\n\nplace to register them, forward calls, and see what's happening\n\nin real time. Nothing TypeScript-native existed.\n\nGitHub: [https://github.com/DIYA73/mcp-hub](https://github.com/DIYA73/mcp-hub)\n\nFeedback welcome — especially if you're running MCP servers in prod.", "url": "https://wpnews.pro/news/i-built-a-self-hosted-mcp-server-registry-and-proxy-in-typescript", "canonical_source": "https://dev.to/diya730/i-built-a-self-hosted-mcp-server-registry-and-proxy-in-typescript-12b", "published_at": "2026-06-13 16:01:36+00:00", "updated_at": "2026-06-13 16:14:44.222584+00:00", "lang": "en", "topics": ["developer-tools", "ai-infrastructure", "ai-tools"], "entities": ["mcp-hub", "TypeScript", "PostgreSQL", "WebSocket", "GitHub", "DIYA73"], "alternates": {"html": "https://wpnews.pro/news/i-built-a-self-hosted-mcp-server-registry-and-proxy-in-typescript", "markdown": "https://wpnews.pro/news/i-built-a-self-hosted-mcp-server-registry-and-proxy-in-typescript.md", "text": "https://wpnews.pro/news/i-built-a-self-hosted-mcp-server-registry-and-proxy-in-typescript.txt", "jsonld": "https://wpnews.pro/news/i-built-a-self-hosted-mcp-server-registry-and-proxy-in-typescript.jsonld"}}