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-serverMCP客户端配置
克劳德桌面/光标(stdio模式)
{
"mcpServers": {
"autoglm": {
"command": "npx",
"args": ["-y", "autoglm-mcp-server"],
"env": {
"AUTOGLM_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": ""
}
}
}
}配置
设置以下环境变量:
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设备IDmax_steps(数字,可选):要执行的最大步数(默认值:100,范围:1-200)lang('cn'|'en',可选):响应语言(默认值:'cn')
它是如何工作的:
- 通过ADB捕获当前屏幕
- 将屏幕图像和任务提示发送到AutoGLM在线模型
- 模型分析屏幕并决定下一步行动
- 通过ADB执行操作
- 重复,直到任务完成或达到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.mdHTTP/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",...}'参考文献
许可证
麻省理工学院
