airi-android
by proj-airi
README.md
# アイリ Android
[](LICENSE)
A MCP server that allows ~~airi~~ all LLMs to control Android devices. This project is a child project of [airi](https://github.com/moeru-ai/airi).
## Features
### Input Control
- `input_tap` - Tap on the screen at given coordinates
- `input_swipe` - Swipe from one coordinate to another
- `input_text` - Input text on the device
- `input_keyevent` - Send a key event to the device
- `input_press` - Press the current key
- `input_roll` - Roll the trackball
### Device Information
- `wm_size` - Get the physical screen size
- `wm_density` - Get the display density
- `cpu_percent` - Get CPU usage percentage
- `cpu_count` - Get the number of CPU cores
- `battery_level` - Get battery level
- `battery_stats` - Get detailed battery statistics
### UI & Activity
- `ui_get_hierarchy` - Get UI hierarchy (XML)
- `utils_top_activity` - Get the top activity
- `utils_top_activities` - Get all top activities
- `utils_package_version` - Get package version info
### Device Management
- `device_connect` - Connect to a device at specified host and port
- `device_reset` - Reset device connection
- `shell_execute` - Execute any shell command
## Usage
### Docker (Recommended)
```bash
docker run --rm -it -p 3000:3000 -e ADB_HOST=host.docker.internal ghcr.io/proj-airi/airi-android:v0.3.4
# or stdio mode
docker run --rm -i -e USE_STDIO=true -e ADB_HOST=host.docker.internal ghcr.io/proj-airi/airi-android:v0.3.4
```
For agents supporting MCP, you can use the following configuration:
```json5
// mcp.json
{
"mcpServers": {
// http mode
"airi-android-http": {
"url": "http://localhost:3000/mcp"
},
// stdio mode
"airi-android-stdio": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-e",
"USE_STDIO=true",
"-e",
"ADB_HOST",
"ghcr.io/proj-airi/airi-android:v0.3.4"
],
"env": {
"ADB_HOST": "host.docker.internal"
}
}
}
}
```
### Run Directly
Requires [Bun](https://bun.sh/) to be installed.
```bash
# Install dependencies
bun install
# Start server (HTTP mode, port 3000)
bun run start
# Or use stdio mode
USE_STDIO=true bun run start
```
## Development Setup
### Prerequisites
1. Install [Bun](https://bun.sh/)
2. Install [Android Platform Tools](https://developer.android.com/studio/releases/platform-tools)
3. Connect an Android device (via USB or `adb connect` for emulators)
### Commands
```bash
# Install dependencies
bun install
# Run tests
bun test
# Start development server
bun run dev
# Build binary
bun run build
# Lint code
bun run lint
# Type check
bun run typecheck
```
### Contributing
See [AGENTS.md](AGENTS.md) for code guidelines.
## Environment Variables
| Variable | Description | Default |
|----------|-------------|---------|
| `USE_STDIO` | Set to `true` to use stdio transport mode | `false` |
| `ADB_HOST` | ADB server host address | `localhost` |
## Tech Stack
- [Bun](https://bun.sh/) - JavaScript runtime
- [TypeScript](https://www.typescriptlang.org/) - Type-safe JavaScript
- [MCP SDK](https://github.com/modelcontextprotocol/typescript-sdk) - Model Context Protocol SDK
- [adbkit](https://github.com/AnotherGenZ/adbkit) - ADB client library
- [Hono](https://hono.dev/) - Web framework
- [Zod](https://zod.dev/) - Schema validation
## License
[MIT](LICENSE)
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues