mcp-server-multiverse

by lamemind
Verified

local-only server

The server can only run on the client’s local machine because it depends on local resources.

Integrations

  • Provides filesystem access through the server-filesystem component, allowing controlled access to specified directories with path resolution capabilities.

  • Provides Git server functionality with multiple isolated instances, each potentially using different repositories or configurations.

  • Enables GitHub integration with capabilities to interact with repositories, issues, and more, while allowing selective function hiding for repository operations.

Servidor MCP Multiverso

Un servidor middleware que permite que múltiples instancias aisladas de los mismos servidores MCP coexistan de forma independiente con espacios de nombres y configuraciones únicos.

El Servidor MCP Multiverso crea espacios operativos aislados donde servidores MCP idénticos pueden ejecutarse simultáneamente sin conflictos. Cada "universo" mantiene su propia configuración, acceso al sistema de archivos y nombres de funciones, lo que permite a los desarrolladores ejecutar múltiples instancias del mismo tipo de servidor, manteniendo una separación completa entre diferentes contextos o proyectos.

Características principales

Ejecutar múltiples instancias

Ejecute varias instancias del mismo tipo de servidor MCP de forma independiente y simultánea. Cada instancia opera en su propio universo aislado con configuraciones independientes. Esto permite escenarios como:

  • Múltiples servidores MySQL mcp-server-mysql que apuntan a diferentes bases de datos
  • Múltiples servidores Git mcp-server-git con diferentes tokens de acceso personal
  • Múltiples servidores de sistemas de archivos mcp-server-filesystem acceden a diferentes rutas raíz

Reinicio automático del servidor

Registre su servidor MCP con la función de supervisión de archivos durante el desarrollo. Al habilitarla, el servidor detecta automáticamente los cambios en el directorio especificado y se reinicia correctamente, facilitando el desarrollo y las pruebas.

Sistema de configuración basado en JSON

Define la configuración de tu multiverso con un formato JSON simple y flexible. Cada instancia de servidor puede configurarse con sus propios:

  • Comandos y argumentos
  • Variables de entorno
  • Reglas de resolución de rutas
  • Configuración de vigilancia de archivos

Instalación

Primero, asegúrese de haber descargado e instalado la aplicación Claude Desktop y de tener instalado npm.

A continuación, agregue esta entrada a su claude_desktop_config.json

  • en Mac, se encuentra en ~/Library/Application\ Support/Claude/claude_desktop_config.json
  • en Windows, se encuentra en C:\Users\<username>\AppData\Roaming\Claude\claude_desktop_config.json

Ahora, añada la cantidad de servidores multiverso que desea ejecutar. Por ejemplo, si desea ejecutar dos instancias de mcp-server-multiverse , una para su trabajo y otra para su proyecto paralelo, puede añadir la siguiente configuración:

{ "mcpServers": { "job-multiverse": { "command": "npx", "args": [ "-y", "@lamemind/mcp-server-multiverse@latest", "/path/to/your/job-multiverse.json" ] }, "side-project-multiverse": { "command": "npx", "args": [ "-y", "@lamemind/mcp-server-multiverse@latest", "/path/to/your/side-project-multiverse.json" ] } } }

Esta configuración permite que Claude Desktop inicie automáticamente las instancias mcp-server-multiverse cuando inicia la aplicación.

Ejemplos de configuración

Cree dos instancias aisladas de mcp-server-mysql con diferentes bases de datos

Su archivo job-multiverse.json

{ "serverName": "JobMultiverse", "functionsPrefix": "job", "servers": [ { "command": "npx", "args": [ "-y", "@benborla29/mcp-server-mysql" ], "env": { "MYSQL_HOST": "127.0.0.1", "MYSQL_PORT": "3306", "MYSQL_USER": "root", "MYSQL_PASS": "", "MYSQL_DB": "my-job-db" } } ] }

Su archivo side-project-multiverse.json

{ "serverName": "SideProjectMultiverse", "functionsPrefix": "side-project", "servers": [ { "command": "npx", "args": [ "-y", "@benborla29/mcp-server-mysql" ], "env": { "MYSQL_HOST": "127.0.0.1", "MYSQL_PORT": "3306", "MYSQL_USER": "root", "MYSQL_PASS": "", "MYSQL_DB": "side-project-db" } } ] }

Crear una instancia aislada de mcp-server-filesystem

  • Las funciones de mcp-server-filesystem se expondrán con el prefijo side-project , por ejemplo side-project_read_file , side-project_write_file .
  • La ruta raíz se puede ocultar al cliente (por ejemplo, Claude Desktop) mediante la configuración pathResolution .

Tenga en cuenta que pathResolution es opcional y solo es necesario si desea ocultar la ruta raíz al cliente.

Su archivo multiverse.json

