AndroJack-mcp
An MCP server that grounds AI coding assistants in live, official Android/Kotlin documentation and enforces API-current, policy-compliant code across 22 read-only tools.
Search official docs (
android_official_search) — excerpts + source URLs from developer.android.com, kotlinlang.org, source.android.com.Validate APIs (
android_component_status) — stable/deprecated/removed status plus replacements and migration notes.Ground architecture (
architecture_reference) — official guidance on MVVM, Hilt, Room, modularization, and 40+ topics.Debug crashes (
android_debugger) — parses stacktraces into verified causes and fixes.Check dependencies (
gradle_dependency_checker) — live latest-stable versions from Google Maven/Maven Central with Kotlin DSL and BOM resolution.Map API levels (
android_api_level_check) — version/codename tables and minSdk availability warnings.Get code patterns (
kotlin_best_practices) — sourced snippets and anti-patterns for coroutines, Flow, Compose state, Hilt, and more.Build Material 3 Expressive UI (
material3_expressive) — theme setup, MotionScheme, new components, shapes, typography, migration.Handle permissions (
android_permission_advisor) — permission types, Play restrictions, correct request contracts.Write tests (
android_testing_guide) — unit, Compose UI, Espresso, Room, and Hilt testing patterns.Ship builds (
android_build_and_publish) — R8, version catalogs, KSP, signing, AAB, baseline profiles.Adapt to large screens (
android_large_screen_guide) — WindowSizeClass, scaffolds, foldables, Play quality tiers.Scale apps (
android_scalability_guide) — Paging 3, offline-first sync, startup, recomposition performance.Migrate navigation (
android_navigation3_guide) — Nav3 setup, Nav2 migration, Scenes, testing.Meet Android 16 rules (
android_api36_compliance) — orientation/resizability bans, adaptive layouts, predictive back.Handle Android 17 rules (
android_api17_compliance) — static final reflection, local network, SMS OTP, NPU, Handoff.Build for KMP (
android_kmp_guide) — Ktor, Room KMP, Koin, expect/actual patterns.Add on-device AI (
android_ondevice_ai) — AICore, ML Kit Gen AI, smart reply, swappable repository architecture.Pass Play review (
android_play_policy_advisor) — subscriptions, minor access, restricted permissions, data safety, quality badges.Target XR (
android_xr_guide) — SpatialPanel, UserSubspace, Orbiter, ARCore tracking.Target Wear OS (
android_wearos_guide) — Wear Compose, Tiles, Health Services, rotary input.Gate generated code (
android_code_validator) — PASS/WARN/FAIL verdict with line-level violations, replacements, and doc links before code reaches the user.
Provides live, verified Android knowledge from official sources, including APIs, best practices, and documentation for Android development.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@AndroJack-mcp Get the official Android Activity lifecycle documentation."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.

