Skip to content

feat: 提供 MCP 系统组件与独立 Windows-MCP 插件 - #218

Open
Rvosy wants to merge 6 commits into
mainfrom
feat/mcp-components-windows
Open

Rvosy wants to merge 6 commits into
mainfrom
feat/mcp-components-windows

Conversation

@Rvosy

@Rvosy Rvosy commented Sep 15, 2026

Copy link
Copy Markdown
Owner

改动

将旧 MCP 接入替换为供插件调用的 sakura.mcp 系统组件。用户升级只增加基础组件,没有服务器管理设置页;Windows-MCP 单独构建 ZIP,不随主程序安装或更新。

  • 使用私有依赖中的官方 SDK,支持 stdio、Streamable HTTP、SSE、OAuth、分块结果及调用进程退出后的资源回收。
  • 添加独立 Windows-MCP 插件,修复 setup 完成后动态注册工具不会生效的问题。
  • 两个插件接入宿主日志,覆盖连接、调用失败、工具发现及服务端诊断,沿用统一脱敏流程。
  • 清理旧接入与配置恢复路径,同步接口文档、打包及 CI 私有依赖准备。

验证

  • 最新提交 61164bacCI 34994406430 全部 7 项通过:Python、前端、遥测、Rust 格式,以及 Windows/macOS/Linux 原生检查。

  • 真实 Windows-MCP 0.8.5:发现 20 个工具,只读 Snapshot 成功,停用后两个服务端进程回收;已验证从用户插件目录独立加载。未验证全部桌面写入操作。

  • 日志集成测试验证服务端 stderr、失败记录与测试令牌脱敏;文档检查通过。

  • 当前提交的 MCP、插件运行时和进程清理回归:42 passed、5 skipped;GitHub CI 结果另见检查项。

CI 失败与修复记录

首轮 CI(提交 ea9ad789,run 34992988913,attempt 1,Ubuntu)发现两项确定问题:

  • Python 测试:收集签名验证测试时 ModuleNotFoundError: No module named 'cryptography'。旧 MCP 依赖移出主环境后,测试依赖不再间接获得 cryptography;已在开发依赖中显式声明。本地 25 个打包测试收集通过。
  • Rust 格式:删除 MCP match 条件后,runtime_log.rs 未按 rustfmt 重新排版;已修正,本地格式检查通过。

两项修复在 8e311e47,由 34993248087 验证:Rust 格式通过,Python 测试完成收集并执行,未再出现依赖缺失。

第二轮 CI(提交 8e311e47,attempt 1,Ubuntu)的 Python 测试 为 1 failed、1283 passed、43 skipped。唯一失败为 test_bundled_plugin_manifests_are_all_v4_defaults:预期内置插件名单遗漏新增的 sakura.mcp61164bac 更新名单,保留完整集合断言,因此 Windows-MCP 仍不能混入内置插件。相关文件本地 4 个测试通过;第三轮 Python CI 已验证 1284 passed、43 skipped。

本地合并阻塞

上次本地打包回归中,tests/unit/test_release_packaging.py::test_development_dependency_build_replaces_all_roots_after_validationtools/development_plugin_dependencies.py:130os.replace(staging, final)PermissionError: [WinError 5]。首次日志保留于本地 temp/windows-mcp-research/independent-tests.log,该次结果为 1 failed、26 passed、1 skipped。目录替换被拒绝的原因尚未确定,未用重跑通过视为修复,解决前不合并。

2026-09-16 对同一用例做了一次目录属性诊断复现:源目录与父目录属性均为 16(普通目录),目标不存在,重命名成功。该证据没有复现首次错误,不能确定首次失败是否涉及文件句柄、ACL 或其他因素;不据此认定问题已修复。诊断日志保留于本地 temp/windows-mcp-research/rename-diagnostic.log

移除 Core 内的 MCP Bridge、Provider、状态命令和主 Runtime 依赖;旧版导入不再恢复服务器,联网插件独立运行。同步删除失效测试及旧 Harness journey。
通过独立依赖的官方 SDK 提供连接、操作、事件与 OAuth 接口,支持 stdio、Streamable HTTP 和 SSE。按调用进程隔离资源并在作用域关闭时清理,不提供独立管理界面。同步更新组件契约、打包流程及相关测试。
通过 MCP 核心公共接口启动官方 Windows-MCP,发现工具并转发调用,支持分块结果与服务进程回收。修复插件完成 setup 后新增工具不会激活的问题,补充动态注册和隔离集成测试。

真实 Windows-MCP 0.8.5 已发现 20 个工具,成功调用只读 Snapshot,停用后两个服务端进程均已回收;未验证全部桌面操作。
核心组件与 Windows-MCP 接入统一日志、脱敏和服务端诊断。Windows-MCP 保持独立 ZIP 分发,测试从用户插件目录加载。CI 显式准备 MCP 私有依赖,不安装到主 Runtime。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant