Mcp Wechat Adb Server

Mcp Wechat Adb Server

🚀 MCP 微信 ADB 服务器

这是一个基于 ADB 的微信自动化 MCP 服务器,为 AI 助手提供微信消息发送和截图功能。借助它,AI 能够自动向多个联系人发送不同的个性化微信消息,满足商务与生活需求。本项目适配雷电模拟器(LDPlayer 9),并通过 MCP 协议对外暴露工具接口。此项目是蓝耘 MCP 开发挑战赛的作品,MCP 入口文件为 main.py。

🚀 快速开始

本服务器为 AI 助手赋予了微信消息发送和截图的能力,可实现 AI 自动对多个联系人发送不同的个性化微信消息。以下是使用前的准备步骤。

✨ 主要特性

  • 微信消息发送:支持通过自然语言指令发送微信消息。
  • 智能截图:可自动进行截图并保存到本地。
  • MCP 协议支持:能与 Cursor、Claude Desktop 等支持 MCP 的 AI 助手无缝集成。
  • 雷电模拟器适配:专门为 LDPlayer 9 进行了优化,支持中文输入。

📦 安装指南

环境要求

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

完整安装配置流程

第一步:安装雷电模拟器

  1. 下载并安装雷电模拟器,测试使用的是 9.1.58(64) 官网最新版本。注意安装路径中不要有空格,并将路径填入 main.py 的 ldplayer_dir 变量中。
  2. 设置模拟器分辨率为 1600x900。
  3. 在模拟器中安装微信,可直接在模拟器里搜索安装,测试用的是 Version 8.0.58。
  4. 登录微信账号并手动设置好权限。
  5. 打开微信试用一下,确保不会弹出风险提示,能正常运行(一般微信都没问题)。
  6. 查看 ADB 端口:在命令行中执行以下命令查看可用的设备端口:
    D:\Program\leidian\LDPlayer9\adb.exe devices
    
    查看结果示例:
    List of devices attached
    127.0.0.1:5555  device
    emulator-5554   device
    
    选择第一个端口(如 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.pyldplayer_dir 变量。
  2. 将第一步查看到的 ADB 设备端口填入 main.pyDEVICE 变量(如 "127.0.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 Tools,显示小绿点以后即可正常在 Cursor 的 Agent 对话框里对话。

重要注意事项

⚠️ 重要提示

  • 目录下的 ADBKeyboard.apk 文件不能少,这是雷电模拟器的 ADB 输入中文需要的插件。
  • 截图功能会将截图保存在 screens 文件夹下。
  • 使用 {模拟器路径}\adb.exe devices 命令查看可用的设备端口。

💻 使用示例

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

基础用法

发送微信消息

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

截图功能

帮我截图

高级用法

组合使用示例

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

演示视频:

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

⚠️ 重要提示

AAA、BBB 需要是微信中联系人或群聊的名字/备注中能搜索到的唯一名称,这样才能根据名字准确找到指定对方并进入对话。可以使用微信备注 给需要的人和群聊特殊的备注,以便搜索。

📚 详细文档

目录结构

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

后续计划

本项目已实现将 adb 操作完美接入 MCP,让 AI 可以自由操作模拟器。随着多模态大模型的发展进步,后续可以将截图输入给具有图像理解和定位能力的大模型(例如 GLM - 4.5V),让 AI Agent 通过 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/ 等内容发布到分发包。
  • 0 关注
  • 0 收藏,37 浏览
  • system 提出于 2025-09-25 05:06

相似服务问题

相关AI产品