MCP Hub
A hub server that connects to and manages other MCP servers.
MCP-Hub-MCP Server
A hub server that connects to and manages other MCP (Model Context Protocol) servers.
Overview
This project builds an MCP hub server that connects to and manages multiple MCP (Model Context Protocol) servers through a single interface. It helps prevent excessive context usage and pollution from infrequently used MCPs (e.g., Atlassian MCP, Playwright MCP) by allowing you to connect them only when needed. This reduces AI mistakes and improves performance by keeping the active tool set focused and manageable.
Key Features
- Automatic connection to other MCP servers via configuration file
- List available tools on connected servers
- Call tools on connected servers and return results
Configuration
Add this to your mcp.json:
Using npx
{
"mcpServers": {
"other-tools": {
"command": "npx",
"args": [
"-y",
"mcp-hub-mcp",
"--config-path",
"/Users/username/mcp.json"
]
}
}
}
Installation and Running
Requirements
- Node.js 18.0.0 or higher
- npm, yarn, or pnpm
Installation
# Clone repository
git clone <repository-url>
cd mcp-hub-mcp
# Install dependencies
npm install
# or
yarn install
# or
pnpm install
Build
npm run build
# or
yarn build
# or
pnpm build
Run
npm start
# or
yarn start
# or
pnpm start
Development Mode
npm run dev
# or
yarn dev
# or
pnpm dev
Configuration File
The MCP-Hub-MCP server uses a Claude Desktop format configuration file to automatically connect to other MCP servers. You can specify the configuration file in the following ways:
- Environment variable: Set the
MCP_CONFIG_PATHenvironment variable to the configuration file path - Command line argument: Use the
--config-pathoption to specify the configuration file path - Default path: Use
mcp-config.jsonfile in the current directory
Configuration file format:
{
"mcpServers": {
"serverName1": {
"command": "command",
"args": ["arg1", "arg2", ...],
"env": { "ENV_VAR1": "value1", ... }
},
"serverName2": {
"command": "anotherCommand",
"args": ["arg1", "arg2", ...]
}
}
}
Example:
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/Users/username/Desktop",
"/Users/username/Downloads"
]
},
"other-server": {
"command": "node",
"args": ["path/to/other-mcp-server.js"]
}
}
}
Usage
The MCP-Hub-MCP server provides the following tools:
1. list-all-tools
Returns a list of tools from all connected servers.
{
"name": "list-all-tools",
"arguments": {}
}
2. call-tool
Calls a tool on a specific server.
serverName: Name of the MCP server to call the tool fromtoolName: Name of the tool to calltoolArgs: Arguments to pass to the tool
{
"name": "call-tool",
"arguments": {
"serverName": "filesystem",
"toolName": "readFile",
"toolArgs": {
"path": "/Users/username/Desktop/example.txt"
}
}
}
3. find-tools
Find tools matching a regex pattern across all connected servers (grep-like functionality).
pattern: Regex pattern to search for in tool names and descriptionssearchIn: Where to search: "name", "description", or "both" (default: "both")caseSensitive: Whether the search should be case-sensitive (default: false)
{
"name": "find-tools",
"arguments": {
"pattern": "file",
"searchIn": "both",
"caseSensitive": false
}
}
Example patterns:
"file"- Find all tools containing "file""^read"- Find all tools starting with "read""(read|write).*file"- Find tools for reading or writing files"config$"- Find tools ending with "config"
Example output:
{
"filesystem": [
{
"name": "readFile",
"description": "Read the contents of a file",
"inputSchema": {
"type": "object",
"properties": {
"path": {
"type": "string",
"description": "Path to the file to read"
}
},
"required": ["path"]
}
},
{
"name": "writeFile",
"description": "Write content to a file",
"inputSchema": {
"type": "object",
"properties": {
"path": {
"type": "string",
"description": "Path to the file to write"
},
"content": {
"type": "string",
"description": "Content to write to the file"
}
},
"required": ["path", "content"]
}
}
]
}
Commit Message Convention
This project follows Conventional Commits for automatic versioning and CHANGELOG generation.
Format: <type>(<scope>): <description>
Examples:
feat: add new hub connection featurefix: resolve issue with server timeoutdocs: update API documentationchore: update dependencies
Types:
feat: New feature (MINOR version bump)fix: Bug fix (PATCH version bump)docs: Documentation only changesstyle: Changes that do not affect the meaning of the coderefactor: Code change that neither fixes a bug nor adds a featureperf: Code change that improves performancetest: Adding missing tests or correcting existing testschore: Changes to the build process or auxiliary tools
Breaking Changes:
Add BREAKING CHANGE: in the commit footer to trigger a MAJOR version bump.
Other Links
License
MIT
Похожие серверы
Kone.vc
спонсорMonetize your AI agent with contextual product recommendations
Redmine
An MCP server for interacting with the Redmine project management system.
Calculator MCP Server
Performs basic arithmetic calculations. A TypeScript-based server demonstrating core MCP concepts.
Splitwise MCP Server
Manage Splitwise expenses with plain English via Claude AI — add expenses, check balances, and settle up without opening the app.
Airfield Directory
Provides airfield aeronautical information for general aviation private pilots like runways, fuel prices, landing fees, weather, webcams and more
CData Google Calendars
A read-only MCP server by CData that enables LLMs to query live Google Calendars data. Requires a separate CData JDBC Driver for Google Calendars.
Gorev
A powerful, Go-based task management server with MCP support, AI editor integration, and a VS Code extension. It supports smart task creation, markdown, and project organization.
Pluga
Connect your AI Agents to automation workflows as if by magic
Productboard MCP Server
Integrate the Productboard API into agentic workflows for product management.
Home Assistant
Interact with Home Assistant to control smart home devices, query states, manage automations, and troubleshoot your smart home setup.
WhatsApp Claude Plugin
WhatsApp channel plugin for Claude Code. Connect WhatsApp as a native channel to your Claude Code session — send/receive messages, voice transcription, access control, and remote tool approval. No API keys needed, uses Baileys for WhatsApp Web connectivity.