{ "serverName": "MySideProject", "functionsPrefix": "side-project", "servers": [ { "command": "npx", "args": [ "-y", "@modelcontextprotocol/server-filesystem@latest", "/full/path/to/side-project" ], "pathResolution": { "root": "/full/path/to/side-project", "applyTo": [ "path", "paths" ] } } ] }

Reinicio automático del servidor al cambiar archivos con fileWatch

Su archivo multiverse.json

{ "serverName": "MySideProject", "functionsPrefix": "side-project", "servers": [ { "command": "node", "args": [ "/my-own/mcp-server/i-m-working-on/build/index.js" ], "fileWatch": { "enabled": true, "path": "/my-own/mcp-server/i-m-working-on/build/" } } ] }

Ocultar funciones específicas con la opción hideFunctions

Puede ocultar selectivamente funciones específicas de los servidores encapsulados mediante la matriz hideFunctions . Esto resulta útil cuando desea usar un servidor, pero restringe el acceso a ciertas funciones potencialmente peligrosas o innecesarias.

La matriz hideFunctions acepta una lista de nombres de funciones que deben ocultarse del servidor encapsulado. Cuando una función está oculta:

  • No se registrará en el servidor principal de MCP.
  • No estará disponible para el cliente (por ejemplo, Claude Desktop)
  • No aparecerá en la lista de funciones disponibles.

Esta función es particularmente útil para:

  • Restringir el acceso a funciones potencialmente peligrosas (por ejemplo, delete_repository en GitHub)
  • Simplificar la interfaz ocultando funciones poco utilizadas
  • Creación de diferentes niveles de permisos para distintas instancias de servidor
{ "serverName": "GitHubWithRestrictions", "functionsPrefix": "github", "servers": [ { "command": "npx", "args": [ "-y", "@modelcontextprotocol/server-github@latest" ], "env": { "GITHUB_PERSONAL_ACCESS_TOKEN": "<your-personal-access-token>" }, "hideFunctions": [ "create_repository", "delete_repository", "create_issue" ] } ] }

En este ejemplo, el servidor GitHub se iniciará normalmente, pero las funciones create_repository , delete_repository y create_issue estarán ocultas y no estarán disponibles para el cliente.

Deshabilitar servidores específicos con la bandera enabled

Puedes deshabilitar servidores específicos de tu configuración sin eliminarlos del archivo JSON. Para ello, establece el indicador " enabled " en " false . Esto resulta útil para deshabilitar servidores temporalmente durante el desarrollo o las pruebas.

{ "serverName": "MySideProject", "functionsPrefix": "side-project", "servers": [ { "command": "npx", "args": [ "-y", "@modelcontextprotocol/server-filesystem@latest", "/full/path/to/side-project" ], "hideFunctions": [ "write_file" ] }, { "enabled": false, "command": "npx", "args": [ "-y", "@modelcontextprotocol/server-github@latest" ] } ] }

En este ejemplo, el primer servidor (sistema de archivos) se iniciará, pero la función write_file se ha ocultado, el segundo servidor (GitHub) está deshabilitado y no se iniciará.

Ejemplo completo de un archivo multiverse.json

Este ejemplo demuestra cómo crear un servidor multiverso con múltiples instancias de diferentes tipos de servidores.

Tenga en cuenta que pathResolution es opcional y solo es necesario si desea ocultar la ruta raíz al cliente.

{ "serverName": "HugeProjectWithALotOfResources", "functionsPrefix": "huge-project", "servers": [ { "command": "node", "args": [ "/my-own/mcp-server/i-m-working-on/build/index.js" ], "fileWatch": { "enabled": true, "path": "/my-own/mcp-server/i-m-working-on/build/" } }, { "command": "npx", "args": [ "-y", "@modelcontextprotocol/server-filesystem@latest", "/full/path/to/huge-project" ], "pathResolution": { "root": "/full/path/to/huge-project", "applyTo": [ "path", "paths" ] } }, { "command": "npx", "args": [ "-y", "@modelcontextprotocol/server-github@latest" ], "env": { "GITHUB_PERSONAL_ACCESS_TOKEN": "<your-personal-access-token>" } }, { "command": "uvx", "args": [ "mcp-server-git", "--repository", "/full/path/to/huge-project" ], "pathResolution": { "root": "/full/path/to/huge-project", "applyTo": [ "repo_path" ] } } ] }

Hacer

  • [ ] Agregar soporte para Prompts
  • [ ] Agregar soporte para Resources
  • [ ] Agregar una GUI para administrar servidores multiverso

Plataformas verificadas

  • [x] Ventanas
  • [ ] macOS
  • [ ] Linux

Licencia

Instituto Tecnológico de Massachusetts (MIT)

ID: xmoltxl3zo