devilge MCP
An open-source Model Context Protocol server that enables AI assistants to develop, drive, and observe Android and KMM applications end-to-end. It exposes 33 tools covering the full inner loop, including reading project structure, building, installing, launching apps, driving UI via ADB, capturing logcat and network traffic, running tests, and executing Maestro flows.
Package and access
Local package with source-attributed installation metadata. Koskamo does not execute packages during review.
What you can do with it
- Read Android project structure and inspect Gradle/KMM state
- Drive app UI by tapping, swiping, and inputting text via ADB
- Capture logcat, app errors, and network calls for debugging
- Run instrumented tests and Maestro flows for automated validation
Source and maintenance
- Maintenance checked
Packages and installation
Source-provided package data. Koskamo has not executed or live-probed this package.
devilge 0.2.3
{
"version": "0.2.3",
"transport": "stdio",
"identifier": "devilge",
"registryType": "npm",
"environmentVariables": [
{
"name": "DEVILGE_ANDROID_PROJECT_ROOT",
"format": "string",
"isRequired": true,
"description": "Absolute path to the Android/KMM project root that devilge inspects (Gradle modules, source files, build outputs)."
},
{
"name": "DEVILGE_OUTPUTS_ROOT",
"format": "string",
"description": "Directory where devilge writes screenshots and UI dumps. Defaults to <projectRoot>/.devilge-outputs/."
},
{
"name": "DEVILGE_DEFAULT_DEVICE_SERIAL",
"format": "string",
"description": "Default ADB serial used when a tool does not specify one. Useful when several devices/emulators are attached."
},
{
"name": "DEVILGE_FLOWS_ROOT",
"format": "string",
"description": "Directory containing Maestro YAML flows. Defaults to <projectRoot>/devilge-flows/."
},
{
"name": "DEVILGE_MAESTRO_BIN_PATH",
"format": "string",
"description": "Absolute path to the Maestro binary. If unset, devilge resolves it from PATH; if absent, Maestro tools degrade gracefully."
},
{
"name": "DEVILGE_ALLOW_FLOW_SCRIPTS",
"format": "string",
"description": "Set to 'true' to allow Maestro flows containing 'runScript:' blocks. Default is false; flows with scripts are rejected."
},
{
"name": "DEVILGE_HTTP_LOG_TAGS",
"format": "string",
"description": "Comma-separated logcat tags scanned for HTTP traffic. Defaults to 'HttpClient,OkHttp' (covers Ktor + OkHttp/Retrofit)."
},
{
"name": "DEVILGE_HTTP_LOG_FORMAT",
"format": "string",
"description": "HTTP log parser to use: 'auto' (default), 'ktor', or 'okhttp'."
}
]
}Tools
Reported by the attributed source; not independently observed by Koskamo.
Connect from your client
Each snippet configures the same source-provided package; replace placeholders before use.
Cursor
{
"mcpServers": {
"devilge-mcp": {
"command": "npx",
"args": [
"-y",
"devilge@0.2.3"
],
"env": {
"DEVILGE_ANDROID_PROJECT_ROOT": "<YOUR_DEVILGE_ANDROID_PROJECT_ROOT>",
"DEVILGE_OUTPUTS_ROOT": "<YOUR_DEVILGE_OUTPUTS_ROOT>",
"DEVILGE_DEFAULT_DEVICE_SERIAL": "<YOUR_DEVILGE_DEFAULT_DEVICE_SERIAL>",
"DEVILGE_FLOWS_ROOT": "<YOUR_DEVILGE_FLOWS_ROOT>",
"DEVILGE_MAESTRO_BIN_PATH": "<YOUR_DEVILGE_MAESTRO_BIN_PATH>",
"DEVILGE_ALLOW_FLOW_SCRIPTS": "<YOUR_DEVILGE_ALLOW_FLOW_SCRIPTS>",
"DEVILGE_HTTP_LOG_TAGS": "<YOUR_DEVILGE_HTTP_LOG_TAGS>",
"DEVILGE_HTTP_LOG_FORMAT": "<YOUR_DEVILGE_HTTP_LOG_FORMAT>"
}
}
}
}Cline
{
"mcpServers": {
"devilge-mcp": {
"command": "npx",
"args": [
"-y",
"devilge@0.2.3"
],
"env": {
"DEVILGE_ANDROID_PROJECT_ROOT": "<YOUR_DEVILGE_ANDROID_PROJECT_ROOT>",
"DEVILGE_OUTPUTS_ROOT": "<YOUR_DEVILGE_OUTPUTS_ROOT>",
"DEVILGE_DEFAULT_DEVICE_SERIAL": "<YOUR_DEVILGE_DEFAULT_DEVICE_SERIAL>",
"DEVILGE_FLOWS_ROOT": "<YOUR_DEVILGE_FLOWS_ROOT>",
"DEVILGE_MAESTRO_BIN_PATH": "<YOUR_DEVILGE_MAESTRO_BIN_PATH>",
"DEVILGE_ALLOW_FLOW_SCRIPTS": "<YOUR_DEVILGE_ALLOW_FLOW_SCRIPTS>",
"DEVILGE_HTTP_LOG_TAGS": "<YOUR_DEVILGE_HTTP_LOG_TAGS>",
"DEVILGE_HTTP_LOG_FORMAT": "<YOUR_DEVILGE_HTTP_LOG_FORMAT>"
}
}
}
}VS Code
{
"servers": {
"devilge-mcp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"devilge@0.2.3"
],
"env": {
"DEVILGE_ANDROID_PROJECT_ROOT": "<YOUR_DEVILGE_ANDROID_PROJECT_ROOT>",
"DEVILGE_OUTPUTS_ROOT": "<YOUR_DEVILGE_OUTPUTS_ROOT>",
"DEVILGE_DEFAULT_DEVICE_SERIAL": "<YOUR_DEVILGE_DEFAULT_DEVICE_SERIAL>",
"DEVILGE_FLOWS_ROOT": "<YOUR_DEVILGE_FLOWS_ROOT>",
"DEVILGE_MAESTRO_BIN_PATH": "<YOUR_DEVILGE_MAESTRO_BIN_PATH>",
"DEVILGE_ALLOW_FLOW_SCRIPTS": "<YOUR_DEVILGE_ALLOW_FLOW_SCRIPTS>",
"DEVILGE_HTTP_LOG_TAGS": "<YOUR_DEVILGE_HTTP_LOG_TAGS>",
"DEVILGE_HTTP_LOG_FORMAT": "<YOUR_DEVILGE_HTTP_LOG_FORMAT>"
}
}
}
}Claude Desktop
{
"mcpServers": {
"devilge-mcp": {
"command": "npx",
"args": [
"-y",
"devilge@0.2.3"
],
"env": {
"DEVILGE_ANDROID_PROJECT_ROOT": "<YOUR_DEVILGE_ANDROID_PROJECT_ROOT>",
"DEVILGE_OUTPUTS_ROOT": "<YOUR_DEVILGE_OUTPUTS_ROOT>",
"DEVILGE_DEFAULT_DEVICE_SERIAL": "<YOUR_DEVILGE_DEFAULT_DEVICE_SERIAL>",
"DEVILGE_FLOWS_ROOT": "<YOUR_DEVILGE_FLOWS_ROOT>",
"DEVILGE_MAESTRO_BIN_PATH": "<YOUR_DEVILGE_MAESTRO_BIN_PATH>",
"DEVILGE_ALLOW_FLOW_SCRIPTS": "<YOUR_DEVILGE_ALLOW_FLOW_SCRIPTS>",
"DEVILGE_HTTP_LOG_TAGS": "<YOUR_DEVILGE_HTTP_LOG_TAGS>",
"DEVILGE_HTTP_LOG_FORMAT": "<YOUR_DEVILGE_HTTP_LOG_FORMAT>"
}
}
}
}Let your agent find its tools
Find servers like devilge MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.