多宇宙MCP服务器
一个中间件服务器,它使多个相同的MCP服务器实例能够独立共存,并拥有独特的命名空间和配置。
多宇宙MCP服务器创建隔离的操作空间,使得相同的MCP服务器可以同时运行而不会发生冲突。每个"宇宙"都维护自己的配置、文件系统访问和函数命名,使开发者能够运行多个相同服务器类型的实例,同时在不同上下文或项目之间保持完全的隔离。
主要特性
运行多个实例
独立并同时运行相同MCP服务器类型的多个实例。每个实例都在自己的隔离宇宙中运行,具有独立的配置。这支持以下场景:
- 多个指向不同数据库的
mcp-server-mysqlMySQL服务器 - 多个具有不同个人访问令牌的
mcp-server-gitGit服务器 - 多个访问不同根路径的
mcp-server-filesystem文件系统服务器
自动服务器重启
在开发期间,将您的MCP服务器注册为具有文件监视功能。启用后,服务器会自动检测指定目录的变化并执行优雅重启,使开发和测试变得无缝。
基于JSON的配置系统
使用简单且灵活的JSON配置格式定义您的多宇宙设置。每个服务器实例可以配置自己的:
- 命令和参数
- 环境变量
- 路径解析规则
- 文件监视设置
安装
首先,确保您已下载并安装了Claude桌面应用,并且已安装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桌面应用在您启动应用时自动启动mcp-server-multiverse实例。

配置示例
创建两个隔离的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_file,side-project_write_file。- 根路径可以通过使用
pathResolution配置隐藏客户端(例如Claude桌面应用)。
注意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桌面应用)可用
- 它不会出现在可用函数列表中
此功能特别适用于:
- 限制对潜在危险函数的访问(例如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_repository、delete_repository和create_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
验证平台
- Windows
- macOS
- Linux
许可证
MIT