READMEmain
We couldn't render this README. Read it on GitHub
赛搏MCP 工具箱(桌面控制篇)
让小智设备 "动手",帮助在你的 Windows 电脑上自动完成各种操作。
本仓库基于 Model Context Protocol (MCP),将多种桌面自动化能力封装为可被供各类小智设备调用的 MCP 工具(tool);
通过 mcp_pipe.py 建立 WebSocket 通道后,云端的大模型即可像调用 API 一样调用本地脚本,完成打开/关闭应用、管理 Outlook 日历与邮件、自动发送微信消息、记录工作日志等操作。
一、模块总览
| 模块 | 主要功能 | 关键依赖 | 运行方式示例 |
|---|---|---|---|
app_launcher.py | • 打开/关闭常用桌面应用 • 打开谷歌浏览器 • 谷歌/百度搜索 • 打开微信 • 打开QQ音乐 • 打开腾讯会议 • 通过 Steam 启动 Dota 2 | psutil | python mcp_pipe.py app_launcher.py |
outlook_manager.py | • 增删查改 Outlook 日历事件 • 发送邮件(支持附件/重要性) • 增删查改联系人 CRUD • 批量删除日历事件 | pywin32、dateparser(可选) | python mcp_pipe.py outlook_manager.py |
Wechat_Sender.py | • 向指定联系人发送微信文字消息 | wxauto | python mcp_pipe.py Wechat_Sender.py |
work_logger.py | • 在桌面生成 "工作日志/日期.txt" 并追加条目 | 无 | python mcp_pipe.py work_logger.py |
start_all_services.py | • 一键启动并守护所有上述模块 | 内置 | python start_all_services.py |
mcp_pipe.py | • WebSocket ↔ 本地脚本双向管道 • 自动重连 & 子进程管理 | websockets、python-dotenv | 内部调用 |
实现原理剖析
-
MCP 协议
- 每个脚本通过
FastMCP("ToolName")注册自身为一个 MCP Server。 - 使用装饰器
@mcp.tool()暴露可调用函数,函数签名即为 tool schema。 - 云端模型发送
CallToolRequest,脚本执行函数并返回 JSON 结果。
- 每个脚本通过
-
mcp_pipe.py
- 启动后读取
MCP_ENDPOINT,与云端 Gateway 建立 WebSocket 连接。 - 随即作为父进程拉起指定脚本 (
python tool.py) 并通过 stdio 实现双向数据转发。 - 如连接中断,采用指数退避策略自动重连。
- 启动后读取
-
各业务脚本
app_launcher: 通过subprocess.Popen打开应用,psutil遍历并终止进程;浏览器搜索使用webbrowser.open;Steam 启动游戏则依赖steam://协议。outlook_manager: 基于pywin32的 COM Automation,直接调用 Outlook 对象模型;若安装dateparser,可解析自然语言时间("明天下午三点")。Wechat_Sender: 使用wxauto寻找微信窗口、搜索联系人并发送文本,属于 UI 自动化;需保证微信前台运行。work_logger: 纯文件写入,无外部依赖。
-
接通小智智能体
xiaozhi.me: 通过xiaozhi.me网站打开"控制台"再打开"智能体"的"配置角色",最下方右下角有一个"MCP接入点",复制里面的接入点地址(WSS开头)到本项目的cp_pipe.py文件(可用记事本打开)第183行即可实现与小智智能体绑定,该智能体下的所有小智设备均可共享MCP服务。
二、零基础部署教程(Windows 版)
目标:在一台全新 Windows 10/11 电脑上,成功启动
start_all_services.py并让云端 AI 能够调用本地工具。
0. 准备工作
- 一台联网的 Windows 10/11 PC(必须,64 位)。
- 安装好 Git(可选,用于克隆仓库;无则直接下载 ZIP)。
- 安装并登录:Microsoft Outlook(建议安装,否则无法实现邮件、日历提醒功能)、PC 微信、Steam + Dota 2等软件。
- 需要特别注意的是:Microsoft Outlook需要安装Classic版本(可联系进群获取,也可在网盘下载,Outlook新版不支持python工具库操作;微信版本需要再3.9.12.X以下,新版本也不支持python工具库操作。
1. 打开命令行
- 按
Win + R,输入cmd并回车,打开 命令提示符。 - 推荐右键→"以管理员身份运行",后续操作更顺畅。
2. 安装 / 检查 Python
python --version
- 若返回版本号 ≥ 3.10,跳到步骤 3。
- 若提示 "不是内部或外部命令",请:
- 访问 https://www.python.org/downloads/windows/ 下载 Windows 安装包 (x64 installer)。
- 双击安装,务必勾选 "Add Python to PATH",并保持"Install for all users"。
- 安装完成后关闭并重新打开 CMD,再次执行
python --version验证。
3. 获取代码
cd %USERPROFILE%\Desktop &rem 将代码放桌面,可自行调整路径
echo ==== 克隆仓库 ====
git clone https://github.com/<your_name>/mcp-tools.git
cd mcp-tools
若无 Git,可点击 GitHub Code → Download ZIP,解压到任意目录并 cd 进去。
4. 创建虚拟环境(可选但强烈推荐)
python -m venv .venv
call .venv\Scripts\activate
激活后,命令行前缀会出现 (venv)。
5. 更新 pip & 安装依赖
python -m pip install --upgrade pip
pip install -r requirements.txt
安装时间取决于网络;pywin32 体积较大,耐心等待。
若需要微信自动化,额外安装:
pip install wxauto
6. 配置环境变量(MCP Endpoint)
- 接通小智智能体
- 通过
xiaozhi.me网站打开"控制台"再打开"智能体"的"配置角色",最下方右下角有一个"MCP接入点",复制里面的接入点地址(WSS开头)到本项目的cp_pipe.py文件(可用记事本打开)第183行即可实现与小智智能体绑定,该智能体下的所有小智设备均可共享MCP服务。
- 通过
7. 启动全部工具
python start_all_services.py
- 首次启动会在当前目录生成
*.log文件,可实时查看执行情况。 - 若看到诸如
Started app_launcher.py process、Processing PingRequest即表示已成功连接到云端。
8. 验证
- 打开xiaozhi.me的控制台,再打开"智能体"的"配置角色",最下方右下角有一个"MCP接入点",点击刷新即可出现你部署好的MCP工具,并且呈现绿色标识,说明MCP服务链接成功。此时你就可以用小智设备开始控制电脑端的各项MCP服务啦。
- 亦可直接查看日志:
type app_launcher.log | more
三、进阶:单模块运行 & 调试 & 关机后再次运行
# 只调试微信发送模块(日志会写入 Wechat_Sender.log)
python mcp_pipe.py Wechat_Sender.py
在该 CMD 窗口实时打印与云端交互数据,便于定位问题。
# 关机后再次运行部署好的项目:
第一步:打开cmd或Powershell CD到mcp-toolbox-main目录
第二步:运行 call .venv\Scripts\activate
第三步:运行 python start_all_services.py
四、常见问题 FAQ
- 申请管理员权限失败?
确保脚本在管理员 CMD 中运行;如仍失败,可在"本地组策略编辑器"关闭 UAC 提升提示。 - Outlook COM 报错
pywintypes.com_error?- 检查 Outlook 是否完整安装并且已打开过;
- 若使用 Office 365,请确保先登陆账户。
wxauto找不到微信窗口?
需保证微信已登录且窗口处于可见状态;多显示器环境下可尝试先手动把微信主窗口移动到主屏幕。- 日志无更新或乱码?
全部脚本以utf-8编码写日志,使用支持 UTF-8 的编辑器 (VSCode, Notepad++) 打开即可;若需实时查看,使用powershell Get-Content -Wait file.log。
五、参与贡献
本代码还有很多不完善之处,我们期待你的 Pull Request!欢迎提交:
- 新的 MCP 工具:急需扩展非电脑系统控制类、如联网搜索、音乐播放、有声读物、智能家居控制等。
- 跨平台支持:实现 macOS (
pyobjc) 或 Linux (DBus, xdotool) 的等价功能。 - 文档本地化:目前主要中文,可补充英文 README 与注释。
提交前请确保:
flake8/ruff无错误;- 新增依赖已在
requirements.txt中声明; - 相关功能附带示例或测试脚本。
联系我加入MCP开发大群,与我们一起,让 AI 的触角延伸到更多设备与场景吧!
License
本项目基于 MIT 协议开源,详见 LICENSE。
