多元MCP服务器
一种中间件服务器,使同一MCP服务器的多个隔离实例能够与唯一的命名空间和配置独立共存。
Multiverse MCP服务器创建了隔离的操作空间,相同的MCP服务器可以同时运行而不会发生冲突。每个“宇宙”都维护着自己的配置、文件系统访问和函数命名,使开发人员能够运行同一服务器类型的多个实例,同时保持不同上下文或项目之间的完全分离。
主要特点
运行多个实例
独立并同时运行同一MCP服务器类型的多个实例。每个实例都在其独立的宇宙中运行,具有单独的配置。这可以实现以下场景:
- 多个MySQL服务器
mcp-server-mysql指向不同的数据库 - 多个Git服务器
mcp-server-git使用不同的个人访问令牌 - 多个文件系统服务器
mcp-server-filesystem访问不同的根路径
自动服务器重新启动
在开发过程中注册具有文件监视功能的MCP服务器。启用后,服务器会自动检测指定目录中的更改,并执行优雅的重启,使开发和测试无缝衔接。
基于JSON的配置系统
使用简单灵活的JSON配置格式定义您的多元宇宙设置。每个服务器实例都可以配置自己的:
- 命令和参数
- 环境变量
- 路径解析规则
- 文件监视设置
托管部署
托管部署可在 Frontier AI.
安装
首先,确保您已下载并安装 Claude桌面应用程序 你已经安装了npm。
接下来,将此条目添加到您的 claude_desktop_config.json
- 在Mac上,可在以下位置找到
~/Library/Application\ Support/Claude/claude_desktop_config.json - 在Windows上,可以在以下位置找到
C:\Users\\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 启动应用程序时的实例。
配置示例
创建两个独立的实例 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配置。
请注意 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)将无法使用它
- 它不会出现在可用功能列表中
此功能特别适用于:
- 限制对潜在危险功能的访问(例如。,
delete_repository在GitHub上) - 通过隐藏很少使用的函数简化界面
- 为不同的服务器实例创建不同的权限级别
{
"serverName": "GitHubWithRestrictions",
"functionsPrefix": "github",
"servers": [
{
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-github@latest"
],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": ""
},
"hideFunctions": [
"create_repository",
"delete_repository",
"create_issue"
]
}
]
}在这个例子中,GitHub服务器将正常启动,但 create_repository, delete_repository,以及 create_issue 将被隐藏,客户端无法访问。
使用禁用特定服务器 enabled 旗帜
您可以通过设置以下参数来选择性地禁用配置中的特定服务器,而无需将其从JSON文件中删除 enabled 旗帜到 false。这对于在开发或测试期间临时禁用服务器非常有用。
{
"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)已禁用,将无法启动。
a的完整示例 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": ""
}
},
{
"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\] 窗户
- \[\]macOS
- \[\]Linux
许可证
麻省理工学院

