MCP Server Hub / Gateway
@bsmi021
This project provides a central gateway to manage multiple MCP (Model Context Protocol) servers, preventing the need to configure and run duplicate server processes for each LLM client (like Cline, Cursor, etc.). Connect your LLM client to the single gateway-client endpoint provi
Overview
What is MCP Server Hub / Gateway?
MCP Server Hub / Gateway is a central gateway that manages multiple MCP (Model Context Protocol) servers and exposes hub-native tools through a single endpoint. It eliminates the need to configure duplicate server processes for each LLM client (e.g., Cline, Cursor) and supports dynamic configuration reloading without restarting the gateway.
How to use MCP Server Hub / Gateway?
Install Node.js v20+, clone the repo, run npm install then npm run build, edit mcp_hub_config.json in the project root. Start the gateway server with npm start. Configure your LLM client to use the gateway-client MCP server with command: "node" and args: ["<absolute-path-to-project>/dist/client/client.js"].
Key features of MCP Server Hub / Gateway
- Centralized management of multiple MCP servers and hub-native tools.
- Dynamic configuration reloading without restarting the gateway.
- Namespaced tool exposure (
serverId__toolName,hub__toolName). - WebSocket-based communication between Gateway Client and Server.
- Configurable internal services that react to configuration changes.
- Supports optional SSE interface and configurable log levels.
Use cases of MCP Server Hub / Gateway
- Replace separate MCP server entries for each LLM client with a single gateway.
- Dynamically add, remove, or update MCP servers and hub tools at runtime.
- Expose custom hub-native tools alongside managed server tools through one interface.
- Manage server lifecycle (start, stop, restart) centrally with auto‑restart options.
FAQ from MCP Server Hub / Gateway
What runtime and dependencies are required?
Node.js v20+ and npm are required. The underlying MCP servers you want to manage must be installed and accessible on your system.
How does dynamic configuration reloading work?
The gateway server watches dist/mcp_hub_config.json for file changes. When the file is saved, changes to mcpServers, hubTools, and other sections are automatically applied without restarting the gateway.
What naming restrictions apply to server and tool keys?
Server IDs and hub tool keys in mcp_hub_config.json must only contain the characters a-zA-Z0-9_-.
How does my LLM client connect to the gateway?
Configure your LLM client with a single MCP server entry called gateway-client. It uses node to run dist/client/client.js and connects to the already running gateway server via WebSocket.
Can I refresh the tool list without restarting the client?
The Gateway Client periodically polls the Gateway Server for tool list updates (every 5 minutes by default, configurable via CLIENT_TOOL_REFRESH_INTERVAL_MS). However, this does not work in Claude Desktop; a client restart is needed there.