feat(mcp): 完善独立 MCP 服务器配置中心与连接生命周期管理 #13

Merged
Kronecker merged 4 commits from feat/mcp-server-registry into main 2026-09-03 22:45:55 +08:00
Owner

概述

完成第二阶段 C.1 独立 MCP Server 配置中心,补齐前后端管理流程,并修复多轮审阅发现的配置、凭据、并发及协议边界问题。

独立 MCP Server 与 Plugin 自带的 MCP Host 保持并列,不依赖 Plugin 安装流程。

主要变更

  • 支持 stdio、Streamable HTTP 和兼容旧版 SSE。
  • 支持服务器新增、编辑、删除、连接确认、测试、启停及工具摘要查询。
  • 提供表单与 JSON 配置模式、传输模板和连接状态展示。
  • 兼容 command/args/env 及单服务器 mcpServers 配置导入。
  • 自动拆分已声明及常见敏感字段,通过独立凭据接口加密保存。
  • 支持动态工具注册、异常连接清理及已启用服务器的重启恢复。
  • 修复工作区无法在选中文件夹下新建 Markdown 文件的问题。

审阅问题修复

  • 将独立 MCP 接口操作移至工作线程,避免等待生命周期锁时阻塞 API。
  • 引入连接代次校验,防止旧连接的延迟回调误停新连接。
  • 补齐 JSON 默认值与运行时校验,修复模式切换和精简配置编辑失败。
  • 修复配置保存后密钥写入失败的重试流程,避免重复创建服务器。
  • 统一 Header 凭据及暂存草稿的大小写规则,避免改名丢失密钥。
  • 环境变量凭据改用区分大小写的 ID,并提供旧密文迁移及防复活处理。
  • 修复独立服务器与 Plugin 超时约束不一致,支持 120 秒启动超时及小数超时。
  • 在 SSE 完整行生成前检查缓冲大小,覆盖无换行输入、跨块 UTF-8 和多种换行格式。
  • 补充开发说明、填写示例及修复验收清单。

安全与数据边界

  • API 查询不返回已保存的密钥明文。
  • 配置或凭据变更后须重新测试,必要时重新确认连接。
  • stdio 仅在开发环境开放;uvx 仅隔离依赖,不视为操作系统沙箱。
  • 保持严格的 stdio JSON-RPC 校验,不忽略第三方程序写入 stdout 的普通日志。
  • server.json、servers.json 及 backend/data/mcp/ 已加入忽略规则,未纳入提交。

验证结果

  • 后端:185 项测试通过。
  • 前端:54 项测试通过。
  • TypeScript 检查及前端生产构建通过。
  • 本次涉及文件的 Ruff 检查通过。
  • Git 差异检查通过。

新增回归覆盖锁竞争、延迟回调、凭据迁移、配置保存重试、Header 草稿改名及 SSE 输入限长。

仍有既有的前端大包体积和测试依赖弃用警告,不阻塞本次合并。

合并说明

审阅提交:9b8b10c

本轮未发现新的合并阻塞问题,建议合并至 main。当前 main 为本分支祖先,无分叉冲突。

验证不包含真实 MiniMax API 鉴权或计费调用;第三方服务器兼容性仍需按具体实现验证。

## 概述 完成第二阶段 C.1 独立 MCP Server 配置中心,补齐前后端管理流程,并修复多轮审阅发现的配置、凭据、并发及协议边界问题。 独立 MCP Server 与 Plugin 自带的 MCP Host 保持并列,不依赖 Plugin 安装流程。 ## 主要变更 - 支持 stdio、Streamable HTTP 和兼容旧版 SSE。 - 支持服务器新增、编辑、删除、连接确认、测试、启停及工具摘要查询。 - 提供表单与 JSON 配置模式、传输模板和连接状态展示。 - 兼容 command/args/env 及单服务器 mcpServers 配置导入。 - 自动拆分已声明及常见敏感字段,通过独立凭据接口加密保存。 - 支持动态工具注册、异常连接清理及已启用服务器的重启恢复。 - 修复工作区无法在选中文件夹下新建 Markdown 文件的问题。 ## 审阅问题修复 - 将独立 MCP 接口操作移至工作线程,避免等待生命周期锁时阻塞 API。 - 引入连接代次校验,防止旧连接的延迟回调误停新连接。 - 补齐 JSON 默认值与运行时校验,修复模式切换和精简配置编辑失败。 - 修复配置保存后密钥写入失败的重试流程,避免重复创建服务器。 - 统一 Header 凭据及暂存草稿的大小写规则,避免改名丢失密钥。 - 环境变量凭据改用区分大小写的 ID,并提供旧密文迁移及防复活处理。 - 修复独立服务器与 Plugin 超时约束不一致,支持 120 秒启动超时及小数超时。 - 在 SSE 完整行生成前检查缓冲大小,覆盖无换行输入、跨块 UTF-8 和多种换行格式。 - 补充开发说明、填写示例及修复验收清单。 ## 安全与数据边界 - API 查询不返回已保存的密钥明文。 - 配置或凭据变更后须重新测试,必要时重新确认连接。 - stdio 仅在开发环境开放;uvx 仅隔离依赖,不视为操作系统沙箱。 - 保持严格的 stdio JSON-RPC 校验,不忽略第三方程序写入 stdout 的普通日志。 - server.json、servers.json 及 backend/data/mcp/ 已加入忽略规则,未纳入提交。 ## 验证结果 - 后端:185 项测试通过。 - 前端:54 项测试通过。 - TypeScript 检查及前端生产构建通过。 - 本次涉及文件的 Ruff 检查通过。 - Git 差异检查通过。 新增回归覆盖锁竞争、延迟回调、凭据迁移、配置保存重试、Header 草稿改名及 SSE 输入限长。 仍有既有的前端大包体积和测试依赖弃用警告,不阻塞本次合并。 ## 合并说明 审阅提交:9b8b10c 本轮未发现新的合并阻塞问题,建议合并至 main。当前 main 为本分支祖先,无分叉冲突。 验证不包含真实 MiniMax API 鉴权或计费调用;第三方服务器兼容性仍需按具体实现验证。
Kronecker added 4 commits 2026-09-03 22:45:41 +08:00
Implement C.1 stdio MCP server CRUD, encrypted environment secrets, command digest approval, connection tests, lifecycle recovery, and dynamic tool registration. Add the standalone frontend configuration center, contracts, regression tests, and development documentation.
添加了MCP客户端的超时配置功能,包括启动超时和工具调用超时参数。
改进了HTTP客户端和标准IO客户端的超时处理机制,确保请求在指定时间内完成或取消。
增加了对MCP服务器数量的限制,防止配置过多服务器导致系统不稳定。
增强了错误处理机制,当连接异常时能够正确清理资源并移除桥接主机。
添加了对大型MCP消息的大小验证,防止过大的请求导致系统问题。
优化了密钥更改后的处理流程,确保在修改密钥时停用服务器并要求重新测试。
修复生命周期锁阻塞事件循环、旧连接回调误停新连接及超时契约不一致。

补齐 MCP JSON 兼容导入、密钥拆分与失败重试,修复 Header 大小写草稿丢失,迁移大小写敏感的环境变量凭据。

在 SSE 行拼接前限制缓冲大小,增加并发、迁移和流式输入回归测试;忽略本机 MCP 数据及 server.json/servers.json。

验证:后端 185 项、前端 54 项测试通过,前端生产构建、相关文件 Ruff 与暂存差异检查通过。
Kronecker merged commit 78e8e3e33b into main 2026-09-03 22:45:55 +08:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Kronecker/NotesAgentic#13