MCP Hub

Un servidor central que se conecta y gestiona otros servidores MCP.

Documentación

Install MCP Server

Install in VS Code

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:

  1. Variable de entorno: Establece la variable de entorno MCP_CONFIG_PATH a la ruta del archivo de configuración
  2. Argumento de línea de comandos: Usa la opción --config-path para especificar la ruta del archivo de configuración
  3. Ruta predeterminada: Usa el archivo mcp-config.json en 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 herramienta
  • toolName: Nombre de la herramienta a llamar
  • toolArgs: 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 herramientas
  • searchIn: 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 feature
  • fix: resolve issue with server timeout
  • docs: update API documentation
  • chore: 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ón
  • style: Cambios que no afectan el significado del código
  • refactor: Cambio de código que ni corrige un error ni agrega una funcionalidad
  • perf: Cambio de código que mejora el rendimiento
  • test: Agregar pruebas faltantes o corregir pruebas existentes
  • chore: 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