返回市场
MCP-微信-ADB-服务器

MCP-微信-ADB-服务器

作者:DaBaiGoose11 星标更新:2025-08-14

项目介绍

技术文档摘要

MCP 微信 ADB 服务器

基于 ADB 的微信自动化 MCP 服务器,提供通过自然语言命令发送微信消息和自动截屏功能,使 AI 能够自动回复来自多个联系人的个性化消息,满足商业和个人生活需求。适应闪电模拟器(LDP Player 9),并通过 MCP 协议暴露工具接口。蓝云 MCP 开发挑战赛的入口文件是 main.exe。

🚀 特性

  • 微信消息发送:通过自然语言命令发送微信消息
  • 智能截屏:自动截屏并保存到本地
  • MCP 协议支持:无缝集成支持 MCP 的 AI 助手,如 Cursor 和 Claude Desktop
  • 闪电模拟器适配:针对 LDP Player 9 进行优化,支持中文输入

🛠️ 可用工具

  • send_wechat_message(name, message) - 发送微信消息
  • screen_save() - 保存截屏

环境要求

  • Windows 10/11(已测试)
  • Python >= 3.13
  • 闪电模拟器 LDP Player 9(已安装并登录微信)
  • 已启用 ADB 调试(可以在模拟器诊断信息中查看 ADB 端口)

完整安装与配置过程

第一步:安装闪电模拟器

  1. 下载并安装闪电模拟器,在官网下载最新版本 9.1.58 (64),安装路径不要有空格,并在 main.exe 中填入 ldplayerddir 变量
  2. 设置模拟器分辨率为 1600x900
  3. 在模拟器中安装微信,搜索已安装的版本进行测试,建议使用版本 8.0.58
  4. 登录微信账号并手动设置权限
  5. 打开微信进行测试,确保没有风险提示弹出且能正常运行(通常微信没有问题)
  6. 查看 ADB 端口:在命令行执行以下命令查看可用设备端口:
    D:\Program\leidian\LDPlayer9\adb.exe devices
    
    查看结果示例:
    列出的设备
    127.0.0.1:5555  设备
    emulator-5554   设备
    
    选择第一个端口(例如 127.0.0.1:5555)填入 main.py 中的 DEVICE 变量

第二步:创建 Python 环境

可以使用 conda 或 uv 创建环境,推荐使用 Python 3.13:

# 使用 conda
conda create -n mcp-wechat python=3.13
conda activate mcp-wechat

# 或使用 uv
uv venv
uv pip install "mcp[cli]"

只需安装 pip install "mcp[cli]" 库即可。

第三步:配置与运行

  1. 填入模拟器目录位置 main.py 中的 ldplayer_dir 变量
  2. 填入第一步看到的 ADB 设备端口 main.py 中的 DEVICE 变量(例如 "127..0.1:5555"
  3. 默认以 SSE 模式运行,使用当前环境中的 Python 运行 main.py
    python main.py
    

运行后,MCP SSE 服务将启动并注册以下工具:

  • send_wechat_message(name: str, message: str) -> str

    • 功能:向指定联系人发送消息
    • 依赖:已登录微信,激活 ADB 输入法
  • screen_save() -> str

    • 功能:在模拟器上截屏并保存到 screens/ 目录下

第四步:配置 Cursor MCP

  1. 在 Cursor 中设置:Tools and Integrations → Add Custom MCP
  2. mcp.json 文件中写入:
    {
      "mcpServers": {
        "plus": {
          "url": "http://127.0.0.1:8000/sse"
        }
      }
    }
    
  3. 打开此 MCP 工具后显示一个小绿点,现在可以在 Cursor 的 Agent 对话框中进行正常的对话

重要说明

  • ADBKeyboard.apk 文件:在 ADBKeyboard.apk 目录下的文件不能缺失,这是闪电模拟器中用于 ADB 输入中文的插件
  • 截屏功能:截屏功能会将截屏保存在 screens 目录下
  • 查看 ADB 端口:使用 {模拟器路径}\adb.exe devices 命令查看可用设备端口

目录结构

  • main.py:MCP 服务入口,注册工具并运行 FastMCP(SSE 传输)。
  • wechat_example.py:封装微信相关操作(进入对话、输入、发送等)。
  • adb_utils.py:ADB 基础能力(连接、点击、激活输入法、截屏、分辨率、活动检测等)。
  • ADBKeyboard.apk:通过广播进行文本输入所需的输入法 APK(首次自动安装并激活)。
  • screens/:截屏输出目录(自动创建)。

使用示例

配置好 MCP 后,可以直接在 Cursor 的代理中使用以下功能:

发送微信消息

给 AAA 说我感冒了,写一个请假条发给他

截屏功能

帮我截图

组合使用示例

给 AAA、 BBB 发信息说我今晚不回家,分别截图

演示视频:

https://github-production-user-asset-6210df.s3.amazonaws.com/22809627/477622786-0ec32420-ddcc-4d1e-905de7c3cf8f.mp4

重要提醒:联系人名称

⚠️ AAA 和 BBB 需要是微信联系人或群聊中可搜索的名字或备注,以便准确找到指定的人并根据名字进入对话

  • 可以使用微信备注给需要的人发送特殊备注并在群聊中聊天,便于搜索

后续计划

🚀 本项目成功地将 adb 操作整合进 MCP,允许 AI 自由操作模拟器。随着多模态大模型的发展和进步,截屏可以输入到具有图像理解和定位能力的大模型(如 GLM-4.5V)中,使得 AI 代理能够通过 MCP 观察并完全自动化每一步,完成手机上的任何任务。

常见问题排查

建议在 Windows 中使用原始字符串或双斜杠作为路径分隔符,例如:

ldplayer_install_dir = r"D:\\Program\\leidian\\LDPlayer9"

首次运行时会自动检查并安装/激活 ADBKeyboard.apk,如果自动激活失败,可以手动执行,例如:

"D:\Program\leidian\LDPlayer9\adb.exe" -s 127.0.0.1:5555 install -r ADBKeyboard.apk
"D:\Program\leidian\LDPlayer9\adb.exe" -s 127.0.0.1:5555 shell ime enable com.android.adbkeyboard/.AdbIME
"D:\Program\leidian\LDPlayer9\adb.exe" -s 127.0.0.1:5555 shell ime set com.android.adbkeyboard/.AdbIME
  • 连接失败或超时:
    • 确认 adb.exe 路径是否正确且可执行
      "D:\Program\leidian\LDPlayer9\adb.exe" devices
      "D:\Program\leidian\LDPlayer9\adb.exe" connect 127.0.0.1:5555
      "D:\Program\leidian\LDPlayer9\adb.exe" -s 127.0.0.1:5555 shell screencap -p /sdcard/screen.png
      
    • 确认模拟器中的 ADB 端口和 ld_adb_address 是否一致。
    • 确认模拟器中的 ADB 端口和 DEVICE 变量是否一致。
    • 如果设备列表为空,请检查模拟器是否正常运行以及是否启用了 ADB 调试。

许可证

本项目采用 MIT 许可证

注意事项:

  • 本项目仅用于学习和研究目的
  • 使用此工具时请遵守相关法律法规及微信用户协议
  • 不得用于商业或恶意用途
  • pyproject.toml 避免打包排除规则 runtime/screens/ 等内容发布在发行包中