返回市场
MCP服务器多宇宙

MCP服务器多宇宙

作者:lamemind75 星标更新:2025-06-05

项目介绍

Multiverse MCP 服务器

一种中间件服务器,允许相同类型的多个 MCP 服务器实例独立共存,具有独特的命名空间和配置。

Multiverse MCP 服务器创建了隔离的操作空间,在这些空间中,相同的 MCP 服务器可以同时运行而不会发生冲突。每个“宇宙”都维护自己的配置、文件系统访问权限和函数命名,使开发者能够在不同的上下文或项目之间运行多个相同类型的服务器实例,同时保持完全的隔离。

主要特性

运行多个实例

独立并同时运行相同类型 MCP 服务器的多个实例。每个实例在其自己的隔离宇宙中运行,并具有单独的配置。这使得以下场景成为可能:

  • 多个指向不同数据库的 MySQL 服务器 mcp-server-mysql
  • 具有不同个人访问令牌的多个 Git 服务器 mcp-server-git
  • 访问不同根路径的多个文件系统服务器 mcp-server-filesystem

自动服务器重启

在开发过程中注册具有文件监视能力的 MCP 服务器。启用后,服务器会自动检测指定目录中的更改并执行优雅重启,使开发和测试无缝进行。

基于 JSON 的配置系统

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

  • 命令和参数
  • 环境变量
  • 路径解析规则
  • 文件监视设置

安装

首先,请确保您已下载并安装了 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

现在,添加您想要运行的多宇宙服务器数量。例如,如果您想运行两个 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 实例。

demo.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"
        ]
      }
    }
  ]
}

文件更改时自动重启服务器

您的 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": {
        你的个人访问令牌
      }
    },
    {
      "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

验证平台

  • Windows
  • macOS
  • Linux

许可证

MIT