AndroJack — The Jack of All Android Trades
An MCP server that equips your AI coding assistant with live, verified Android knowledge — so it builds from official sources, not from memory.
Also works with: Windsurf · VS Code Copilot · Google Antigravity · JetBrains AI — see Manual Config below ↓
VS Code distribution: Also live on the VS Code Marketplace as AndroJack MCP for VS Code.
Table of Contents
Related MCP server: Android Source Explorer
🔥 The Crisis That Created This Tool
In 2025, the Stack Overflow Developer Survey asked 49,000 developers about their experience with AI coding tools. The results should alarm every Android engineer:
84% of developers now use AI coding tools — up from 76% the year before.
Trust in AI accuracy collapsed from 40% to just 29% in a single year.
35% of all Stack Overflow visits in 2025 are now triggered by developers debugging and fixing AI-generated code.
The gap between usage and trust is not a coincidence. It is the product of a structural problem: AI models predict tokens, not APIs. They were trained on a snapshot of the world and have no mechanism to know what changed at API 30, what shipped at Google I/O 2025, or what Google Play now rejects at review time.
For Android developers, this failure mode is uniquely dangerous. Android has the fastest-moving ecosystem in mobile development — a new Compose BOM every month, Navigation 3 going stable after seven years of Nav2, Android 16 rewriting the rules on screen orientation locking — and most AI tools have training data that is six months to two years stale by the time you use them.
The result is not just bad code. It is confidently bad code.
⚡ What Actually Breaks In Practice — Documented Evidence
These are not hypothetical risks. They are documented failure modes from real developer projects.
A published case study from Atomic Robot documented a live Navigation 2 → Navigation 3 migration using both Gemini and Claude — with internet access enabled on both. The conclusion, verbatim:
"LLMs still hallucinate versions. Even with internet access, both agents wanted to use an outdated release candidate instead of the stable 1.0.0 release."
Navigation 3 went stable in November 2025 after seven years of the same library. It is a complete architectural rethink: back stacks are now plain Kotlin lists, the monolithic nav graph is gone, and NavDisplay replaces NavController. Google's own migration guide is so aware that AI tools get this wrong that it now contains special "AI Agent:" annotations — instructions embedded directly in the official docs for AI tools to follow. An AI tool that generates Nav2 code for a new Compose project in 2026 is not making a small mistake. It is creating an architectural incoherence that requires a full rewrite to fix.
Jetpack Compose ships a new BOM every month. Since most models' training cutoffs, these APIs changed:
API | Status | What goes wrong |
| Deprecated in Compose 1.8 | AI still generates them — compile warning today, removal tomorrow |
| Removed from coroutines-test 1.8+ | AI still generates it — non-deterministic test failures in CI |
| Deprecated in 1.8 | Subtle behavioral regression at runtime, silent in most linting setups |
| Deprecated | Incorrect drag behavior at anchor boundaries |
Navigation 2 in new projects | Superseded by Nav3 stable Nov 2025 | Architectural dead-end that requires a rewrite to fix |
Every one of these compiles. Most run without errors. The bugs surface later in CI flakiness, UI regressions, or Play Store review failures.
Android 16 made a platform-level change affecting every published app: on devices ≥600dp — tablets, foldables, ChromeOS — apps can no longer lock screen orientation or restrict resizability. Since August 31, 2026, Google Play requires new apps and updates to target API 36 (extension available to November 1, 2026). Android 17 / API 37 removes the remaining opt-out.
An AI tool generating android:screenOrientation="portrait" or android:resizeableActivity="false" today is generating code that triggers App Compatibility warnings in Play Console, fails large-screen quality checks, and gets apps demoted in Play Store search results.
The business impact is not theoretical: Foldable users spend 14× more on apps than phone-only users. Tablet + phone users spend 9× more. FlipaClip saw 54% growth in tablet users within four months of going adaptive.
Kotlin Multiplatform went mainstream in 2025 — over 900 new KMP libraries published, Room added KMP support, companies now hire specifically for KMP skills. When a developer on a KMP project asks an AI tool to add database support, the AI generates Android-only Room code. It compiles. It runs perfectly on Android. The iOS build fails. The developer spends hours debugging before realizing the root cause: their AI tool does not know KMP exists.
🧩 What AndroJack Does
AndroJack is a documentation-grounded Android engineering MCP server. It gives your AI coding assistant 23 specialized tools that fetch live, verified answers from official Android and Kotlin sources — instead of predicting from stale training data.
It does not make the AI smarter. It makes the AI accountable to evidence.
Think of it as a pre-build linter for LLMs. While other tools retrieve documentation, AndroJack acts as a strict architectural gatekeeper.
Without AndroJack: You ask → AI predicts from stale weights → Code (possibly wrong)
With AndroJack: You ask → AI calls tool → Tool fetches official source live
→ AI reads verified answer → Code (grounded)⚠️ Honest Activation Model — Two Levels
This is the most important thing to understand before you install AndroJack.
Level | What's Active | What the AI Does |
Level 1 — Tools only | 23 tools registered in IDE | AI may call the right tool. Depends on the IDE and the AI's judgment. |
Level 2 — Tools + Grounding Gate | 23 tools + mandatory pre-generation rulebook | AI must call the correct tool for every decision before writing code. |
Level 3 — Full loop-back | Level 2 + | AI validates every code block against 34 rules. Errors must be fixed before the user sees the code. |
Level 1 is passive. The tools are available but the AI decides when to use them. An AI building a Compose screen may call architecture_reference but skip material3_expressive — and ship M3E violations silently.
Level 2 is active. The androjack_grounding_gate system prompt maps every task type to the correct tool. Building Compose UI? The AI is mandated to call material3_expressive first. Adding a dependency? It must call gradle_dependency_checker. No exceptions.
Level 3 is the loop-back. android_code_validator runs on every code block the AI generates before returning it to the user. 34 rules covering removed APIs, deprecated patterns, Android 16/17 compliance, and Compose-First migration signals. Comments are ignored, so a migration note like // replaced AsyncTask never triggers a false FAIL. Results come back as text and as structuredContent with an output schema. Verdict FAIL means the AI must fix and re-validate — the user never sees the broken code.
→ For full grounding, always activate Level 2 + Level 3. See Getting the Full Guarantee below.
🪲 What Can Still Break — Even at Level 3
AndroJack is a documentation-grounding and API-validation tool. It is not a Compose layout engine, a design system enforcer, or a runtime renderer. Level 3 catches removed APIs and deprecated patterns. It cannot catch every class of Android bug. This is not a limitation of AndroJack — it is a fundamental property of static text analysis applied to a visual, runtime-rendered UI framework.
The following bugs were encountered in a real Android app built with AndroJack at Level 2 (v1.4.0). They are documented here honestly so you know exactly what to watch for — and where to reach for different tools.
✅ What Level 3 Catches
// ❌ REMOVED — android_code_validator fires: REMOVED_ASYNCTASK
class MyTask : AsyncTask<Void, Void, String>()
// ❌ REMOVED — fires: REMOVED_TEST_COROUTINE_DISPATCHER
val dispatcher = TestCoroutineDispatcher()
// ❌ DEPRECATED — fires: DEPRECATED_CONTEXTUAL_FLOW_ROW
ContextualFlowRow { Text("hello") }
// ❌ LEAK — fires: GLOBALSCOPE_LAUNCH
GlobalScope.launch { fetchData() }⚠️ What Level 3 Cannot Catch
The following bugs were found in a real project. They are valid, API-current Compose code that violates design system constraints, accessibility minimums, or architectural boundaries. Static text scanning cannot detect them.
// Compiles and runs. Level 3 sees no violation.
// The bug: Text inside MultiChoiceSegmentedButtonRow truncates because a
// fixed height modifier prevents the Roboto Flex variable font from expanding.
MultiChoiceSegmentedButtonRow {
SegmentedButton(/* fixed height modifier */) {
Text("Light")
}
}This is anabsence bug. The correct modifier is missing — no wrong one is present. Use visual testing or runtime inspection.
// Correct Material 3 API. Level 3 sees no violation.
// The bug: disabled state colours fail WCAG AA 4.5:1 contrast against surface.
Button(enabled = false, onClick = {}) {
Text("INITIALIZE VAULT")
}This is aruntime visual property bug. Use paparazzi screenshot tests or Google's Accessibility Scanner.
// A missing try/catch produces no pattern match.
class VaultViewModel : ViewModel() {
fun initializeVault() {
viewModelScope.launch {
val result = repository.initialize() // Missing try/catch
_uiState.value = UiState.Success(result)
}
}
}UDF architecture violations require Detekt with custom rules or unit tests verifying exception mapping.
🗂️ Defence-in-Depth: The Right Tool for Each Bug Class
Bug Class | Real Example | Right Tool |
Removed / deprecated API |
| ✅ AndroJack Level 3 |
Android 16 violations |
| ✅ AndroJack Level 3 |
Android 17 violations |
| ✅ AndroJack Level 3 |
Architecture (flagged root) |
| ✅ AndroJack Level 3 |
Absent modifier / missing constraint |
| 🔧 Android Lint / IDE inspector |
Runtime contrast / colour failures |
| 🔧 paparazzi + Accessibility Scanner |
Touch target violations |
| 🔧 Accessibility Scanner |
Architecture boundary (missing catch) |
| 🔧 Detekt + ViewModel unit tests |
🎯 The Killer Argument
"Can your
agents.mdfile tell me the Gradle version that shipped last Tuesday?"
No markdown file can. No rules in .cursorrules can. No SKILL.md can.
✅ Only a live tool call can.
That's the job AndroJack exists to do — and nothing else in the current ecosystem does it for Android specifically.
What you need | agents.md / SKILL.md | AndroJack MCP |
Format output a specific way | ✅ Perfect | Works too |
Follow team conventions | ✅ Perfect | Works too |
Latest Gradle version right now | ❌ Guesses from memory | ✅ Fetches live |
Is AsyncTask removed? | ❌ May be wrong | ✅ Verified against SDK |
Android 16 Play Store rules | ❌ Unknown | ✅ Official source |
Prompt engineering controls how the AI responds. MCP controls what the AI knows.
✨ What AndroJack Covers — 23 Tools
# | Tool | What It Does | What Breaks Without It |
1 |
| Official doc excerpts — Google Developer Knowledge API (optional key) or a verified index of canonical pages | AI reasons from memory — possibly wrong today |
2 |
| Deprecated/removed check on 40+ APIs | Compiles fine, breaks at runtime/review |
3 |
| Guides for 40+ topics — MVVM, Nav3, MVI... | AI gives 2022 advice; misses Nav3 |
4 |
| Parses stacktraces → official docs + Issue Tracker link | AI hallucinates fixes for known bugs |
5 |
| Live lookup from Google Maven (highest stable, pre-release flagged) + BOM resolution | Stale Compose BOM, KAPT instead of KSP |
6 |
| API 21–36 table, minSdk warnings | API 26+ calls in minSdk 21 apps |
7 |
| 10 patterns — coroutines, MVI, Compose state |
|
8 |
| Material 3 Expressive components & Motion | M2 MaterialTheme in M3E app |
9 |
| 40+ permissions rules & contracts |
|
10 |
| Unit/Compose UI testing official patterns |
|
11 |
| R8, libs.versions.toml, signing, AAB |
|
12 |
| WindowSizeClass (5 breakpoints incl. Large/XL), Adaptive Scaffolds | Phone-only layouts on foldables and desktops |
13 |
| Paging 3, WorkManager, modularization | Naive |
14 |
| Nav3 (Nov 2025) — Scenes, migration | AI generates Nav2 dead-ends |
15 |
| API 36 / Android 16 / 16 KB page size | Updates rejected — Play has required targetSdk 36 since Aug 31, 2026 |
16 |
| Room KMP, Room 3 (stable, | Android-only code in KMP projects |
17 |
| AICore, ML Kit Gen AI, Gemini Nano, AppFunctions (on-device MCP) | Cloud-only AI when offline is required |
18 |
| Play Store age-gating, billing openness, data safety | Apps rejected for unknown policy changes |
19 |
| Android XR SDK, SpatialPanel, Orbiter | Works as 2D panel, misses spatial value |
20 |
| Tiles, Health, M3 Expressive for Wear OS | Handheld patterns on round displays |
21 |
| Level 3 loop-back validation gate — 34 rules, structured output, also runs in CI | AI ships broken code without checking |
22 |
| Android 17 / API 37 (stable) — static final, LAN, OTP, MessageQueue, native libs, Handoff | Apps crash on API 37 targets |
23 |
| Developer Verification Program — timeline, registration, CI/CD | Apps blocked from install on certified devices (enforced since Sept 30, 2026 in 4 countries) |
🚀 Quick Start — Zero Install Required
Option 1 — Interactive CLI (v2.1.0) ✨ Recommended
npx -y androjack-mcp@2.1.0 installLaunches a full animated terminal wizard with auto-detection for VS Code, Cursor, Claude, Windsurf, JetBrains, Kiro, and Antigravity.
Option 2 — Targeted Installs
# Preview detected IDEs and config paths
npx -y androjack-mcp@2.1.0 install --list
# Auto-detect all
npx -y androjack-mcp@2.1.0 install --auto
# Install to a specific IDE
npx -y androjack-mcp@2.1.0 install --ide=cursor
npx -y androjack-mcp@2.1.0 install --ide=claude
npx -y androjack-mcp@2.1.0 install --ide=vscode
npx -y androjack-mcp@2.1.0 install --ide=windsurf
npx -y androjack-mcp@2.1.0 install --ide=jetbrains
npx -y androjack-mcp@2.1.0 install --ide=kiro
npx -y androjack-mcp@2.1.0 install --ide=antigravityOption 3 — Test Without an IDE
npx -y @modelcontextprotocol/inspector npx -y androjack-mcp@2.1.0Option 4 — Enforce the rules in CI (new in 2.1.0)
The same rule engine the agent is held to, run on every pull request — including code no agent touched:
npx -y androjack-mcp@2.1.0 validate app/src --target-sdk=37 # exit 1 on errors
npx -y androjack-mcp@2.1.0 validate . --format=sarif > androjack.sarif # GitHub code scanning# .github/workflows/androjack.yml
- run: npx -y androjack-mcp@2.1.0 validate . --target-sdk=37 --format=sarif > androjack.sarif || true
- uses: github/codeql-action/upload-sarif@v3
with: { sarif_file: androjack.sarif }
- run: npx -y androjack-mcp@2.1.0 validate . --target-sdk=37 # fails the job on errorsFlags: --format=text|json|sarif, --target-sdk=N, --min-sdk=N, --fail-on=error|warning|never. Exit codes: 0 pass, 1 violations, 2 usage error or the scan could not check everything (no matching files, a file over 1 MiB, or the 20k-file cap) — a gate never passes on a partial scan.
Optional configuration
Variable | Effect |
| Use Google's Developer Knowledge API as the doc-search backend (full-text search over developer.android.com). Without it, AndroJack uses its verified index of canonical pages. Privacy: search queries — including exception messages from |
| Zero outbound requests — tools return canonical links only. For air-gapped setups. |
|
|
| Same as |
| No MCP sessions — each request is self-contained (load-balancer friendly). |
🧩 Manual Config / Copy / Paste
If you prefer to wire the server manually, or want to inspect the exact JSON before writing anything:
Run
npx -y androjack-mcp@2.1.0 install --listto preview detected IDEs and target config paths.Ready-to-paste examples live in
config/.
IDE / Client | Config file |
Claude Desktop | |
Cursor | |
VS Code / GitHub Copilot | |
Windsurf | |
Android Studio / IntelliJ | |
AWS Kiro | |
Google Antigravity |
Every example keeps AndroJack local by default and runs the published package via npx -y androjack-mcp@2.1.0.
📍 The Ecosystem: AndroJack and Google's First-Party Agent Tools
Google now ships its own agent stack for Android. Being straight about the overlap:
Google Developer Knowledge MCP/API | Android CLI + Android skills + Knowledge Base | AndroJack MCP | |
Job | Retrieve docs (search, get, answer) | Run the toolchain; give agents task instructions; | Enforce: validate code, encode time-bound mandates, gate CI |
Retrieval quality | Best available — Google's own index | Google's own index | Uses Google's API when you set a key; otherwise a verified index of canonical pages |
Fails a build? | No | No (skills are advisory; | Yes — deterministic rule IDs, exit codes, SARIF |
Setup | Google Cloud project + API key | Install the CLI |
|
Where it runs | Remote (googleapis.com) | Local CLI | Local stdio / HTTP, works offline |
Recommended setup: use Google's tools for retrieval and task skills, and AndroJack as the enforcement step — android_code_validator inside the agent loop and androjack-mcp validate in CI. AndroJack does not try to out-search Google's own documentation index. With ANDROJACK_DEVELOPER_KNOWLEDGE_API_KEY set, it uses that index.
🔒 Security & Privacy
Property | Implementation |
Domain allowlist | Requests only to Google/Android/Kotlin official domains, default HTTPS port, no embedded credentials |
Redirects re-validated | Every redirect hop is checked against the allowlist (2.1.0) — an allowlisted host cannot bounce a fetch elsewhere |
Untrusted-content boundary | All fetched text is normalized, scrubbed of injection patterns and spoofed boundary tags, and wrapped as untrusted before it reaches the agent |
HTTPS only | Outbound documentation fetches refuse non-HTTPS URLs, cap body size, and redact query strings in retry logs |
Local by default |
|
HTTP hardening |
|
Transparent agent |
|
Read-only | All 23 tools annotated |
Credentials | None required. The optional Google API key is sent only as a header, never in URLs or logs |
Offline mode |
|
Security policy | Disclosure process and supported versions in SECURITY.md |
📋 Changelog
v2.1.0 — Fix what didn't work, harden what did, enforce in CI
Doc search actually returns docs. v2.0 scraped client-rendered search pages and returned no documentation for any query. 2.1 uses Google's Developer Knowledge API (optional key) or a verified index of canonical pages.
Security: redirect allowlist bypass closed; all fetched content now goes through the untrusted-content boundary (v2.0 claimed this but only one tool did it); boundary-tag spoofing and zero-width/full-width evasion fixed; HTTP session-exhaustion DoS fixed; bearer auth and stateless mode; 7 dependency vulnerabilities (1 critical) patched.
No more confident wrong answers:
Row→ "DEPRECATED",Task→ "REMOVED" registry false positives fixed; Android 17 games exemption corrected; fabricated Handoff API removed; Room 3 is stable (was described as alpha); Google Maven alphas no longer labelled "Latest Stable"; 19 dead documentation links replaced.Validator: comments ignored (ends agent fix-loops), Kotlin DSL
kapt(...)detected, API 37 thresholds corrected, 6 new Android 17 rules (34 total), structured output.New:
androjack-mcp validateCLI (text/JSON/SARIF) for CI; MCP resources for the rule catalogue; full tool annotations; AppFunctions guidance; Android Studio Rabbit 1 / AGP 9.4.Lower token cost:
tools/list~28.5 KB → ~20.5 KB; repeated identical results in a session are replaced by a short pointer (passrefresh: trueto get them again).Tests: 85 → 196 (+1 opt-in live), including a 17-scenario black-box UAT suite driven through the real MCP SDK client. See
test/uat/UAT_PLAN.md.
Full details: CHANGELOG.md.
v2.0.0 — Security Hardening, Compose-First, Developer Verification
Content sanitizer for indirect prompt injection —
src/content-sanitizer.tsneutralizes structural injection patterns (fake role markers, instruction-reset framing) in any externally-fetched text before it reaches the calling agent's context.android_debuggerresults fromissuetracker.google.com— the only allowlisted domain indexing free-text, user-submitted content — are wrapped in an explicit untrusted-data boundary.Dependency vulnerabilities patched — resolved 7 vulnerabilities (3 high) in transitive
undici/qsvia acheerioupdate. Zero breaking changes, 0 vulnerabilities in the shipped tree.Tool 23:
android_developer_verification— Google's developer verification program enforces from September 30, 2026 (Brazil, Indonesia, Singapore, Thailand first; global 2027). Covers registration paths, timeline, enterprise exemptions, and CI/CD bulk-registration APIs.Compose-First platform shift reflected — as of May 19, 2026, Android UI development is officially Compose First; View-based patterns (Fragments, RecyclerView, ViewPager) are flagged as maintenance-mode wherever queried, sourced directly from Google's own announcement rather than left silently outdated.
Compose 1.11 v2 Testing Framework — full migration guide for the new default
StandardTestDispatcherbehavior, plus a validator rule (UNCONFINED_DISPATCHER_COMPOSE_TEST) that flags the old assumption.Navigation 3 Scene Decorators (1.1) — persistent chrome (bottom bars, rails, dialogs) without per-screen awareness.
Android Studio codename corrected — was two full codenames stale ("Panda 2"). Now correctly reflects Quail (2026.1.x) as current stable, AGP 9.2.0.
Android Skills positioning — documents Google's first-party Android Skills/CLI (April 2026) and positions AndroJack's validator as the complementary post-generation enforcement gate, not a competing retrieval layer.
28 validator rules (was 26) — added
UNCONFINED_DISPATCHER_COMPOSE_TESTandNEW_FRAGMENT_CLASS_COMPOSE_FIRST.Fabricated version numbers removed — a prior session's dependency version catalog example asserted several unverified version numbers. Replaced with only-confirmed values plus explicit
CHECK_LIVE_VIA_gradle_dependency_checkerplaceholders.Full version sync — closed a gap where
src/version.tshad been bumped without propagating topackage.json, all IDE config files, and manifest files — now enforced as a release checklist item.
v1.7.1 — Engineering Hardening & Community Parity
54-Test Coverage — Implemented comprehensive unit and contract tests for validator rules, HTML parser, LRU cache, and HTTP security layer.
Discovery Parity — Fixed
/.well-known/mcpendpoint to correctly reporttools: 22.Dependency Sanitization — Removed
node-fetch(migrated to nativefetch) and pruned stale overrides for a cleaner supply chain.Rule Hardening — Improved Compose component detection for
NavHostandBottomAppBar.URL Remediation — Fixed broken documentation anchors for Android 17
ACCESS_LOCAL_NETWORKandhandoff.
v1.7.0 — Android 17 / API 37 Support
Tool 22:
android_api17_compliance— Full reference for Android 17 platform stability (March 26, 2026).Validator rule expansion — (Corrected in 2.1.0: these notes originally claimed 31 rules, including Room 3.0 and
ACCESS_LOCAL_NETWORKchecks that never shipped. The real count was 26 → 28 in 2.0.0 and 34 in 2.1.0.)WindowManager 1.5.0 — Added Large (1200dp) and Extra-large (1600dp) breakpoints and layout patterns.
Room 3.0 alpha — Support for modern SQLiteDriver migration paths.
👥 Authorship & Ownership
Vikas Sahani — Product Lead (vikassahani17@gmail.com)
Claude AI — AI Engineering Lead
MIT License © 2026 Vikas Sahani | SECURITY.md
Built because 35% of Stack Overflow visits in 2025 are developers debugging AI-generated code.
AndroJack exists so none of those visits are yours.
Available Tools
23 toolsandroid_api17_complianceAndroid 17 / API 37 ComplianceCRead-onlyIdempotent
Android 17 / targetSdk 37 breaking changes: static final reflection, ACCESS_LOCAL_NETWORK, SMS OTP delay, large-screen opt-out removed (games exempt), lock-free MessageQueue, read-only System.load, NPU declaration, Handoff. Topics: overview, checklist, static final, local network, sms otp, large screen, messagequeue, npu, handoff.
Inputs: topic, refresh.
android_api36_complianceAndroid 16 / API 36 Compliance CheckerBRead-onlyIdempotent
Android 16 / targetSdk 36 (required by Play for new apps and updates since Aug 31, 2026): orientation and resizability locks are ignored on ≥600dp; predictive back; 16 KB pages. Topics: compliance, layouts, checklist, predictive back, page size.
Inputs: topic, refresh.
android_api_level_checkAndroid API Level ReferenceARead-onlyIdempotent
Map an API level, version name, or codename to features and minSdk warnings. Pass 'all' for the full table.
Inputs: api_level_or_name (required).
android_build_and_publishAndroid Build & Publish GuideBRead-onlyIdempotent
Build and release reference: R8/ProGuard, version catalogs, kapt→KSP, signing, AAB/Play publishing, Baseline Profiles, current Android Studio/AGP, Google's Android CLI and skills.
Inputs: topic, refresh.
android_code_validatorAndroid Code ValidatorARead-onlyIdempotent
Call after generating every Android code block, before returning it. Checks Kotlin, XML, and Gradle against 34 rules (removed/deprecated APIs, Android 16/17 behaviour, coroutine misuse, kapt). Returns PASS/WARN/FAIL with line-level fixes and doc links, plus structuredContent. Comments are ignored. On FAIL, fix and re-run.
Inputs: code (required), minSdk, language, targetSdk. Returns: counts, minSdk, verdict, language, +3 more
android_component_statusAndroid Component Status ValidatorARead-onlyIdempotent
Is an Android/Kotlin class or library stable, deprecated, or removed? Call before using any android., androidx. or kotlin.* API. Returns status, replacement, and doc link; unknown names are reported as unconfirmed, never guessed.
Inputs: component_name (required).
android_debuggerAndroid Error DebuggerARead-onlyIdempotent
Parse an Android/Kotlin stacktrace and return the error class, matching official docs, and an Issue Tracker search link. Paste the exception line and 'at' frames.
Inputs: stacktrace (required), refresh.
android_developer_verificationAndroid Developer Verification ProgramBRead-onlyIdempotent
Android developer verification (identity check; enforced since Sept 30, 2026 in BR/ID/SG/TH, global 2027): who is affected, registration paths, enterprise exemptions. Topics: overview, timeline, registration, enterprise, studio.
Inputs: topic, refresh.
android_kmp_guideKotlin Multiplatform (KMP) GuideARead-onlyIdempotent
Kotlin Multiplatform reference: project setup, KMP libraries (Ktor not Retrofit, Koin not Hilt in commonMain), Room KMP and Room 3, expect/actual. Topics: overview, libraries, room, ktor, expect actual, gradle.
Inputs: topic, refresh.
android_large_screen_guideAndroid Large Screen & Adaptive Layout GuideARead-onlyIdempotent
Large-screen/tablet/foldable reference: WindowSizeClass, NavigationSuiteScaffold, ListDetailPaneScaffold, hinge handling, continuity, Play large-screen quality checklist.
Inputs: topic, refresh.
android_official_searchAndroid Official Documentation SearchARead-onlyIdempotent
Call first, before writing Android/Kotlin code. Returns official developer.android.com / kotlinlang.org excerpts with source URLs (Google Developer Knowledge API when configured, else a verified page index). If nothing matches it says so — do not fall back to memory.
Inputs: query (required), refresh.
android_ondevice_aiAndroid On-Device AI / AICore GuideBRead-onlyIdempotent
On-device AI: AICore / Gemini Nano via ML Kit GenAI, ML Kit, repository pattern for on-device vs cloud, and AppFunctions (expose app functions to agents; experimental). Topics: overview, setup, smart reply, ml kit, appfunctions.
Inputs: topic, refresh.
android_permission_advisorAndroid Permission AdvisorARead-onlyIdempotent
Permission reference: type, runtime-request need, Play restrictions, and the request pattern. Call before adding . Query 'runtime pattern' for request code; empty lists all.
Inputs: refresh, permission.
android_play_policy_advisorGoogle Play Store Policy AdvisorARead-onlyIdempotent
Play policy reference: target API requirement, Restrict Minor Access, subscription transparency, restricted permissions and Data Safety, large-screen quality. Call before Play submission or new monetization.
Inputs: topic, refresh.
android_scalability_guideAndroid Scalability Architecture GuideCRead-onlyIdempotent
Scale patterns: Paging 3 + RemoteMediator, offline-first sync (WorkManager + Room), HTTP caching, cold start, modularization, Compose recomposition performance.
Inputs: topic, refresh.
android_testing_guideAndroid Testing GuideARead-onlyIdempotent
Testing reference: unit tests (JUnit4, MockK, Turbine, coroutines-test), Compose UI tests, Espresso, ViewModel and Room tests, Hilt testing, test pyramid. Call before writing tests.
Inputs: topic, refresh.
android_wearos_guideWear OS Developer GuideARead-onlyIdempotent
Wear OS reference — uses different Compose artifacts than phones (ScalingLazyColumn, SwipeDismissableNavHost, Wear Material 3). Covers Tiles and Health Services. Topics: overview, compose, tiles, health services, navigation.
Inputs: topic, refresh.
android_xr_guideAndroid XR Developer GuideARead-onlyIdempotent
Android XR / Jetpack XR reference (Compose for XR beta, SceneCore and ARCore RC): SpatialPanel, UserSubspace, Orbiter, ARCore for XR, shipping one app for XR and non-XR. Topics: overview, setup, spatial ui, arcore, compatibility.
Inputs: topic, refresh.
architecture_referenceAndroid Architecture ReferenceARead-onlyIdempotent
Official Android architecture guide for a topic (mvvm, compose, navigation, hilt, viewmodel, room, workmanager, paging, datastore, coroutines, flow, testing, lifecycle, modularization, security…). Call before proposing app structure. Pass 'list' for all topics.
Inputs: topic (required), refresh.
gradle_dependency_checkerGradle Dependency Version CheckerARead-onlyIdempotent
Current stable version and ready-to-paste Gradle (Kotlin DSL / TOML) for an Android, Kotlin, or Jetpack library from Google Maven / Maven Central, including BOM handling. Accepts a name ('room', 'compose-bom', 'coil') or exact 'group:artifact'. Call before adding or bumping any dependency.
Inputs: library_name (required), refresh.
kotlin_best_practicesKotlin & Android Best PracticesARead-onlyIdempotent
Official Kotlin/Android code patterns with anti-patterns: coroutines-viewmodel, stateflow-ui, compose-state, room-dao, hilt-injection, navigation-compose, workmanager-task, sealed-result. Empty topic lists all.
Inputs: topic, refresh.
material3_expressiveMaterial 3 Expressive ReferenceARead-onlyIdempotent
Material 3 Expressive reference: MaterialExpressiveTheme, MotionScheme, ButtonGroup, FloatingToolbar, LoadingIndicator, MaterialShapes, typography, Wear, migration from M3. Call before building Compose UI or theming. Empty topic lists all.
Inputs: topic, refresh.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 23 tools
Most tools have clearly distinct domains (XR, Wear OS, KMP, Play policy, testing, build/publish), and descriptions give explicit call triggers. However, several knowledge tools overlap: architecture_reference, kotlin_best_practices, and android_navigation3_guide all touch navigation/room/compose topics, and large-screen concerns appear in both android_large_screen_guide and android_api36_compliance, creating some misselection risk.
All names use predictable snake_case noun-phrase style that is easy to scan and reason about. The only inconsistency is the 'android_' prefix, which is applied to most but not all tools (architecture_reference, gradle_dependency_checker, kotlin_best_practices, material3_expressive lack it).
23 tools is on the heavy side and borders the 'too many' threshold, but the breadth of covered domains (Wear, XR, KMP, Play policy, testing, publishing, compliance) justifies most of them. Each tool appears to own a distinct topic rather than duplicating another.
The surface is remarkably complete for an Android/Kotlin assistant: official search, API status, architecture and framework guides, dependency versioning, API-level mapping, permissions, testing, build/publish, code validation, plus Play compliance and developer verification. General fallback (android_official_search) covers residual lookups, leaving few obvious dead ends.
Maintenance
Related MCP Connectors
Provide your AI coding tools with token-efficient access to up-to-date technical documentation for…
Versioned documentation registry and semantic search for AI tools and coding assistants.
Publish your API docs so AI assistants can look up endpoints and call your API correctly.
@latest documentation and code examples to 9000+ libraries for LLMs and AI code editors in a singl…
Related MCP Servers
- FlicenseNot gradedqualityAmaintenanceEnables AI tools to access and navigate AOSP and AndroidX source code on demand, with class and method lookups, hierarchy inspection, cross-file references, and type information.-
- FlicenseNot gradedqualityAmaintenanceProvides AI tools with on-demand, precise access to real AOSP framework and AndroidX source code, so they can search classes, extract exact method bodies with Javadoc, inspect inheritance hierarchies, and trace definitions and references across the entire tree. Sources are synced locally for fast, offline lookups, with optional language-server features for cross-file navigation.-
- FlicenseNot gradedqualityBmaintenanceProvides AI assistants with on-demand, precise access to real AOSP and AndroidX source code, enabling class and method lookups, class member and hierarchy inspection, source-wide text/regex search, and optional cross-file definition, reference, and type resolution via LSP. Sources are synced locally for instant offline queries against framework internals like the Activity lifecycle, ViewModel restoration, and Compose internals.-
- FlicenseNot gradedqualityAmaintenanceEnables AI tools to perform on-demand, precise lookups of AOSP and AndroidX source code, including class and method extraction, inheritance hierarchy, cross-file references, and type information. Supports local syncing and updating of framework and Jetpack sources for offline, instant exploration.-