移动设备GUI自动化服务器

AutoGLM MCP Server是一个用于AutoGLM-Phone API的模型上下文协议服务器,支持通过人工智能模型控制移动设备的图形用户界面交互。

  • by DarkNoah
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 DarkNoah/autoglm-mcp-server

使用说明

AutoGLM MCP服务器

用于AutoGLM-Phone API的模型上下文协议(MCP)服务器,实现移动设备上的自动化GUI交互。

概述

该MCP服务器提供了与AutoGLM-Phone API交互的工具,该API允许人工智能模型通过一系列动作控制移动设备。服务器支持Android(ADB)。

快速开始

使用npx(推荐)

# Run directly without installation
npx -y autoglm-mcp-server

# With options
npx -y autoglm-mcp-server --transport http --port 3000

全球安装

npm install -g autoglm-mcp-server
autoglm-mcp-server

本地安装

npm install autoglm-mcp-server

MCP客户端配置

克劳德桌面/光标(stdio模式)

{
  "mcpServers": {
    "autoglm": {
      "command": "npx",
      "args": ["-y", "autoglm-mcp-server"],
      "env": {
        "AUTOGLM_API_KEY": "<YOUR_API_KEY>"
      }
    }
  }
}

流式HTTP模式

首先启动服务器:

npx -y autoglm-mcp-server --transport http --port 3000

然后配置您的MCP客户端:

{
  "mcpServers": {
    "autoglm": {
      "url": "http://127.0.0.1:3000/mcp",
      "headers": {
        "Authorization": "<YOUR_API_KEY>"
      }
    }
  }
}

配置

设置以下环境变量:

export AUTOGLM_API_KEY="your-api-key-here"
export AUTOGLM_API_URL="https://open.bigmodel.cn/api/paas/v4"  # optional
export AUTOGLM_MODEL="autoglm-phone"  # optional

或者创建一个 .env 文件基于 .env.example.

用法

发展

npm run dev

构建

npm run build

生产

# stdio mode (default)
npm start

# HTTP mode
node dist/index.js --transport http --port 3000

# SSE mode
node dist/index.js --transport sse --port 3000

# HTTP mode on all interfaces
node dist/index.js --transport http --host 0.0.0.0 --port 3000

命令行选项

选项 别名 描述 默认值
--transport -t 运输类型: stdio, http,或 sse stdio
--port -p HTTP/SSE传输端口 3000
--host -h HTTP/SSE传输主机 127.0.0.1
--help 显示帮助消息

可用工具

autoglm_list_ad_devices

列出通过ADB(Android调试桥)连接的所有Android设备。

参数:

  • response_format ('markdown'|'json',可选):输出格式

退货:

  • 设备ID、状态、连接类型、型号、Android版本、屏幕尺寸

例子:

{}

autoglm_task

使用AutoGLM在线模型在连接的设备上执行任务。该模型将迭代地捕获屏幕截图、分析屏幕并执行操作,直到任务完成。

参数:

  • prompt (字符串,必填):自然语言任务描述(1-5000个字符)
  • device_id (字符串,可选):目标ADB设备ID
  • max_steps (数字,可选):要执行的最大步数(默认值:100,范围:1-200)
  • lang ('cn'|'en',可选):响应语言(默认值:'cn')

它是如何工作的:

  1. 通过ADB捕获当前屏幕
  2. 将屏幕图像和任务提示发送到AutoGLM在线模型
  3. 模型分析屏幕并决定下一步行动
  4. 通过ADB执行操作
  5. 重复,直到任务完成或达到max_steps

例子:

{
  "prompt": "Open WeChat and send a message to Mom saying hello",
  "max_steps": 50,
  "lang": "cn"
}

支持的操作

AutoGLM模型可以执行以下操作:

操作 描述 参数
启动 启动应用程序 app_name
点击 点击坐标 x, y (0-1000刻度)
类型 键入文本 text
Type_Name 按名称键入文本 text
滑动 在坐标之间滑动 x1, y1, x2, y2, duration
返回 返回 -
主页 转到主屏幕 -
双击 在坐标处双击 x, y
长按 在坐标处长按 x, y, duration
等待 等待时间 duration (毫秒)
接管 请求人工接管 reason
备注 添加备注 text
Call_API 调用API终结点 endpoint, params
交互 与UI元素交互 element, action

坐标系

所有坐标都使用相对于屏幕大小的0-1000比例:

  • (0,0)是左上角
  • (10001000)是右下角

项目结构

autoglm-mcp-server/
├── src/
│   ├── index.ts                    # Main server entry point
│   ├── constants.ts                # Configuration constants
│   ├── types.ts                    # TypeScript type definitions
│   ├── tools/
│   │   └── autoglm-tools.ts        # MCP tool implementations
│   ├── services/
│   │   ├── autoglm-api-client.ts   # AutoGLM API client
│   │   ├── autoglm-client.ts       # AutoGLM client wrapper
│   │   └── adb-service.ts          # ADB device service
│   └── schemas/
│       └── index.ts                # Zod validation schemas
├── dist/                           # Compiled output
├── package.json
├── tsconfig.json
├── .env.example
└── README.md

HTTP/SSE身份验证

当使用HTTP或SSE传输时,您可以通过 Authorization 头球

# Bearer token format
curl -X POST http://localhost:3000/mcp \
  -H "Authorization: Bearer your-api-key" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"initialize",...}'

参考文献

许可证

麻省理工学院