autoglm-mcp-server
Enables AI models to control Android devices via ADB through natural language commands, supporting screen analysis and automated actions.
README
AutoGLM MCP Server
A Model Context Protocol (MCP) server for the AutoGLM-Phone API, enabling automated GUI interaction on mobile devices.
Overview
This MCP server provides tools for interacting with the AutoGLM-Phone API, which allows AI models to control mobile devices through a series of actions. The server supports Android (ADB).
Quick Start
Using npx (Recommended)
# Run directly without installation
npx -y autoglm-mcp-server
# With options
npx -y autoglm-mcp-server --transport http --port 3000
Global Installation
npm install -g autoglm-mcp-server
autoglm-mcp-server
Local Installation
npm install autoglm-mcp-server
MCP Client Configuration
Claude Desktop / Cursor (stdio mode)
{
"mcpServers": {
"autoglm": {
"command": "npx",
"args": ["-y", "autoglm-mcp-server"],
"env": {
"AUTOGLM_API_KEY": "<YOUR_API_KEY>"
}
}
}
}
StreamableHTTP Mode
First start the server:
npx -y autoglm-mcp-server --transport http --port 3000
Then configure your MCP client:
{
"mcpServers": {
"autoglm": {
"url": "http://127.0.0.1:3000/mcp",
"headers": {
"Authorization": "<YOUR_API_KEY>"
}
}
}
}
Configuration
Set the following environment variables:
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
Or create a .env file based on .env.example.
Usage
Development
npm run dev
Build
npm run build
Production
# 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
Command Line Options
| Option | Alias | Description | Default |
|---|---|---|---|
--transport |
-t |
Transport type: stdio, http, or sse |
stdio |
--port |
-p |
Port for HTTP/SSE transport | 3000 |
--host |
-h |
Host for HTTP/SSE transport | 127.0.0.1 |
--help |
Show help message |
Available Tools
autoglm_list_adb_devices
List all Android devices connected via ADB (Android Debug Bridge).
Parameters:
response_format('markdown' | 'json', optional): Output format
Returns:
- Device ID, status, connection type, model, Android version, screen dimensions
Example:
{}
autoglm_task
Execute a task on a connected device using AutoGLM online model. The model will iteratively capture screenshots, analyze the screen, and execute actions until the task is complete.
Parameters:
prompt(string, required): Natural language task description (1-5000 characters)device_id(string, optional): Target ADB device IDmax_steps(number, optional): Maximum steps to execute (default: 100, range: 1-200)lang('cn' | 'en', optional): Language for responses (default: 'cn')
How it works:
- Captures the current screen via ADB
- Sends the screen image and task prompt to AutoGLM online model
- The model analyzes the screen and decides on the next action
- Executes the action via ADB
- Repeats until the task is complete or max_steps is reached
Example:
{
"prompt": "Open WeChat and send a message to Mom saying hello",
"max_steps": 50,
"lang": "cn"
}
Supported Actions
The AutoGLM model can execute the following actions:
| Action | Description | Parameters |
|---|---|---|
| Launch | Launch an application | app_name |
| Tap | Tap at coordinates | x, y (0-1000 scale) |
| Type | Type text | text |
| Type_Name | Type text by name | text |
| Swipe | Swipe between coordinates | x1, y1, x2, y2, duration |
| Back | Go back | - |
| Home | Go to home screen | - |
| Double Tap | Double tap at coordinates | x, y |
| Long Press | Long press at coordinates | x, y, duration |
| Wait | Wait for duration | duration (ms) |
| Take_over | Request human takeover | reason |
| Note | Add a note | text |
| Call_API | Call an API endpoint | endpoint, params |
| Interact | Interact with UI element | element, action |
Coordinate System
All coordinates use a 0-1000 scale relative to screen size:
- (0, 0) is top-left corner
- (1000, 1000) is bottom-right corner
Project Structure
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 Authentication
When using HTTP or SSE transport, you can pass the API key via the Authorization header:
# 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",...}'
References
License
MIT
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
Neon Database
MCP server for interacting with Neon Management API and databases
E2B
Using MCP to run code via e2b.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.