Skip to main content
Glama

多元宇宙 MCP 服务器

中间件服务器允许同一 MCP 服务器的多个隔离实例以独特的命名空间和配置独立共存。

Multiverse MCP 服务器创建了独立的运行空间,相同的 MCP 服务器可以同时运行而不会发生冲突。每个“Universe”都维护自己的配置、文件系统访问和功能命名,使开发人员能够运行同一服务器类型的多个实例,同时保持不同上下文或项目之间的完全隔离。

主要特点

运行多个实例

独立且同时运行同一 MCP 服务器类型的多个实例。每个实例在其独立的环境中运行,并采用独立的配置。这可以实现以下场景:

  • 多个 MySQL 服务器mcp-server-mysql指向不同的数据库

  • 具有不同个人访问令牌的多个 Git 服务器mcp-server-git

  • 多个文件系统服务器mcp-server-filesystem访问不同的根路径

自动服务器重启

在开发过程中为您的 MCP 服务器注册文件监视功能。启用后,服务器会自动检测指定目录中的更改并执行平滑重启,从而实现无缝开发和测试。

基于 JSON 的配置系统

使用简单灵活的 JSON 配置格式定义你的多元宇宙设置。每个服务器实例都可以配置自己的:

  • 命令和参数

  • 环境变量

  • 路径解析规则

  • 文件监视设置

Related MCP server: MCP Server

安装

首先,确保您已经下载并安装了Claude Desktop 应用程序,并且已经安装了 npm。

接下来,将此条目添加到您的claude_desktop_config.json

  • 在 Mac 上,位于~/Library/Application\ Support/Claude/claude_desktop_config.json

  • 在 Windows 上,位于C:\Users\<username>\AppData\Roaming\Claude\claude_desktop_config.json

现在添加您想要运行的 Multiverse 服务器数量。例如,如果您想运行两个mcp-server-multiverse实例,一个用于您的工作,一个用于您的辅助项目,您可以添加以下配置:

{
  "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"
      ]
    }
  }
}

此配置允许 Claude Desktop 在您启动应用程序时自动启动mcp-server-multiverse实例。

演示.png

配置示例

使用不同的数据库创建两个独立的mcp-server-mysql实例

你的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"
      }
    }
  ]
}

您的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"
      }
    }
  ]
}

创建mcp-server-filesystem的独立实例

  • mcp-server-filesystem的功能将通过side-project前缀公开,例如side-project_read_fileside-project_write_file

  • 可以使用pathResolution配置向客户端(例如 Claude Desktop)隐藏根路径。

请注意, pathResolution是可选的,仅当您想向客户端隐藏根路径时才需要。

您的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"
        ]
      }
    }
  ]
}

使用fileWatch在文件更改时自动重启服务器

您的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/"
      }
    }
  ]
}

使用hideFunctions选项隐藏特定函数

你可以使用hideFunctions数组选择性地隐藏包装服务器中的特定函数。当你想使用服务器但又想限制某些潜在危险或不必要的函数的访问时,这非常有用。

hideFunctions数组接受一个函数名列表,这些函数名应该对包装服务器隐藏。隐藏函数时:

  • 它不会在主 MCP 服务器上注册

  • 客户端(例如 Claude Desktop)将无法使用它

  • 它不会出现在可用功能列表中

此功能对于以下情况特别有用:

  • 限制对潜在危险功能的访问(例如 GitHub 中的delete_repository

  • 通过隐藏不常用的功能来简化界面

  • 为不同的服务器实例创建不同的权限级别

{
  "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"
      ]
    }
  ]
}

在这个例子中,GitHub 服务器将正常启动,但是函数create_repositorydelete_repositorycreate_issue将被隐藏并且客户端不可用。

使用enabled标志禁用特定服务器

您可以通过将enabled标志设置为false来选择性地禁用配置中的特定服务器,而无需将其从 JSON 文件中删除。这对于在开发或测试期间暂时禁用服务器非常有用。

{
  "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"
      ]
    }
  ]
}

在这个例子中,第一个服务器(文件系统)将启动,但函数write_file已被隐藏,第二个服务器(GitHub)被禁用并且不会启动。

multiverse.json文件的完整示例

此示例演示如何创建具有多个不同服务器类型实例的多元服务器。

请注意, pathResolution是可选的,仅当您想向客户端隐藏根路径时才需要。

{
  "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"
        ]
      }
    }
  ]
}

待办事项

  • [ ] 添加对Prompts支持

  • [ ] 添加对Resources的支持

  • [ ] 添加用于管理多元宇宙服务器的 GUI

已验证的平台

  • [x] Windows

  • [ ] macOS

  • Linux

执照

麻省理工学院

-
security - not tested
A
license - permissive license
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/lamemind/mcp-server-multiverse'

If you have feedback or need assistance with the MCP directory API, please join our Discord server