#15807·nacos

MCP 管理支持批量导入

Author: 1lckCreated Sep 2, 2026Updated Sep 8, 2026
Labelskind/featurearea/MCP

关联总需求:#14107 关联导出:#15806 关联克隆:#15808

背景

MCP 列表目前不支持批量导入,需要支持通过导出文件快速恢复或迁移 MCP 配置。

方案

  • 导入格式与批量导出一致,使用 McpServerDetailInfo[] JSON 数组,一个文件可包含多个 MCP。
  • 上传后校验文件大小、MCP 数量、字段内容、Tools/Resources 数量及 endpoint 配置。
  • 整个文件格式错误时直接失败;单条数据无效时跳过,并返回逐条处理结果。
  • 通过 MCP lifecycle 逻辑创建资源,不直接写底层 Config。
  • 默认创建 draft,不直接发布上线。
  • 使用 ABORTSKIPOVERWRITE 处理目标资源冲突。
  • 导入时校验目标 namespace 的普通写权限和 AI visibility 权限。
  • REF 类型保留原始 namespace、group、service 引用,不自动复制或删除被引用的 Naming Service。
  • owner、scope、labels 等元数据的处理规则需要明确,内部 ID 不应直接导入。

处理流程

  1. 接收 multipart JSON 文件,先校验文件大小和基础格式。
  2. 使用 Jackson 解析为 McpServerDetailInfo[],校验总数量和单条内容。
  3. 对每条数据校验名称、版本、Tools/Resources、endpoint 及 REF 引用。
  4. 按冲突策略预检查目标 MCP。
  5. 合法条目通过 lifecycle service 创建或更新 draft。
  6. 返回成功、跳过、失败数量及逐条结果。

整文件解析失败时不执行写入;单条校验失败时不影响其他合法条目。

待确认

  • 文件大小、MCP 数量及 Tools/Resources 数量限制是否需要配置化。
  • 导入后的 draft 是否允许在同一流程中选择发布。
  • REF 引用不存在或无访问权限时,是否直接跳过该 MCP。
  • owner、scope、labels 是否保留源数据,还是按目标环境重新生成。