这是一个基于 ADB 的微信自动化 MCP 服务器,为 AI 助手提供微信消息发送和截图功能。借助它,AI 能够自动向多个联系人发送不同的个性化微信消息,满足商务与生活需求。本项目适配雷电模拟器(LDPlayer 9),并通过 MCP 协议对外暴露工具接口。此项目是蓝耘 MCP 开发挑战赛的作品,MCP 入口文件为 main.py。
本服务器为 AI 助手赋予了微信消息发送和截图的能力,可实现 AI 自动对多个联系人发送不同的个性化微信消息。以下是使用前的准备步骤。
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 变量。可以使用 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]" 库即可。
main.py 的 ldplayer_dir 变量。main.py 的 DEVICE 变量(如 "127.0.0.1:5555")。main.py:python main.py
运行后会启动 MCP SSE 服务并注册以下工具:
send_wechat_message(name: str, message: str) -> str
screen_save() -> str
screens/ 目录。mcp.json 文件中写入:{
"mcpServers": {
"plus": {
"url": "http://127.0.0.1:8000/sse"
}
}
}
⚠️ 重要提示
- 目录下的
ADBKeyboard.apk文件不能少,这是雷电模拟器的 ADB 输入中文需要的插件。- 截图功能会将截图保存在
screens文件夹下。- 使用
{模拟器路径}\adb.exe devices命令查看可用的设备端口。
配置好 MCP 后,您可以在 Cursor 的 Agent 中直接使用以下功能:
给 AAA 说我感冒了,写一个请假条发给他
帮我截图
给 AAA、 BBB 发信息说我今晚不回家,分别截图
演示视频:
⚠️ 重要提示
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
ld_adb_address 一致。DEVICE 变量一致。本项目采用 MIT 许可证。
⚠️ 重要提示
- 本项目仅用于学习和研究目的。
- 使用本工具时请遵守相关法律法规和微信用户协议。
- 请勿用于商业用途或恶意用途。
pyproject.toml已通过打包排除规则避免将runtime/、screens/等内容发布到分发包。