JSON 批量导入
除了通过表单逐个添加,Elftia 还支持通过 JSON 配置一次性导入多个 MCP 服务器。这在以下场景中尤其方便:
- 从其他工具(如 Claude Desktop、Cursor 等)迁移 MCP 配置
- 在团队中共享统一的服务器配置
- 在新设备上快速恢复 MCP 环境
- 一次性配置多个相关服务器
打开 JSON 导入
- 打开 MCP 服务器 页面
- 点击 添加 按钮
- 在弹出的表单中切换到 JSON 导入 模式
JSON 格式
推荐格式:mcpServers 批量配置
这是推荐的 JSON 格式,与 Claude Desktop 等工具的配置格式兼容。支持一次添加多个服务器:
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/yourname/Documents"]
},
"brave-search": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-brave-search@latest"],
"env": {
"BRAVE_API_KEY": "your-brave-api-key"
}
},
"web-reader": {
"url": "https://api.example.com/mcp",
"headers": {
"Authorization": "Bearer your-token"
}
}
}
}
单服务器格式
如果只需要添加一个服务器,也可以使用简化格式:
{
"name": "my-server",
"type": "stdio",
"command": "npx",
"args": ["-y", "@example/mcp-server"]
}
JSON 字段说明
mcpServers 格式
在 mcpServers 对象中,每个键名即为服务器名称,值为配置对象:
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
command | string | Stdio 必填 | 启动命令 |
args | string[] | 否 | 命令参数 |
env | object | 否 | 环境变量键值对 |
url | string | SSE/HTTP 必填 | 服务器端点 URL |
headers | object | 否 | HTTP 请求头 |
type | string | 否 | 传输类型:stdio、sse、http |
:::info 类型自动推断
如果未指定 type 字段,系统会自动推断:
- 有
command→stdio - 有
url→sse:::
单服务器格式
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
name | string | 是 | 服务器名称 |
type | string | 否 | 传输类型,自动推断 |
command | string | Stdio 必填 | 启动命令 |
args | string[] | 否 | 命令参数 |
env | object | 否 | 环境变量 |
url | string | SSE/HTTP 必填 | 服务器端点 URL |
headers | object | 否 | HTTP 请求头 |
完整示例
示例 1:文件系统 + 搜索组合
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/yourname/projects"]
},
"tavily-search": {
"command": "npx",
"args": ["-y", "tavily-mcp@latest"],
"env": {
"TAVILY_API_KEY": "tvly-xxxxxxxxxxxxx"
}
}
}
}
示例 2:GitHub + 数据库
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_xxxxxxxxxxxxx"
}
},
"sqlite": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-sqlite", "/path/to/database.db"]
}
}
}
示例 3:混合本地和远程服务器
{
"mcpServers": {
"local-files": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/yourname/Documents"]
},
"web-search": {
"url": "https://api.z.ai/api/mcp/web_search_prime/mcp",
"headers": {
"Authorization": "Bearer your-api-key"
}
},
"web-reader": {
"url": "https://api.z.ai/api/mcp/web_reader/mcp",
"headers": {
"Authorization": "Bearer your-api-key"
}
}
}
}
示例 4:Python 工具(使用 uvx)
{
"mcpServers": {
"minimax-tools": {
"command": "uvx",
"args": ["minimax-coding-plan-mcp", "-y"],
"env": {
"MINIMAX_API_KEY": "your-minimax-key",
"MINIMAX_API_HOST": "https://api.minimaxi.com"
}
}
}
}
导入流程
- 将 JSON 内容粘贴到输入框
- 系统会实时校验 JSON 格式,如有错误会在下方显示提示
- 校验通过后点击 保存
- 对于 Stdio 服务器,系统会自动检查所需依赖(如
npx、uvx) - 如依赖缺失,弹出安装提示
- 所有服务器添加完成后,自动刷新服务器列表
校验规则
- JSON 必须是合法的 JSON 格式
- mcpServers 格式:每个服务器配置必须包含
command、url或type中的至少一个 - 单服务器格式:
stdio类型必须有command,http/sse类型必须有url - 服务器名称不可与已有服务器重复
跨设备共享配置
导出配置
目前 Elftia 的 MCP 配置存储在本地文件 mcp-config 中。你可以通过以下方式导出:
- 在 MCP 服务器列表页面编辑某个服务器,查看其完整配置
- 手动整理为 JSON 格式后保存为文件共享
从 Claude Desktop 迁移
如果你之前在 Claude Desktop 中配置了 MCP 服务器,可以直接复制其配置文件中的 mcpServers 部分:
- 打开 Claude Desktop 配置文件(通常位于
~/.claude/config.json) - 找到
mcpServers部分 - 整理为上述 JSON 格式
- 在 Elftia 中使用 JSON 导入
:::caution 注意事项
- 导入时请确保环境变量中的 API Key 等敏感信息正确无误
- 导出配置时注意不要泄露 API Key 等敏感信息
- 文件路径需要根据目标设备的实际路径进行调整 :::
故障排除
JSON 格式错误
症状:输入 JSON 后下方显示红色错误提示。
解决方案:
- 检查 JSON 语法(括号、引号、逗号是否匹配)
- 使用 JSON 格式化工具验证格式
- 注意转义字符(如 Windows 路径中的反斜杠需要写成
\\)
部分服务器添加失败
症状:批量导入后部分服务器未出现在列表中。
解决方案:
- 检查是否存在同名服务器(名称不可重复)
- 查看控制台是否有错误信息
- 尝试将失败的服务器单独使用表单添加