惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - Franky
有赞技术团队
有赞技术团队
宝玉的分享
宝玉的分享
雷峰网
雷峰网
Hugging Face - Blog
Hugging Face - Blog
V
V2EX
大猫的无限游戏
大猫的无限游戏
博客园 - 司徒正美
D
Docker
T
The Blog of Author Tim Ferriss
罗磊的独立博客
博客园 - 叶小钗
酷 壳 – CoolShell
酷 壳 – CoolShell
Blog — PlanetScale
Blog — PlanetScale
月光博客
月光博客
J
Java Code Geeks
Jina AI
Jina AI
博客园 - 【当耐特】
C
Check Point Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
腾讯CDC
Last Week in AI
Last Week in AI
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
V
Visual Studio Blog

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant
I built a self-hosted MCP server registry and proxy in Ty...
Diya · 2026-06-14 · via DEV Community

Diya

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.

What it does

  • Register any MCP server (SSE, HTTP, stdio transports)
  • Proxy all tool calls through one endpoint with auth forwarding
  • Stream every tool call live via WebSocket (Socket.io)
  • Monitor server health async via BullMQ jobs

Stack

  • NestJS — API framework
  • PostgreSQL — server registry + tool call logs
  • Redis — WebSocket pub/sub + BullMQ transport
  • BullMQ — async health check queue
  • Socket.io — real-time log streaming

How it works

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.

Run it in one command

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

Why I built this

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.