MCP Hub Manager
STDIOA hub server that connects to and manages other MCP servers.
A hub server that connects to and manages other MCP servers.
A hub server that connects to and manages other MCP (Model Context Protocol) servers.
This project builds an MCP hub server that can connect to other MCP servers, list their tools, and execute them. It is especially useful for bypassing Cursor’s 40-tool MCP limit. Even outside of Cursor, it helps reduce AI mistakes by hiding infrequently used tools.
Add this to your mcp.json
:
{ "mcpServers": { "other-tools": { "command": "npx", "args": [ "-y", "mcp-hub-mcp", "--config-path", "/Users/username/mcp.json" ] } } }
Before processing a user's request, you must use the "list_all_tools" command to identify which tools are available.
This ensures that the AI assistant will always check available tools before attempting to use them.
# Clone repository git clone <repository-url> cd mcp-hub-mcp # Install dependencies npm install # or yarn install # or pnpm install
npm run build # or yarn build # or pnpm build
npm start # or yarn start # or pnpm start
npm run dev # or yarn dev # or pnpm dev
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:
MCP_CONFIG_PATH
environment variable to the configuration file path--config-path
option to specify the configuration file pathmcp-config.json
file in the current directoryConfiguration 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"] } } }
The MCP-Hub-MCP server provides the following tools:
list-all-tools
Returns a list of tools from all connected servers.
{ "name": "list-all-tools", "arguments": {} }
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" } } }
This project follows Conventional Commits for automatic versioning and CHANGELOG generation.
Format: <type>(<scope>): <description>
Examples:
feat: add new hub connection feature
fix: resolve issue with server timeout
docs: update API documentation
chore: 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 toolsBreaking Changes:
Add BREAKING CHANGE:
in the commit footer to trigger a MAJOR version bump.
MIT