MCP Hub
Un servidor central que se conecta y gestiona otros servidores MCP.
Documentación
Servidor MCP-Hub-MCP
Un servidor hub que se conecta y gestiona otros servidores MCP (Protocolo de Contexto de Modelo).
Resumen
Este proyecto construye un servidor hub MCP que se conecta y gestiona múltiples servidores MCP (Protocolo de Contexto de Modelo) a través de una única interfaz. Ayuda a prevenir el uso excesivo de contexto y la contaminación de MCPs utilizados con poca frecuencia (por ejemplo, Atlassian MCP, Playwright MCP) permitiendo conectarlos solo cuando sea necesario. Esto reduce errores de IA y mejora el rendimiento manteniendo el conjunto de herramientas activas enfocado y manejable.
Características Clave
- Conexión automática a otros servidores MCP mediante archivo de configuración
- Listar herramientas disponibles en servidores conectados
- Llamar herramientas en servidores conectados y devolver resultados
Configuración
Agrega esto a tu mcp.json:
Usando npx
{
"mcpServers": {
"other-tools": {
"command": "npx",
"args": [
"-y",
"mcp-hub-mcp",
"--config-path",
"/Users/username/mcp.json"
]
}
}
}
Instalación y Ejecución
Requisitos
- Node.js 18.0.0 o superior
- npm, yarn, o pnpm
Instalación
# Clone repository
git clone <repository-url>
cd mcp-hub-mcp
# Install dependencies
npm install
# or
yarn install
# or
pnpm install
Compilación
npm run build
# or
yarn build
# or
pnpm build
Ejecución
npm start
# or
yarn start
# or
pnpm start
Modo de Desarrollo
npm run dev
# or
yarn dev
# or
pnpm dev
Archivo de Configuración
El servidor MCP-Hub-MCP utiliza un archivo de configuración en formato Claude Desktop para conectarse automáticamente a otros servidores MCP. Puedes especificar el archivo de configuración de las siguientes maneras:
- Variable de entorno: Establece la variable de entorno
MCP_CONFIG_PATHa la ruta del archivo de configuración - Argumento de línea de comandos: Usa la opción
--config-pathpara especificar la ruta del archivo de configuración - Ruta predeterminada: Usa el archivo
mcp-config.jsonen el directorio actual
Formato del archivo de configuración:
{
"mcpServers": {
"serverName1": {
"command": "command",
"args": ["arg1", "arg2", ...],
"env": { "ENV_VAR1": "value1", ... }
},
"serverName2": {
"command": "anotherCommand",
"args": ["arg1", "arg2", ...]
}
}
}
Ejemplo:
{
"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"]
}
}
}
Uso
El servidor MCP-Hub-MCP proporciona las siguientes herramientas:
1. list-all-tools
Devuelve una lista de herramientas de todos los servidores conectados.
{
"name": "list-all-tools",
"arguments": {}
}
2. call-tool
Llama a una herramienta en un servidor específico.
serverName: Nombre del servidor MCP desde el cual llamar la herramientatoolName: Nombre de la herramienta a llamartoolArgs: Argumentos a pasar a la herramienta
{
"name": "call-tool",
"arguments": {
"serverName": "filesystem",
"toolName": "readFile",
"toolArgs": {
"path": "/Users/username/Desktop/example.txt"
}
}
}
3. find-tools
Encuentra herramientas que coincidan con un patrón regex en todos los servidores conectados (funcionalidad tipo grep).
pattern: Patrón regex para buscar en nombres y descripciones de herramientassearchIn: Dónde buscar: "name", "description", o "both" (predeterminado: "both")caseSensitive: Si la búsqueda debe distinguir entre mayúsculas y minúsculas (predeterminado: false)
{
"name": "find-tools",
"arguments": {
"pattern": "file",
"searchIn": "both",
"caseSensitive": false
}
}
Ejemplos de patrones:
"file"- Encuentra todas las herramientas que contengan "file""^read"- Encuentra todas las herramientas que comiencen con "read""(read|write).*file"- Encuentra herramientas para leer o escribir archivos"config$"- Encuentra herramientas que terminen con "config"
Ejemplo de salida:
{
"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"]
}
}
]
}
Convención de Mensajes de Commit
Este proyecto sigue Conventional Commits para versionado automático y generación de CHANGELOG.
Formato: <type>(<scope>): <description>
Ejemplos:
feat: add new hub connection featurefix: resolve issue with server timeoutdocs: update API documentationchore: update dependencies
Tipos:
feat: Nueva funcionalidad (incremento de versión MINOR)fix: Corrección de errores (incremento de versión PATCH)docs: Cambios solo de documentaciónstyle: Cambios que no afectan el significado del códigorefactor: Cambio de código que ni corrige un error ni agrega una funcionalidadperf: Cambio de código que mejora el rendimientotest: Agregar pruebas faltantes o corregir pruebas existenteschore: Cambios en el proceso de compilación o herramientas auxiliares
Cambios de Ruptura:
Agrega BREAKING CHANGE: en el pie del commit para activar un incremento de versión MAJOR.
Otros Enlaces
Licencia
MIT