MCP-сервер MaaMCP.
MaaMCP 是一个 MCP 服务器,将 MaaFramework 的强大自动化能力通过标准化的 MCP 接口暴露给 AI 助手(如 Claude)。通过本服务器,AI 助手可以:
Talk is cheap, 请看: 🎞️ Bilibili 视频演示
find_adb_device_list - 扫描可用的 ADB 设备find_window_list - 扫描可用的 Windows 窗口connect_adb_device - 连接到 Android 设备connect_window - 连接到 Windows 窗口ocr - 光学字符识别(高效,推荐优先使用)screencap - 屏幕截图(按需使用,token 开销大)click - 点击指定坐标(支持多触点/鼠标按键选择、长按)
double_click - 双击指定坐标swipe - 滑动手势(Android 设备滚动/翻页优先使用)input_text - 输入文本click_key - 按键操作(支持长按)
keyboard_shortcut - 键盘快捷键
scroll - 鼠标滚轮(仅 Windows)start_pipeline - 启动后台监控流水线,持续截图并缓存图片路径stop_pipeline - 停止流水线get_new_messages - 获取流水线缓存的新截图路径get_pipeline_status - 获取流水线运行状态get_pipeline_protocol - 获取 Pipeline 协议文档save_pipeline - 保存 Pipeline JSON 到文件(支持新建和更新)load_pipeline - 读取已有的 Pipeline 文件run_pipeline - 运行 Pipeline 并返回执行结果(支持单/多文件、Custom action agent 自动启动)stop_pipeline - 原子地停止 Tasker / Agent 子进程 / OCR 循环,杜绝后台孤儿进程需要先安装 uv
uvx maa-mcp
pip install maa-mcp
克隆仓库
git clone https://github.com/MistEO/MaaMCP.git
cd MaaMCP
安装 Python 依赖
pip install -e .
MaaMCP 提供两种运行模式:
传统的同步执行方式,适合简单任务:
# 已安装包的情况
maa-mcp
# 从源码开发运行
python -m maa_mcp
多线程异步执行方式,适合需要高频屏幕监控的实时自动化任务:
# 已安装包的情况
maa-mcp-server
# 从源码开发运行
python -m maa_mcp.pipeline_server
两种服务器的功能完全一致,均支持串行模式和流水线模式的自动化流程。区别在于流水线服务器内部使用独立的后台线程持续采集屏幕截图,可根据任务需求灵活选择。
在 Cursor 等软件中,添加 MCP 服务器:
{
"mcpServers": {
"MaaMCP": {
"command": "maa-mcp"
}
}
}
或
在 Cherry Studio 等软件中,添加 MCP 命令:
uvx maa-mcp
配置完成后,可以这样使用:
Android 自动化示例:
请用 MaaMCP 工具帮我连接 Android 设备,打开美团帮我点一份外卖,我想吃中餐,一人份,20 元左右的
Windows 自动化示例:
请用 MaaMCP 工具,看看我现在这页 PPT 怎么加一个旋转特效,操作给我看下
Pipeline 生成示例:
请用 MaaMCP 工具连接我的设备,帮我打开设置,进入显示设置,调整亮度到 50%。
操作完成后,帮我生成这个流程的 Pipeline JSON,以便后续可以直接运行。
MaaMCP 会自动:
MaaMCP 遵循简洁的操作流程,支持多设备/多窗口协同工作,并提供两种运行模式:
graph LR
A[扫描设备] --> B[建立连接]
B --> C1[串行模式]
B --> C2[流水线模式]
C1 --> D[执行自动化操作]
C2 --> D
find_adb_device_list 或 find_window_listconnect_adb_device 或 connect_window(可连接多个设备/窗口,获得多个控制器 ID)MaaMCP 支持两种运行模式,可根据任务需求灵活选择:
传统的同步执行方式,一个指令完成后再执行下一个:
OCR识别 → 分析结果 → 执行操作 → OCR识别 → ...
适用场景:简单任务、对实时性要求不高的场景
多线程异步执行方式,后台持续采集屏幕信息,主线程专注于决策和操作:
graph LR
subgraph 后台线程
S1[持续截图] --> S2[缓存图片路径]
S2 --> S3[推送到消息队列]
S3 --> S1
end
subgraph 主线程
M1[获取截图路径] --> M2[视觉分析]
M2 --> M3[决定是否OCR]
M3 --> M4[执行操作]
M4 --> M1
end
工作流程:
start_pipeline(controller_id) 启动后台监控get_pipeline_status() 检查状态,get_new_messages() 获取截图路径stop_pipeline() 释放资源优势:
使用示例:
请用 MaaMCP 工具连接我的设备,使用流水线模式监控屏幕,当出现特定弹窗时自动点击确认。
MaaMCP 支持让 AI 将执行过的操作转换为 MaaFramework Pipeline JSON 格式,实现一次操作,无限复用。
graph LR
A[AI 执行操作] --> B[操作完成]
B --> C[AI 阅读 Pipeline 文档]
C --> D[AI 智能生成 Pipeline]
D --> E[保存 JSON 文件]
E --> F[运行验证]
F --> G{是否成功?}
G -->|是| H[完成]
G -->|否| I[分析失败原因]
I --> J[修改 Pipeline]
J --> F
get_pipeline_protocol 获取 Pipeline 协议规范save_pipeline 保存生成的 Pipelinerun_pipeline 验证 Pipeline 是否正常运行与机械录制不同,AI 智能生成具有以下优势:
Pipeline 生成后,AI 会自动进行验证和优化:
如果发现 Pipeline 逻辑本身有问题,AI 还可以重新执行自动化操作,结合新旧经验生成更完善的 Pipeline。
{
"开始任务": {
"recognition": "DirectHit",
"action": "DoNothing",
"next": ["点击设置"]
},
"点击设置": {
"recognition": "OCR",
"expected": "设置",
"action": "Click",
"next": ["进入显示"]
},
"进入显示": {
"recognition": "OCR",
"expected": "显示",
"action": "Click",
"next": ["调整亮度"]
},
"调整亮度": {
"recognition": "OCR",
"expected": "亮度",
"action": "Swipe",
"begin": [200, 500],
"end": [400, 500],
"duration": 200
}
}
run_pipeline 和 load_pipeline 接受 str 或 list[str]:
# 单文件
run_pipeline(controller_id, "main.json")
# 单文件 list(与 str 等价)
run_pipeline(controller_id, ["main.json"])
# 多文件:一个文件中的节点可以引用另一个文件的节点
run_pipeline(
controller_id,
["main.json", "battle.json", "login.json"],
on_conflict="strict", # 默认 strict:节点名冲突立即报错
)
合并语义:
next 引用在合并后的命名空间内解析(支持跨文件引用)strict 模式(不写入 Resource);可设为 overwrite 允许后文件覆盖clear_pipeline_resources() 重置📌 Windows 自动化限制:
| 功能 | Windows | macOS | Linux |
|---|---|---|---|
MCP 服务器(maa-mcp) | 支持 | 支持 | 支持 |
流水线模式(maa-mcp-server) | 支持 | 支持 | 支持 |
find_adb_device_list / connect_adb_device | 支持 | 支持 | 支持 |
find_window_list / connect_window | 支持 | 不支持 | 不支持 |
| 后台截图 / 鼠标 / 键盘 | 支持 | 不支持 | 不支持 |
Linux 说明:
find_window_list() / connect_window() 在非 Windows 平台会返回 None 或抛错。[31m...)混入 MCP stdio 流,是与部分 MCP 客户端的已知交互问题。日志仍然会写入 ~/.local/share/MaaMCP/logs/,不受影响。首次使用时,会自动下载 OCR 模型文件。但可能出现下载失败等情况,请检查数据目录:
C:\Users\<用户名>\AppData\Local\MaaMCP\resource\model\ocr\~/Library/Application Support/MaaMCP/resource/model/ocr/~/.local/share/MaaMCP/resource/model/ocr/det.onnx, rec.onnx, keys.txt)model/download.log 中是否出现资源下载异常python -c "from maa_mcp.download import download_and_extract_ocr; download_and_extract_ocr()" 再次尝试下载'maa-mcp' 不是内部或外部命令在 LM Studio 中配置 MCP 服务器时,需要 maa-mcp 可执行文件在 PATH 上。Windows 下 pip install 默认把脚本装到 <Python 安装目录>\Scripts\(例如 C:\Users\<用户名>\AppData\Local\Programs\Python\Python310\Scripts\),这个目录通常不在 PATH 中。修复:
# 把 Scripts 目录加到用户 PATH(永久)
setx PATH "%PATH%;%LOCALAPPDATA%\Programs\Python\Python310\Scripts"
然后重启 LM Studio。验证:新开一个终端执行 where maa-mcp 应该返回脚本路径。详见 #6。
提交问题时,请提供日志文件,日志文件路径如下:
C:\Users\<用户名>\AppData\Local\MaaMCP\debug\maa.log~/Library/Application Support/MaaMCP/debug/maa.log~/.local/share/MaaMCP/debug/maa.log本项目采用 GNU AGPL v3 许可证。