phone-agent-mcp

phone-agent-mcp

A local MCP server that exposes Mobile AI Agent capabilities from the WebADB browser as MCP tools, allowing external AI clients like Qoder and OpenClaw to control connected phones through natural language tasks, screenshots, device status, and memory management via a WebSocket relay.

Category
访问服务器

README

phone-agent-mcp

本地 MCP Server — 将 WebADB 浏览器中的 AI Agent 能力暴露为 MCP Tools,供 OpenClaw / Qoder 等外部 AI 客户端通过标准协议调用。

架构概览

外部 AI 客户端(Qoder / OpenClaw)
        │
        │  stdio(JSON-RPC 2.0 / MCP 协议)
        ▼
┌───────────────────┐      WebSocket       ┌──────────────────────────────┐
│  phone-agent-mcp  │ ◄──────────────────► │  Mobile AI Agent 浏览器页面    │
│  (Node.js 进程)    │    ws://localhost    │  (https://mobile-ai-use.com) │
│                   │      :7788           │                              │
│  ┌──────────────┐ │                      │  ┌─────────────────┐         │
│  │ McpServer    │ │  callBrowser()       │  │ MCP Relay       │         │
│  │ (stdio)      │ │ ──── tool/args ────► │  │ (WS Client)     │         │
│  │              │ │ ◄─── result ──────── │  │                 │         │
│  │ 8 个 Tools   │ │                      │  │ Agent 调度       │         │
│  │              │ │  progress ◄───────── │  │ 工具执行         │         │
│  └──────────────┘ │                      │  └─────────────────┘         │
└───────────────────┘                      └──────────────────────────────┘
  • MCP 层:基于 @modelcontextprotocol/sdkMcpServer,通过 StdioServerTransport 与外部客户端通信
  • 中继层:内嵌 ws WebSocket Server(默认 7788 端口),将工具调用请求转发给浏览器页面中的 MCP Relay
  • 进度上报:支持 MCP notifications/progress 协议,Agent 思考/执行过程实时推送至客户端

前置条件

  • Node.js ≥ 18
  • pnpm(推荐,项目统一包管理器)
  • Mobile AI Use 浏览器页面已打开并运行(https://mobile-ai-use.com),页面顶栏 MCP Relay 状态指示器绿色亮起即表示已连接

快速开始

# 1. 进入 mcp-server 目录
cd mcp-server

# 2. 安装依赖
pnpm install

# 3. 构建(生成 dist/server.js)
pnpm run build

# 4. 启动服务
pnpm start

开发模式(无需构建,直接运行 TypeScript):

pnpm run dev

启动成功后,控制台输出:

[phone-agent-mcp] WebSocket relay on ws://localhost:7788
[phone-agent-mcp] MCP server ready (McpServer, stdio transport)

环境变量

变量名 默认值 说明
PHONE_AGENT_WS_PORT 7788 WebSocket 中继端口号

注册的工具(Tools)

工具名 权限 超时 说明
run_agent_task 写入 可配置 在已连接的手机上运行 AI Agent 任务,传入自然语言目标
abort_task 写入 10s 中止当前正在运行的 Agent 任务
get_task_result 只读 10s 按任务 ID 获取已完成任务的详细结果(含步骤)
get_latest_task 只读 10s 获取当前对话中最近一次 Agent 任务的结果
take_screenshot 只读 30s 对已连接的手机屏幕截图,返回 PNG 图片
get_device_status 只读 15s 获取设备信息(型号、品牌、系统版本等)
search_memory 只读 10s 按关键词搜索 Agent 的持久化记忆库
save_memory 写入 10s 保存一条语义记忆到记忆库
delete_memory 写入 10s 按 ID 删除一条记忆

run_agent_task 详解

参数 类型 必填 说明
goal string 自然语言任务目标,如 "打开微信,向张三发送你好"
timeoutMs number 最大执行时间(毫秒),默认 1,200,000(20 分钟)

Agent 将自动规划执行步骤,通过屏幕视觉识别和触摸控制完成目标。执行期间的思考/工具调用/步骤结果会通过 MCP notifications/progress 实时推送。

配置到 AI 客户端

Qoder / Claude Desktop

在客户端的 MCP 配置文件中添加:

{
  "mcpServers": {
    "phone-agent": {
      "command": "node",
      "args": ["/path/to/mcp-server/dist/server.js"],
      "env": {
        "PHONE_AGENT_WS_PORT": "7788"
      }
    }
  }
}

OpenClaw

mcp_servers:
  phone-agent:
    command: node
    args:
      - /path/to/mcp-server/dist/server.js
    env:
      PHONE_AGENT_WS_PORT: "7788"

配置完成后,AI 客户端中即可看到上述 8 个手机 Agent 工具,直接调用即可操控手机。

连接流程

  1. 启动 mcp-serverpnpm start,启动 stdio MCP 服务和 WS 中继
  2. 打开浏览器页面:访问 WebADB 页面,确保设备已连接
  3. 确认 Relay 连接:页面顶栏 Relay 状态指示器变绿,控制台输出 Browser connected
  4. 调用工具:外部 AI 客户端通过 MCP 调用工具,请求经 WS 转发至浏览器执行,结果原路返回

项目结构

mcp-server/
├── src/
│   └── server.ts          # 主服务:McpServer + WS + 8 个工具注册
├── dist/
│   └── server.js          # 编译产物
├── package.json
├── tsconfig.json           # TypeScript 配置(ES2022 / NodeNext)
└── pnpm-lock.yaml

技术栈

组件 版本 用途
@modelcontextprotocol/sdk ^1.12.0 MCP 服务端框架(McpServer + StdioServerTransport)
ws ^8.18.0 WebSocket 服务端,中继浏览器连接
zod ^4.4.3 工具参数校验与 Schema 声明
typescript ~5.8.3 类型安全
tsx ^4.19.0 开发模式直接运行 TS

设计要点

  • 单浏览器连接:同一时刻只接受一个浏览器 WS 连接,新连接替换旧连接
  • 请求-响应匹配:通过 id 字段将 WS 响应路由到对应的挂起 Promise
  • 超时兜底:每个工具调用有独立超时,超时返回错误信息而非挂死
  • 进度双通道:优先使用 notifications/progress(需客户端声明 progressToken),降级为 notifications/message(logging)
  • 静默容错:进度推送失败不中断任务执行
  • 浏览器离线提示:WS 未连接时返回友好错误 "Browser not connected"

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选