MCP Hub MCP Server
MCP-Hub-MCP 서버
다른 MCP(Model Context Protocol) 서버에 연결하고 관리하는 허브 서버입니다.
개요
이 프로젝트는 다른 MCP 서버에 연결하여 해당 서버의 도구를 나열하고 실행할 수 있는 MCP 허브 서버를 구축합니다. 특히 Cursor의 40개 도구 제한을 우회하는 데 유용합니다. Cursor 외부에서도 자주 사용되지 않는 도구를 숨겨 AI의 실수를 줄이는 데 도움이 됩니다.
Related MCP server: MCP-Hub-MCP Server
주요 특징
구성 파일을 통한 다른 MCP 서버에 대한 자동 연결
연결된 서버에서 사용 가능한 도구 나열
연결된 서버에서 도구를 호출하고 결과를 반환합니다.
구성
mcp.json 에 다음을 추가하세요:
npx 사용하기
지엑스피1
시스템 프롬프트(또는 커서 규칙)
Before processing a user's request, you must use the "list_all_tools" command to identify which tools are available.이를 통해 AI 비서가 도구를 사용하기 전에 항상 사용 가능한 도구를 확인하게 됩니다.
설치 및 실행
요구 사항
Node.js 18.0.0 이상
npm, yarn 또는 pnpm
설치
# 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구성 파일
MCP-Hub-MCP 서버는 Claude Desktop 형식의 구성 파일을 사용하여 다른 MCP 서버에 자동으로 연결합니다. 다음과 같은 방법으로 구성 파일을 지정할 수 있습니다.
환경 변수:
MCP_CONFIG_PATH환경 변수를 구성 파일 경로로 설정합니다.명령줄 인수:
--config-path옵션을 사용하여 구성 파일 경로를 지정합니다.기본 경로: 현재 디렉토리의
mcp-config.json파일을 사용합니다.
구성 파일 형식:
{
"mcpServers": {
"serverName1": {
"command": "command",
"args": ["arg1", "arg2", ...],
"env": { "ENV_VAR1": "value1", ... }
},
"serverName2": {
"command": "anotherCommand",
"args": ["arg1", "arg2", ...]
}
}
}예:
{
"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"]
}
}
}용법
MCP-Hub-MCP 서버는 다음과 같은 도구를 제공합니다.
1. list-all-tools
연결된 모든 서버에서 도구 목록을 반환합니다.
{
"name": "list-all-tools",
"arguments": {}
}2. call-tool
특정 서버에서 도구를 호출합니다.
serverName: 도구를 호출할 MCP 서버의 이름toolName: 호출할 도구의 이름toolArgs: 도구에 전달할 인수
{
"name": "call-tool",
"arguments": {
"serverName": "filesystem",
"toolName": "readFile",
"toolArgs": {
"path": "/Users/username/Desktop/example.txt"
}
}
}커밋 메시지 규칙
이 프로젝트는 자동 버전 관리 및 CHANGELOG 생성을 위해 기존 커밋을 따릅니다.
형식: <type>(<scope>): <description>
예:
feat: add new hub connection featurefix: resolve issue with server timeoutdocs: update API documentationchore: update dependencies
유형:
feat: 새로운 기능(MINOR 버전 범프)fix: 버그 수정(패치 버전 범프)docs: 문서만 변경됨style: 코드의 의미에 영향을 미치지 않는 변경 사항refactor: 버그를 수정하지도 않고 기능을 추가하지도 않는 코드 변경perf: 성능을 향상시키는 코드 변경test: 누락된 테스트 추가 또는 기존 테스트 수정chore: 빌드 프로세스 또는 보조 도구의 변경
주요 변경 사항: 커밋 바닥글에 BREAKING CHANGE: 추가하여 주요 버전을 올립니다.
기술 스택
노드.js
타입스크립트
@modelcontextprotocol/sdk (버전: ^1.9.0)
zod(버전: ^3.22.4)
특허
MIT
Available Tools
7 toolscall-toolCall ToolA
Call a specific tool from a specific server. TIP: Use find-tools first to discover the tool and get the correct serverName and toolName
| Name | Required | Description | Default |
|---|---|---|---|
| toolArgs | Yes | Arguments to pass to the tool | |
| toolName | Yes | Name of the tool to call | |
| serverName | Yes | Name of the MCP server to call tool from |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must cover behavioral traits. It only states 'call a tool' without mentioning that the call executes the tool, potential side effects, authentication needs, or rate limits. This is minimal for a meta-tool that could trigger arbitrary actions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence plus a tip, which is very concise and front-loaded. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema or annotations, the description fails to explain return values, error handling, or execution behavior. For a tool that calls other tools, the description is incomplete for an agent to understand what to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already describes the parameters. The description adds a helpful tip about using find-tools for correct values, but does not elaborate on the format or semantics of toolArgs or how to construct the object.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool calls a specific tool from a specific server, using a specific verb ('Call') and resource. It distinguishes from sibling tools like find-tools which are for discovery.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly advises to use find-tools first to discover the correct serverName and toolName, providing clear guidance on when to use this tool versus an alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find-toolsFind ToolsA
Use this tool to find best tools by searching with keywords or regex patterns. If you don't have a specific tool for a task, this is the best way to discover what tools are available.
| Name | Required | Description | Default |
|---|---|---|---|
| pattern | Yes | Regex pattern to search for in tool names and descriptions | |
| searchIn | No | Where to search: in tool names, descriptions, or both | both |
| caseSensitive | No | Whether the search should be case-sensitive |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavior. It only says 'find best tools' without explaining what 'best' means, how results are returned, or any limitations. This is insufficient for a search tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with purpose and a usage hint. Every word earns its place; no waste. Perfectly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 3 parameters, no output schema, and no annotations, the description should at least mention what the tool returns (e.g., a list of tool names). It omits this, leaving the agent guessing. Adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all three parameters. The description adds no additional meaning beyond the schema, so baseline 3 applies. It mentions 'keywords or regex patterns' which maps to the pattern parameter, but doesn't enhance understanding of enum options or defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: to find tools by searching with keywords or regex patterns. It distinguishes from siblings like list-all-tools (which lists all) and get-tool (which retrieves a specific tool) by framing it as a discovery tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description advises using the tool when you don't have a specific tool for a task, providing clear context. However, it does not explicitly exclude cases or mention alternatives like list-all-tools for a full inventory.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find-tools-in-serverFind Tools in ServerB
Find tools matching a pattern in a specific MCP server (returns name and description only)
| Name | Required | Description | Default |
|---|---|---|---|
| pattern | Yes | Regex pattern to search for in tool names and descriptions | |
| searchIn | No | Where to search: in tool names, descriptions, or both | both |
| serverName | Yes | Name of the MCP server to search tools in | |
| caseSensitive | No | Whether the search should be case-sensitive |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It only states the limited return (name and description), but does not mention regex syntax, case sensitivity handling (detailed in schema), error behavior, or performance implications. Lacks critical behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that conveys the core purpose efficiently. However, it is somewhat sparse and could include more context without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 4 parameters, 2 required, and no output schema, the description is incomplete. It does not specify return value structure (e.g., array of objects), error conditions, or behavior when no match found. The absence of output schema makes this a significant gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds no extra meaning beyond what the schema's property descriptions already provide. It does not clarify the regex pattern format or default behavior beyond the schema's default values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific verb 'find' and resource 'tools in a specific MCP server', and explicitly notes the limited return ('name and description only'). This distinguishes it from siblings like 'get-tool' (single tool details) or 'list-all-tools-in-server' (no pattern matching).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for pattern-based searching within a server, but provides no guidance on when to choose this over alternatives like 'find-tools' (possibly across servers) or 'list-all-tools-in-server' (no pattern). No exclusion or alternatives mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-toolGet Tool SchemaA
Get complete schema for a specific tool from a specific server, including inputSchema. TIP: Use find-tools first to discover the tool and get the correct serverName and toolName
| Name | Required | Description | Default |
|---|---|---|---|
| toolName | Yes | Exact name of the tool to retrieve | |
| serverName | Yes | Name of the MCP server containing the tool |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It states 'Get complete schema', implying a read operation without side effects, but does not disclose auth needs, rate limits, or return format. Adequate for a simple retrieval but lacks depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no wasted words. Purpose is front-loaded, and the TIP is placed at the end for easy reference.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Though no output schema exists, the description explains the return ('complete schema... including inputSchema'), which is sufficient for an agent. Sibling tools provide context. Minor improvement could specify the exact return structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear parameter descriptions ('Exact name of the tool', 'Name of the MCP server'). The description adds no extra parameter meaning beyond the schema, so baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Get complete schema for a specific tool from a specific server, including inputSchema', using specific verb+resource. It distinguishes from siblings like call-tool (invocation) and find-tools (discovery).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit TIP provides guidance: 'Use find-tools first to discover the tool and get the correct serverName and toolName', telling the agent when to use this tool and suggesting an alternative prerequisite tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list-all-toolsList All ToolsA
List ALL available tools from all connected servers. NOTE: For better performance, use find-tools with keywords first. Only use this when you need to see everything or if find-tools didn't find what you need
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description is straightforward but doesn't disclose read-only nature or any rate limits. Simple operation, so transparency is adequate but not enhanced beyond necessity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first states action, second provides performance advice. Front-loaded and concise with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters, no output schema, and low complexity, the description is complete. It covers what the tool does and how to use it effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist (0 params). Baseline 4 applies. Description is sufficient as no parameter details are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists ALL tools from ALL connected servers. It distinguishes from sibling tools like find-tools (keyword-based) and list-all-tools-in-server (server-specific), using specific verb+resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit guidance: use find-tools first for performance, only use list-all-tools when necessary or when find-tools fails. This tells when to use and when to avoid.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list-all-tools-in-serverList Tools in ServerA
List ALL tools from a specific MCP server (returns name and description only)
| Name | Required | Description | Default |
|---|---|---|---|
| serverName | Yes | Name of the MCP server to list tools from |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses that the tool returns only name and description, which is helpful beyond the input schema. However, it does not explicitly state that the operation is read-only or non-destructive, nor does it mention any prerequisites or potential errors.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, well-structured sentence of 13 words. It front-loads the main action and clarifies the return content in parentheses. Every word carries weight, with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (1 param, no output schema), the description is fairly complete: it states the action, scope, and return format. It lacks mention of error handling or performance, but for a simple listing tool, this is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single parameter 'serverName' with a clear description. The tool description adds no additional meaning beyond the schema, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'List' and resource 'tools from a specific MCP server', clearly distinguishing from siblings like 'list-all-tools' (likely cross-server) and 'find-tools-in-server' (likely filtered). The scope is precise: ALL tools, and it notes the return includes only name and description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use when you need a complete listing from one server, but it does not explicitly state when not to use it or suggest alternatives like 'find-tools-in-server' for filtering. The context from sibling names helps, but the description itself lacks explicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list-serversList ServersB
List all connected MCP servers
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the listing action without revealing whether results are cached, live, or any other behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words. It could benefit from additional detail but remains appropriately concise for a simple listing tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no parameters, the description is adequate but does not explain the return format or any filtering. For a list tool, this is minimally viable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters and the schema coverage is 100%. Baseline 4 applies because the description adds no parameter details but none are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List all connected MCP servers' uses a specific verb ('list') and resource ('connected MCP servers'), clearly distinguishing it from sibling tools like list-all-tools which list tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus siblings like list-all-tools or call-tool. The description only states what it does, not when it is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
7 tool updates
v1.0.3- Added
call-tool - Added
find-tools - Added
find-tools-in-server - Added
get-tool - Added
list-all-tools - Added
list-all-tools-in-server - Added
list-servers
7 tool updates
v1.1.1- Removed
call-tool - Removed
find-tools - Removed
find-tools-in-server - Removed
get-tool - Removed
list-all-tools - Removed
list-all-tools-in-server - Removed
list-servers
7 tool updates
v1.0.0- First observed
call-tool - First observed
find-tools - First observed
find-tools-in-server - First observed
get-tool - First observed
list-all-tools - First observed
list-all-tools-in-server - First observed
list-servers
TDQS
Scored across 7 tools
Most tools are clearly distinct by scope (global vs per-server, discovery vs schema vs invocation). Minor overlap exists between list-all-tools and find-tools, but the descriptions explicitly guide usage.
All tool names follow a consistent kebab-case verb-noun pattern, with clear modifiers like -in-server to indicate scope. The naming is uniform and predictable.
Seven tools is well-scoped for a meta-server that manages other MCP servers. Each tool covers a distinct operation without redundancy or bloat.
The surface covers the full workflow: discover servers, list tools, search tools, inspect schemas, and call tools. No obvious dead ends or missing critical operations for the stated purpose.
Maintenance
Related MCP Connectors
Publish and discover MCP servers via the official MCP Registry. Powered by HAPI MCP server.
Trust, freshness, policy, and discovery layer for public MCP servers.
The official MCP Server for the Mux API
The MCP server that finds MCP servers. Aggregates Official Registry, Glama, and Smithery.
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceA central hub that aggregates multiple MCP resource servers into a single unified interface, enabling users to access tools and capabilities from multiple backend servers through one connection point.68 npm203MIT
- AlicenseBqualityDmaintenanceA hub server that connects to and manages other MCP servers, allowing users to bypass Cursor's 40-tool limit and reduce AI mistakes by hiding infrequently used tools.246 npm3MIT
- FlicenseNot gradedqualityNot gradedmaintenanceMCP Hub aggregates and proxies multiple Model Context Protocol servers into a unified Streamable HTTP interface. It allows users to combine diverse stdio, SSE, and HTTP-based servers while providing tool namespacing, health monitoring, and secure authentication.448 npm-
- AlicenseNot gradedqualityCmaintenanceMCP hub server that aggregates tools from multiple domain packages into a single globally-available interface.1MIT