AndroidBoss
AndroidBoss provides tools for Android development work: deobfuscating R8 stack traces with a build's mapping.txt, checking what behaviour changes when raising targetSdk (flagged against your AndroidManifest.xml), looking up permissions and checking a manifest for Play-restricted ones, converting between SVG, VectorDrawable and Compose ImageVector, writing R8 keep rules, and querying/producing Android CLI commands and tasks.
Supports Gradle build maintenance: verifying Gradle (and AGP/Kotlin/KSP/compileSdk) version compatibility, and migrating a build file's dependencies and plugins into a Gradle libs.versions.toml version catalog.
Provides tooling for Kotlin and Kotlin Multiplatform projects: generating Kotlin data classes from JSON for kotlinx.serialization/Moshi/Gson, generating actual declarations for each KMP target from commonMain expect code, showing how a shared Kotlin file looks when called from Swift, finding KMP libraries by task and target with a ready libs.versions.toml, and checking that Kotlin, AGP, Gradle, KSP and Compose Multiplatform versions are compatible.
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
Tested tools for Android and Kotlin Multiplatform developers and their coding agents
Website · MCP setup · npm · Report a bug
AndroidBoss turns the fiddly parts of Android and Kotlin® Multiplatform work into small, deterministic tools: deobfuscating an R8 stack trace, checking that Kotlin, AGP and Gradle versions work together, finding what changes when you raise targetSdk, writing actual declarations for each KMP target, and more.
The same tools are available three ways:
Where | Best for | |
Hosted MCP server |
| Giving Claude Code, Codex, Gemini CLI, Cursor or VS Code the tools with nothing to install |
Local CLI and MCP server | Large or private inputs, offline work, scripts and CI | |
Web tools | Using them in a browser, with your input never leaving the page |
Every tool's output is checked against the real toolchain before it ships: R8 and Google's retrace, Gradle, aapt2, Kotlin/Native, swiftc and the Android CLI.
Contents
Related MCP server: claude-android
Quick start
Give your coding agent the tools (Claude Code shown; other agents below):
claude mcp add --transport http androidboss https://mcp.androidboss.org/mcpThen ask it something like "Retrace this crash with app/build/outputs/mapping/release/mapping.txt" or "Can I move to AGP 9.5 with my current Gradle version?"
Or run the tools yourself (Node.js 22 or newer):
npx androidboss tools
npx androidboss retrace --mapping @app/build/outputs/mapping/release/mapping.txt < crash.txt
npx androidboss check-compatibility --kotlin 2.4.0 --agp 9.5.0 --gradle 9.6.0Tools
CLI command | MCP tool | What it does |
|
| Deobfuscates a stack trace with the |
|
| Kotlin data classes from a JSON sample, for kotlinx.serialization, Moshi or Gson. |
|
| Whether Kotlin, AGP, Gradle, KSP, Compose Multiplatform and |
|
| What the Android CLI can do, and the fields each task takes. |
|
| The exact Android CLI command for a task. |
|
| A crash or ANR as a short, redacted prompt for an agent: root cause, files to open, trimmed trace. |
|
| Moves a build file's dependencies and plugins into |
|
| SVG, VectorDrawable and Compose |
|
| Writes R8 keep rules for reflection, JSON models and JNI, or lints |
|
|
|
|
| How a shared Kotlin file looks when called from Swift. |
|
| KMP libraries by task and target, with current versions and a ready |
|
| Permission facts, and a check of your |
|
| Behaviour changes between two |
All tools are read-only: they never write files, run commands or call other services.
Connect your agent
The hosted server speaks Streamable HTTP (MCP 2026-07-28, with a fallback for 2025 clients) and needs no sign-in. To run it on your own machine instead, use npx -y androidboss mcp as a stdio server; see the last entry.
claude mcp add --transport http androidboss https://mcp.androidboss.org/mcpOr in .mcp.json:
{
"mcpServers": {
"androidboss": { "type": "http", "url": "https://mcp.androidboss.org/mcp" }
}
}codex mcp add androidboss --url https://mcp.androidboss.org/mcpOr in .codex/config.toml:
[mcp_servers.androidboss]
url = "https://mcp.androidboss.org/mcp"In .gemini/settings.json:
{
"mcpServers": {
"androidboss": { "httpUrl": "https://mcp.androidboss.org/mcp" }
}
}In .cursor/mcp.json:
{
"mcpServers": {
"androidboss": { "url": "https://mcp.androidboss.org/mcp" }
}
}In .vscode/mcp.json:
{
"servers": {
"androidboss": { "type": "http", "url": "https://mcp.androidboss.org/mcp" }
}
}In .agents/mcp_config.json:
{
"mcpServers": {
"androidboss": { "serverUrl": "https://mcp.androidboss.org/mcp" }
}
}claude mcp add androidboss -- npx -y androidboss mcpFor agents configured in JSON, add a stdio server:
{
"mcpServers": {
"androidboss": { "command": "npx", "args": ["-y", "androidboss", "mcp"] }
}
}https://androidboss.info/mcp serves the same tools from the same code, and keeps working for existing setups.
Command-line usage
androidboss <tool> [--option value]... [--json]
androidboss tools list the tools
androidboss help <tool> a tool's options
androidboss mcp run as a local MCP server over stdioOptions come from each tool's input schema, so the CLI and the MCP server always accept the same inputs.
Syntax | Meaning | Example |
| An option, in kebab-case or camelCase |
|
| Read the value from a file |
|
| Read the value from standard input |
|
Piped input | Fills the tool's one missing required text option |
|
| A list |
|
| One key of an object option |
|
| Print the structured result instead of text |
|
Exit codes: 0 success, 1 the tool reported an error, 2 a usage error (unknown option, missing value, unreadable file).
More examples:
# What changes when targetSdk goes to 36, checked against your manifest
npx androidboss target-sdk-changes --to 36 --manifest @app/src/main/AndroidManifest.xml
# Networking libraries that publish both Android and iOS targets
npx androidboss find-kmp-libraries --category networking --targets android,ios
# Look up permissions and check a manifest for Play-restricted ones
npx androidboss android-permissions --names CAMERA,ACCESS_FINE_LOCATION --manifest @app/src/main/AndroidManifest.xmlPrivacy and limits
Nothing is stored. The hosted server handles each request in memory and keeps no database; request bodies aren't logged. The CLI runs entirely on your machine.
Inputs are capped on the hosted server to stay within Cloudflare's free tier: a
mapping.txtup to 5 MB, most other inputs up to 100 KB, and a per-IP rate limit. The CLI accepts mapping files up to 100 MB.Mind what you send.
crash_to_promptredacts emails, tokens and IP addresses, but review crash logs before sharing them with any service.
How it's built
packages/
core/ Tool logic in plain TypeScript. Runs in browsers, Node.js and Workers.
data/ Data the tools read: permissions, targetSdk changes, compatibility tables,
KMP libraries, Apple privacy keys. Refreshed from the source by scripts/.
mcp/ The MCP server (14 tools) and its HTTP handler.
cli/ The npm package `androidboss`: the server as commands and as a stdio server.
apps/
mcp-worker/ mcp.androidboss.org on Cloudflare Workers.The web tools at androidboss.info use core and data from this repository, so a fix here reaches the website, the MCP server and the CLI together.
Correctness comes from fixtures produced by the real tools. For example, packages/core/src/retrace/fixtures holds a mapping and stack traces from an R8 build together with the exact output of Google's retrace, and the implementation must reproduce it byte for byte.
Development
You need Node.js 22.23 or newer.
git clone https://github.com/androidboss-org/androidboss.git
cd androidboss
npm ci
npm test # unit tests for every package
npm run check # type checksCommand | What it does |
| Tests for one package |
| Bundles the CLI into |
| Runs your local build of the CLI |
| Serves the MCP Worker at |
| Runs the MCP client tests against a running server |
Some tests compile or run generated code with real toolchains. They're skipped unless you turn them on:
Variable | Needs | Checks |
| Gradle ( | Version catalogs compile with Gradle; every KMP library compiles for Android, iOS and JVM |
| Gradle, Android SDK, Xcode |
|
| Android SDK, Gradle | VectorDrawables through aapt2; |
| Android CLI | Every Android CLI command against the installed CLI |
CHECK_GRADLE=1 npm test -w @androidboss/coreContributing
Bug reports, fixes and new tools are welcome.
Open an issue first for anything bigger than a small fix, so we can agree on the approach. For a wrong result, include the input, the output you expected and the tool that produced it.
Keep tools deterministic and read-only. The same input must give the same output, with no network calls.
Prove it against the real tool. A change to output needs a test, ideally with a fixture produced by the official toolchain, like the existing ones.
Run
npm testandnpm run checkbefore opening a pull request. CI runs both.
Data in packages/data comes from the update scripts in packages/data/scripts; change the script rather than editing the generated JSON by hand.
Releases
Each release has a vX.Y.Z tag matching the version in packages/cli/package.json. Pushing the tag runs the release workflow, which tests the project, publishes the CLI to npm through trusted publishing with provenance (no stored tokens; npm shows which commit and workflow built it), and creates a GitHub Release with the package tarball.
Security
Please don't report security problems in public issues. Use private vulnerability reporting instead.
Support the project
If AndroidBoss saves you time:
⭐ Star the repository so other Android developers can find it.
☕ Sponsor the work with the Sponsor button at the top of the repository.
🛠️ Report a wrong result or send a fix. Real-world inputs make the tools better.
Licence
MIT © AndroidBoss
The CLI bundles third-party packages under their own licences, listed in dist/THIRD-PARTY-LICENSES.txt inside the npm package.
Android is a trademark of Google LLC. Kotlin® is a trademark protected by the Kotlin Foundation. AndroidBoss is an independent project and is not affiliated with or endorsed by Google, JetBrains or the Kotlin Foundation.
This server cannot be deployed
Maintenance
Related MCP Connectors
238+ dev tools via MCP: JSON, QR, PDF, DNS, hash, UUID, code review, JWT, SSL, WHOIS, and more
Tiny devtools MCP server: slugs, timestamps, case conversion, hashing, base64, UUIDs.
518.PLUS: MCP tool marketplace. Run tools on files, text or JSON, share results, publish your own.
Build your own tools from chat: design, test and host them on a shareable MCP server URL.
Related MCP Servers
- AlicenseAqualityCmaintenanceA growing collection of MCP tools for Android Development. Currently features a deterministic Figma-SVG-to-Android-XML converter, with plans for Gradle analysis, Resource management, and ADB integration tools.714 npm18MIT
- AlicenseAqualityCmaintenanceMCP server for Android dev workflows that exposes Gradle, Manifest, and ProGuard context to Claude, with a library of skills for tasks like AGP upgrade and R8 audit.3MIT
- FlicenseNot gradedqualityAmaintenanceMCP server that provides AI coding agents real Android development tools—Gradle, adb, logcat, lint, crash triage—through a local, permissioned interface. Enables agents to inspect projects, run safe Gradle tasks, capture logs/screenshots, and triage crashes.1-
- AlicenseBqualityBmaintenanceLets AI coding agents build, test, and lint Android projects with Gradle, control devices and emulators via adb, automate UI through screenshots and input injection, and use a live IDE bridge for refactoring, code inspection, and run configurations. Works with any MCP client over stdio or authenticated HTTP.46MIT