AndroJack MCP について
AndroJack MCPは、Android開発向けのコーディングアシスタントに、AndroidとKotlinの公式ドキュメントをリアルタイムで参照させるサーバーです。専用ツールとコード検証機能で、APIの選択や一部の非推奨・削除済みパターンを確認できます。
主な機能
- 01Android・Kotlin公式資料のリアルタイム参照
- 0223種類の専用ツール
- 0334ルールに基づくコード検証
- 04削除済み・非推奨APIの確認
- 05ツール利用を促すグラウンディング規則
活用シーン
- 01最新のAndroid API指針の確認
- 02生成コードの非推奨パターンの確認
- 03ComposeやGradleの判断を文書で裏付け
MCP 対応
MCPクライアントに、リアルタイムのドキュメント検索やコード検証を含む23種類のAndroid開発ツールを提供します。READMEには、コード生成前に適切なツールを使うよう促す任意のグラウンディング規則も記載されています。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
23掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| query | string | はい | 検索クエリ。具体的に指定してください。例:'Compose LazyColumn performance'、'WorkManager constraints'。 |
詳細

AndroJack — Android開発を幅広くこなす万能ツール
AI コーディングアシスタントに、最新かつ検証済みの Android 知識を提供する MCP サーバーです。記憶ではなく、公式情報をもとに開発できます。
以下でも動作します: Windsurf · VS Code Copilot · Google Antigravity · JetBrains AI — 下記の手動設定をご覧ください ↓
VS Code での配布: VS Code Marketplace でもAndroJack MCP for VS Codeとして公開中です。
目次
- このツールを生んだ危機
- 実際に何が問題になるのか
- AndroJack ができること
- 正直な有効化モデル
- レベル 3 でも起こりうる問題
- 多層防御
- 決め手となる主張
- 23 のツール
- クイックスタート
- 手動設定
- エコシステム:Google のファーストパーティ製ツール
- セキュリティとプライバシー
- 変更履歴
🔥 このツールを生み出した危機
2025 年、Stack Overflow Developer Survey は 49,000 人の開発者に、AI コーディングツールの利用経験について尋ねました。その結果は、すべての Android エンジニアが危機感を抱くべきものです。
- 開発者の 84% が現在 AI コーディングツールを利用しており、前年の 76% から増加しています。
- AI の正確性に対する**信頼は 40% からわずか 29% へと、わずか 1 年で急落しました。
- 2025 年の Stack Overflow への全アクセスの 35% は、開発者が AI 生成コードのデバッグや修正を行うために訪れたものです。
利用率と信頼の間にある隔たりは、偶然ではありません。これは構造的な問題の結果です。AI モデルが予測するのはトークンであり、API ではありません。 AI モデルは過去のある時点の情報で訓練されており、API 30 で何が変わったのか、Google I/O 2025 で何が発表されたのか、あるいは Google Play が現在審査時に何を却下するのかを知る仕組みがありません。
Android 開発者にとって、この問題は特に危険です。Android はモバイル開発のエコシステムの中で最も変化が速く、毎月新しい Compose BOM が登場し、7 年を経て Navigation 3 が安定版になり、Android 16 では画面の向きのロックに関するルールが一新されています。その一方で、ほとんどの AI ツールは、利用する時点で 6 か月から 2 年前のデータで訓練されています。
その結果は、単にコードの質が低いだけではありません。自信たっぷりの低品質なコードなのです。
⚡ 実際に問題となること — 記録された事例
これらは仮説上のリスクではありません。実際の開発者プロジェクトで記録された障害モードです。
Navigation 3 のハルシネーション(2026 年 1 月)
Atomic Robot が公開したケーススタディでは、Gemini と Claude の両方でインターネットアクセスを有効にした状態で、Navigation 2 から Navigation 3 への移行を実際に行った事例が記録されています。結論は、原文のまま引用すると次のとおりです。
「LLM は今でもバージョンを幻覚します。インターネットアクセスがあっても、どちらのエージェントも安定版の 1.0.0 リリースではなく、古いリリース候補版を使おうとしました。」
Navigation 3 は、同じライブラリが 7 年間使われた後、2025 年 11 月に安定版になりました。これはアーキテクチャを全面的に見直したもので、バックスタックは通常の Kotlin リストになり、モノリシックなナビゲーショングラフは廃止され、NavController は NavDisplay に置き換わっています。Google 独自の移行ガイドは、AI ツールが間違えることを十分に認識しており、AI ツールが従うべき指示を公式ドキュメントに直接埋め込んだ、特別な 「AI Agent:」注釈を掲載しています。2026 年に新しい Compose プロジェクト向けに Nav2 コードを生成する AI ツールは、ちょっとした間違いを犯しているのではありません。修正には全面的な書き直しが必要となる、アーキテクチャ上の不整合を生み出しているのです。
Compose の非推奨化の連鎖
Jetpack Compose では、毎月新しい BOM がリリースされます。多くのモデルの学習データの期限以降、次の API が変更されました。
| API | 状態 | 発生する問題 |
|---|---|---|
ContextualFlowRow / ContextualFlowColumn | Compose 1.8 で非推奨 | AI は今もこれらを生成します。今日ならコンパイル警告、明日には削除されます |
TestCoroutineDispatcher | coroutines-test 1.8+ で削除 | AI は今もこれを生成し、CI で非決定的なテスト失敗を引き起こします |
FlowRow の overflow パラメーター | 1.8 で非推奨 | 実行時に微妙な動作の後退が発生し、多くの lint 設定では検出されません |
AnchoredDraggableState.confirmValueChange | 非推奨 | アンカー境界でドラッグ動作が正しくなくなります |
| 新規プロジェクトでの Navigation 2 | 2025 年 11 月の Nav3 安定版リリースにより置き換え | 修正には書き直しが必要な、アーキテクチャ上の行き止まりです |
これらはすべてコンパイルできます。ほとんどはエラーなしで動作します。バグが表面化するのは、後になってからです。CI の不安定な動作、UI のリグレッション、Play ストアの審査不合格などとして現れます。
Android 16 / API 36 の要件(2026 年 8 月 31 日から適用)
Android 16 では、公開済みのすべてのアプリに影響するプラットフォームレベルの変更が導入されました。600 dp 以上のデバイス(タブレット、折りたたみ式デバイス、ChromeOS)では、アプリが画面の向きを固定したり、サイズ変更を制限したりできなくなります。2026 年 8 月 31 日以降、Google Play では新しいアプリとアップデートに API 36 を対象とすることが必須になります(期限延長は 2026 年 11 月 1 日まで利用可能)。Android 17 / API 37 では、残っているオプトアウト手段が削除されます。
今日、android:screenOrientation="portrait" や android:resizeableActivity="false" を生成する AI ツールは、Play Console でアプリの互換性に関する警告を引き起こし、大画面向け品質チェックに不合格となり、Play ストアの検索結果でアプリの掲載順位を下げるコードを生成しています。
ビジネスへの影響は仮説上のものではありません。**折りたたみ式デバイスのユーザーは、スマートフォンだけを使うユーザーの 14 倍アプリに支出します。**タブレットとスマートフォンの両方を使うユーザーは 9 倍支出します。FlipaClip では、アダプティブ対応を行ってから 4 か月以内に、タブレットユーザーが 54%増加しました。
KMP のサイレントな失敗
Kotlin Multiplatform は 2025 年に主流となりました。新しい KMP ライブラリが 900 以上公開され、Room が KMP をサポートし、企業は KMP のスキルを持つ人材を求めて採用するようになっています。KMP プロジェクトの開発者が AI ツールにデータベースサポートの追加を依頼すると、AI は Android 専用の Room コードを生成します。コンパイルできます。Android では問題なく動作します。**iOS のビルドは失敗します。**開発者は根本原因に気づくまで何時間もデバッグに費やします。AI ツールが KMP の存在を知らないのです。
🧩 AndroJack の機能
AndroJack は、ドキュメントに基づく Android エンジニアリング向け MCP サーバーです。公式の Android および Kotlin の情報源から、最新かつ検証済みの回答を取得する23 個の専用ツールを AI コーディングアシスタントに提供し、古いトレーニングデータからの予測に頼らずに済むようにします。
AI 自体を賢くするものではありません。AI に根拠を示す責任を持たせます。
LLM 向けのビルド前リンターと考えてください。他のツールがドキュメントを取得するのに対し、AndroJack は厳格なアーキテクチャの門番として機能します。
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)
⚠️ 正直な有効化モデル — 2 つのレベル
重要
AndroJack をインストールする前に、最も重要な点を理解してください。
| レベル | 有効なもの | AI の動作 |
|---|---|---|
| レベル 1 — ツールのみ | IDE に登録された 23 個のツール | AI は適切なツールを呼び出す場合があります。IDE と AI の判断に左右されます。 |
| レベル 2 — ツール + 根拠確認ゲート | 23 個のツール + 生成前に必ず適用されるルールブック | AI はコードを書く前に、あらゆる判断について正しいツールを必ず呼び出します。 |
| レベル 3 — 完全なループバック | レベル 2 + android_code_validator | AI はすべてのコードブロックを 34 個のルールに照らして検証します。エラーはユーザーにコードが表示される前に修正する必要があります。 |
レベル 1 は受動的です。 ツールは利用できますが、いつ使うかは AI が判断します。Compose 画面を構築する AI は architecture_reference を呼び出しても、material3_expressive を呼び出さないことがあり、その結果、M3E 違反が気づかれないままリリースされる可能性があります。
レベル 2 は能動的です。 androjack_grounding_gate システムプロンプトは、タスクの種類ごとに適切なツールを指定します。Compose UI を構築する場合、AI はまず material3_expressive を呼び出すことを義務づけられています。依存関係を追加する場合は、gradle_dependency_checker を呼び出す必要があります。例外はありません。
レベル 3 はループバックです。 android_code_validator は、AI が生成したすべてのコードブロックをユーザーに返す前に検査します。削除済み API、非推奨パターン、Android 16/17 への準拠、Compose-First への移行シグナルを対象とする 34 個のルールが含まれています。コメントは無視されるため、// replaced AsyncTask のような移行メモが誤って FAIL になることはありません。結果はテキストと出力スキーマ付きの structuredContent で返されます。判定が FAIL の場合、AI は修正して再検証する必要があり、問題のあるコードがユーザーに表示されることはありません。
→ 根拠に基づく完全な動作を実現するには、常にレベル 2 + レベル 3 を有効にしてください。以下の「完全な保証を得る」を参照してください。
🪲 レベル 3 でも起こり得る問題
重要
AndroJack は、ドキュメントに基づく情報確認と API 検証のためのツールです。Compose のレイアウトエンジンでも、デザインシステムの適用を強制するツールでも、実行時のレンダラーでもありません。レベル 3 では、削除済み API や非推奨パターンを検出できますが、Android のあらゆる種類のバグを検出できるわけではありません。これは AndroJack の制約ではなく、視覚的に描画される実行時 UI フレームワークに静的なテキスト解析を適用することの根本的な性質です。
以下は、レベル 2(v1.4.0)の AndroJack を使って実際に構築された Android アプリで発生したバグです。注意すべき点と、別のツールを使うべき場面が正確にわかるよう、ここではありのままに記録しています。
✅ レベル 3 で検出できる問題
// ❌ 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() }
⚠️ レベル 3 では検出できないこと
警告
以下のバグは実際のプロジェクトで見つかったものです。Compose のコードとしては有効で、現在の API に準拠していますが、デザインシステムの制約、アクセシビリティの最低基準、またはアーキテクチャ上の境界に違反しています。静的なテキストスキャンでは検出できません。
バグ PH-UI-001 — セグメントボタンのテキスト切り詰め
// 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")
}
}
メモ
これは欠落によるバグです。正しい修飾子がありません。誤った修飾子があるわけではありません。ビジュアルテストまたは実行時の検査を使用してください。
バグ PH-UI-003 — 無効なボタンのコントラスト不足
// 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")
}
メモ
これは実行時の視覚的なプロパティに関するバグです。paparazzi のスクリーンショットテストまたは Google の Accessibility Scanner を使用してください。
バグ PH-AR-004 — 生のスタックトレースをエンドユーザーに表示
// 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 アーキテクチャ違反には、カスタムルールを使用した Detekt、または例外マッピングを検証するユニットテストが必要です。
🗂️ 多層防御:バグの種類に応じた適切なツール
| バグの種類 | 実例 | 適切なツール |
|---|---|---|
| 削除済み/非推奨 API | AsyncTask、TestCoroutineDispatcher | ✅ AndroJack Level 3 |
| Android 16 の違反 | screenOrientation、resizeableActivity=false | ✅ AndroJack Level 3 |
| Android 17 の違反 | static final リフレクション、権限なしの LAN アクセス | ✅ AndroJack Level 3 |
| アーキテクチャ(ルートで検出) | GlobalScope が UI に漏れる | ✅ AndroJack Level 3 |
| 修飾子の欠落/制約の不足 | PH-UI-009(innerPadding) | 🔧 Android Lint / IDE インスペクター |
| 実行時のコントラスト/色の不備 | PH-UI-003(WCAG) | 🔧 paparazzi + Accessibility Scanner |
| タッチターゲットの違反 | PH-UX-008 | 🔧 Accessibility Scanner |
| アーキテクチャ上の境界(catch の欠落) | PH-AR-004(UI へのスタックトレース表示) | 🔧 Detekt + ViewModel のユニットテスト |
🎯 決め手となる問い
「あなたの
agents.mdファイルで、先週火曜日にリリースされた Gradle のバージョンがわかりますか?」
どの Markdown ファイルでもわかりません。.cursorrules のルールでもわかりません。SKILL.md でもわかりません。
✅ それを実行できるのは、ライブのツール呼び出しだけです。
それこそが AndroJack の役割です。そして、現在のエコシステムには、Android に特化してこれを行うものはほかにありません。
| 必要なこと | agents.md / SKILL.md | AndroJack MCP |
|---|---|---|
| 出力を特定の形式に整える | ✅ 完璧 | こちらでも可能 |
| チームの規約に従う | ✅ 完璧 | こちらでも可能 |
| 現時点での最新 Gradle バージョン | ❌ 記憶から推測 | ✅ 最新情報を取得 |
| AsyncTask は削除されたか | ❌ 誤っている可能性あり | ✅ SDK と照合して確認 |
| Android 16 の Play ストア規則 | ❌ 不明 | ✅ 公式情報源 |
プロンプトエンジニアリングは AI の応答方法を制御します。MCP は AI が知っていることを制御します。
✨ AndroJack がカバーする内容 — 23 個のツール
| # | ツール | 機能 | ない場合に起きること |
|---|---|---|---|
| 1 | 🔍 search | 公式ドキュメントの抜粋 — Google Developer Knowledge API(任意のキーが必要)または正規ページの検証済みインデックス | AI が記憶を頼りに推論するため、現時点では誤っている可能性があります |
| 2 | ⚠️ component | 40 以上の API の非推奨・削除チェック | コンパイルは通っても、実行時やレビュー時に問題が発生します |
| 3 | 📐 architecture | MVVM、Nav3、MVI など、40 以上のトピックに関するガイド | AI が 2022 年時点のアドバイスを提示し、Nav3 を見落とします |
| 4 | 🐛 debugger | スタックトレースを解析し、公式ドキュメントと Issue Tracker へのリンクを提示 | AI が既知のバグに対する修正方法を幻覚します |
| 5 | 📦 gradle | Google Maven からの最新情報の検索(最新の 安定版。プレリリースにはフラグを表示)と BOM の解決 | Compose BOM が古いままになり、KSP の代わりに KAPT を使用します |
| 6 | 📊 api-level | API 21~36 の一覧と minSdk の警告 | minSdk 21 のアプリで API 26 以降の呼び出しを使用します |
| 7 | 🎯 kotlin | コルーチン、MVI、Compose の状態管理など、10 個のパターン | GlobalScope.launch や UI での runBlocking を使用します |
| 8 | 🎨 m3e | Material 3 Expressive のコンポーネントとモーション | M3E アプリで M2 の MaterialTheme を使用します |
| 9 | 🔐 permissions | 40 以上の権限ルールとコントラクト | deprecated requestPermissions() を使用します |
| 10 | 🧪 testing | ユニットテスト/Compose UI テストの公式パターン | テストで Thread.sleep() を使用し、Hilt を設定し忘れます |
| 11 | 🏗️ build | R8、libs.versions.toml、署名、AAB | ksp の代わりに implementation を使用します |
| 12 | 📱 large-screen | WindowSizeClass(Large/XL を含む 5 つのブレークポイント)、アダプティブ Scaffold | 折りたたみ式デバイスやデスクトップで、スマートフォン専用のレイアウトになります |
| 13 | 🚀 scalability | Paging 3、WorkManager、モジュール化 | 単純な loadAll() を使用し、リストのキーが不安定になります |
| 14 | 🧭 nav3 | Nav3(2025 年 11 月)— シーン、移行 | AI が Nav2 の行き詰まった実装を生成します |
| 15 | ✅ compliance | API 36/Android 16/16 KB ページサイズ | アップデートが拒否されます — Play では 2026 年 8 月 31 日以降、targetSdk 36 が必須です |
| 16 | 🌐 kmp | Room KMP、Room 3(安定版、androidx.room3)、Ktor、ソースセット | KMP プロジェクトに Android 専用コードが含まれます |
| 17 | 🤖 ondevice-ai | AICore、ML Kit Gen AI、Gemini Nano、AppFunctions(オンデバイス MCP) | オフラインが必要な場面でも、クラウド専用の AI を使用します |
| 18 | 📋 policy | Play Store の年齢確認、課金のオープン性、データ セーフティ | 知られていないポリシー変更により、アプリが拒否されます |
| 19 | 🥽 xr | Android XR SDK、SpatialPanel、Orbiter | 2D パネルとして動作し、空間ならではの価値を活かせません |
| 20 | ⌚ wear | Tiles、Health、Wear OS 向け M3 Expressive | 円形ディスプレイでハンドヘルド端末向けのパターンを使用します |
| 21 | 🛡️ validator | レベル 3 のループバック検証ゲート — 34 個のルール、構造化出力、CI でも実行 | AI がチェックせずに、壊れたコードをリリースします |
| 22 | 🆕 api17 | Android 17/API 37(安定版)— static final、LAN、OTP、MessageQueue、ネイティブライブラリ、Handoff | API 37 を対象とするアプリがクラッシュします |
| 23 | 🪪 dev-verification | Developer Verification Program — スケジュール、登録、CI/CD | 認定済みデバイスへのアプリのインストールがブロックされます(2026 年 9 月 30 日以降、4 か国で適用) |
🚀 クイックスタート — インストール不要
オプション 1 — 対話型 CLI(v2.1.0)✨ 推奨
npx -y [email protected] install
VS Code、Cursor、Claude、Windsurf、JetBrains、Kiro、Antigravity を自動検出する、アニメーション付きのターミナルウィザードを起動します。
オプション 2 — 対象を指定したインストール
# Preview detected IDEs and config paths
npx -y [email protected] install --list
# Auto-detect all
npx -y [email protected] install --auto
# Install to a specific IDE
npx -y [email protected] install --ide=cursor
npx -y [email protected] install --ide=claude
npx -y [email protected] install --ide=vscode
npx -y [email protected] install --ide=windsurf
npx -y [email protected] install --ide=jetbrains
npx -y [email protected] install --ide=kiro
npx -y [email protected] install --ide=antigravity
オプション 3 — IDE を使わずにテスト
npx -y @modelcontextprotocol/inspector npx -y [email protected]
オプション 4 — CI でルールを適用(2.1.0 の新機能)
エージェントに適用されるものと同じルールエンジンを、エージェントが触れていないコードも含め、すべてのプルリクエストで実行します。
npx -y [email protected] validate app/src --target-sdk=37 # exit 1 on errors
npx -y [email protected] validate . --format=sarif > androjack.sarif # GitHub code scanning
# .github/workflows/androjack.yml
- run: npx -y [email protected] validate . --target-sdk=37 --format=sarif > androjack.sarif || true
- uses: github/codeql-action/upload-sarif@v3
with: { sarif_file: androjack.sarif }
- run: npx -y [email protected] validate . --target-sdk=37 # fails the job on errors
フラグ:--format=text|json|sarif、--target-sdk=N、--min-sdk=N、--fail-on=error|warning|never。終了コード:0 は合格、1 は違反あり、2 は使用方法のエラー またはスキャンですべてを確認できなかった場合(一致するファイルがない、ファイルサイズが 1 MiB 超、またはファイル数が上限の 20k に達した場合)です。部分スキャンでゲートが合格になることはありません。
オプション設定
| 変数 | 効果 |
|---|---|
ANDROJACK_DEVELOPER_KNOWLEDGE_API_KEY | ドキュメント検索のバックエンドとして、Google の Developer Knowledge API を使用します(developer.android.com の全文検索)。設定しない場合、AndroJack は検証済みの正規ページのインデックスを使用します。**プライバシー:**検索クエリ(android_debugger の例外メッセージを含む)は Google に送信されます。 |
ANDROJACK_OFFLINE=1 | 外部へのリクエストを一切行いません。ツールは正規リンクのみを返します。ネットワークから隔離された環境向けです。 |
ANDROJACK_HTTP_TOKEN | serve では Authorization: Bearer <token> が必要です。Google API キーが設定されている場合、リモートバインドでは必須です。 |
ANDROJACK_ALLOW_REMOTE_HTTP=1 | serve --allow-remote と同じです。--http にも適用されます。 |
ANDROJACK_HTTP_STATELESS=1 / serve --stateless | MCP セッションを使用しません。各リクエストは個別に処理されます(ロードバランサーに適しています)。 |
🧩 手動設定/コピー/貼り付け
サーバーを手動で接続する場合や、書き込む前に正確な JSON を確認したい場合は、次の手順を行ってください。
npx -y [email protected] install --listを実行すると、検出された IDE と対象の設定パスをプレビューできます。- すぐに貼り付けて使える例は
config/にあります。
| IDE/クライアント | 設定ファイル |
|---|---|
| Claude Desktop | config/claude_desktop_config.json |
| Cursor | config/cursor_mcp.json |
| VS Code/GitHub Copilot | config/vscode_mcp.json |
| Windsurf | config/windsurf_mcp.json |
| Android Studio/IntelliJ | config/jetbrains_mcp.json |
| AWS Kiro | config/kiro_mcp.json |
| Google Antigravity | config/antigravity_mcp.json |
どの例もデフォルトでは AndroJack をローカルで実行し、公開済みパッケージを npx -y [email protected] 経由で起動します。
📍 エコシステム:AndroJack と Google のファーストパーティーエージェントツール
Google は現在、Android 向けの独自のエージェントスタックを提供しています。機能が重複する点について、率直に説明します。
| Google Developer Knowledge MCP/API | Android CLI + Android skills + Knowledge Base | AndroJack MCP | |
|---|---|---|---|
| 役割 | ドキュメントを取得する(検索、取得、回答) | ツールチェーンを実行する。エージェントにタスクの指示を与える。android docs search | 強制:コードを検証し、期限付きの必須要件を組み込み、CI をゲートする |
| 検索品質 | 利用可能な中で最高 — Google 独自のインデックス | Google 独自のインデックス | キーを設定すると Google の API を使用します。設定しない場合は、検証済みの正規ページのインデックスを使用します |
| ビルドを失敗させるか? | いいえ | いいえ(スキルは参考情報です。android studio check には Studio が必要です) | はい — 決定的なルール ID、終了コード、SARIF |
| セットアップ | Google Cloud プロジェクト + API キー | CLI をインストール | npx [email protected] — アカウント不要 |
| 実行場所 | リモート(googleapis.com) | ローカル CLI | ローカルの stdio/HTTP。オフラインで動作 |
**推奨セットアップ:**検索とタスクスキルには Google のツールを使用し、強制チェックには AndroJack を使用します。エージェントのループ内では android_code_validator を、CI では androjack-mcp validate を使います。AndroJack は Google 独自のドキュメントインデックスより優れた検索を目指すものではありません。ANDROJACK_DEVELOPER_KNOWLEDGE_API_KEY を設定すると、そのインデックスを使用します。
🔒 セキュリティとプライバシー
| プロパティ | 実装 |
|---|---|
| ドメイン許可リスト | Google/Android/Kotlin の公式ドメインへのリクエストのみを許可します。デフォルトの HTTPS ポートを使用し、認証情報の埋め込みは許可しません |
| リダイレクトの再検証 | リダイレクトの各段階で許可リストを照合します(2.1.0)。許可リストに含まれるホストから別の場所へフェッチが転送されることはありません |
| 信頼できないコンテンツの境界 | フェッチしたテキストはすべて正規化し、インジェクションパターンや偽装された境界タグを除去してから、エージェントに渡す前に信頼できないコンテンツとしてラップします |
| HTTPS のみ | ドキュメントの外部フェッチでは HTTPS 以外の URL を拒否し、本文サイズを制限し、リトライログからクエリ文字列を除去します |
| デフォルトでローカル | serve は、--allow-remote を明示的に指定しない限り、ループバックインターフェイスのみでバインドします |
| HTTP の強化 | Origin/Host の検証、本文サイズの上限、アイドル時の削除を伴うセッション数の上限、任意のベアラートークン、ステートレスモード |
| 透明性のあるエージェント | User-Agent: AndroJack-MCP/2.1.0 |
| 読み取り専用 | 23 個すべてのツールに readOnlyHint: true、destructiveHint: false、idempotentHint: true の注釈を付けています |
| 認証情報 | 不要です。任意の Google API キーはヘッダーとしてのみ送信し、URL やログには含めません |
| オフラインモード | ANDROJACK_OFFLINE=1 を設定すると、外部へのリクエストが一切発生しないことを保証します |
| セキュリティポリシー | 脆弱性の開示プロセスとサポート対象バージョンについては、SECURITY.md をご覧ください |
📋 変更履歴
v2.1.0 — 動作しなかった部分を修正し、動作していた部分を強化して、CI で徹底
- ドキュメント検索で実際にドキュメントが返るようになりました。 v2.0 ではクライアント側でレンダリングされる検索ページをスクレイピングしていたため、どのクエリでもドキュメントが返されませんでした。2.1 では、Google Developer Knowledge API(任意のキー)または検証済みの正規ページのインデックスを使用します。
- セキュリティ: リダイレクトによる許可リストの回避を解消しました。フェッチしたすべてのコンテンツが信頼できないコンテンツの境界を通るようになりました(v2.0 では対応を謳っていましたが、実際に対応していたのは 1 つのツールだけでした)。境界タグの偽装とゼロ幅文字/全角文字による回避を修正しました。HTTP セッション枯渇による DoS を修正しました。ベアラー認証とステートレスモードを追加しました。7 件の依存関係の脆弱性(うち 1 件は重大)にパッチを適用しました。
- 誤った回答を自信満々に返すことを防止: レジストリでの
Row→「非推奨」、Task→「削除済み」の誤検出を修正しました。Android 17 のゲームに関する例外を修正しました。架空の Handoff API を削除しました。Room 3 が安定版になりました(以前はアルファ版と説明されていました)。Google Maven のアルファ版に「最新の安定版」というラベルが付かなくなりました。リンク切れのドキュメントリンクを 19 件置き換えました。 - バリデーター: コメントを無視するようにしました(エージェントの修正ループを解消)。Kotlin DSL の
kapt(...)を検出するようになりました。API 37 のしきい値を修正しました。Android 17 向けの新しいルールを 6 件追加しました(合計 34 件)。構造化出力に対応しました。 - 新機能: CI 向けの
androjack-mcp validateCLI(テキスト/JSON/SARIF)、ルールカタログの MCP リソース、すべてのツールへの注釈、AppFunctions のガイダンス、Android Studio Rabbit 1/AGP 9.4 に対応しました。 - トークンコストを削減:
tools/listを約 28.5 KB から約 20.5 KB に削減しました。セッション内で同じ結果が繰り返される場合は短いポインターに置き換えられます(再取得するにはrefresh: trueを渡してください)。 - テスト: 85 件から 196 件に増加しました(オプトインのライブテスト 1 件を含む)。実際の MCP SDK クライアントを通じて実行する、17 シナリオのブラックボックス UAT スイートも含まれます。
test/uat/UAT_PLAN.mdをご覧ください。
詳細については、CHANGELOG.md をご覧ください。
v2.0.0 — セキュリティ強化、Compose Firstへの移行、開発者認証
- 間接的なプロンプトインジェクションに対するコンテンツサニタイザー —
src/content-sanitizer.tsは、外部から取得したテキストが呼び出し元エージェントのコンテキストに届く前に、構造的なインジェクションパターン(偽のロールマーカー、指示をリセットする形式)を無害化します。自由記述のユーザー投稿コンテンツをインデックス化する唯一の許可リスト登録ドメインであるissuetracker.google.comからのandroid_debuggerの結果は、明示的な信頼できないデータ境界で囲みます。 - 依存関係の脆弱性を修正 —
cheerioの更新により、推移的依存関係のundici/qsにある7件の脆弱性(うち重大度の高いもの3件)を解消しました。破壊的変更はなく、出荷ツリー内の脆弱性は0件です。 - ツール23:
android_developer_verification— Googleの開発者認証プログラムは、2026年9月30日から適用されます(ブラジル、インドネシア、シンガポール、タイが先行し、2027年に全世界で適用)。登録方法、タイムライン、企業向けの適用除外、CI/CD一括登録APIについて説明します。 - Compose Firstへのプラットフォーム移行を反映 — 2026年5月19日現在、Android UI開発は公式にCompose Firstとなっています。Viewベースのパターン(Fragments、RecyclerView、ViewPager)は、照会された場合にメンテナンスモードとして示されます。古い情報をそのまま放置せず、Google自身の発表を直接参照しています。
- Compose 1.11 v2 Testing Framework — 新しい既定の
StandardTestDispatcherの動作に関する完全な移行ガイドに加え、以前の前提を検出するバリデータールール(UNCONFINED_DISPATCHER_COMPOSE_TEST)を追加しました。 - Navigation 3 Scene Decorators(1.1) — 各画面を意識せずに、永続的なUI要素(ボトムバー、レール、ダイアログ)を利用できます。
- Android Studioのコードネームを修正 — 以前はコードネームが2世代遅れて「Panda 2」でした。現在は、現行の安定版を Quail(2026.1.x)、AGPを9.2.0として正しく反映しています。
- Android Skillsの位置づけ — Googleのファーストパーティ製Android Skills/CLI(2026年4月)について説明し、AndroJackのバリデーターを競合する検索レイヤーではなく、生成後の補完的な強制チェックゲートとして位置づけています。
- バリデータールール28件(以前は26件) —
UNCONFINED_DISPATCHER_COMPOSE_TESTとNEW_FRAGMENT_CLASS_COMPOSE_FIRSTを追加しました。 - 架空のバージョン番号を削除 — 以前のセッションで、依存関係のバージョンカタログの例に未確認のバージョン番号がいくつか記載されていました。確認済みの値だけに置き換え、明示的な
CHECK_LIVE_VIA_gradle_dependency_checkerプレースホルダーを追加しました。 - バージョンを完全に同期 —
src/version.tsの更新がpackage.json、すべてのIDE設定ファイル、マニフェストファイルに反映されていなかった問題を解消しました。現在はリリースチェックリストの項目として徹底しています。
v1.7.1 — エンジニアリングの強化とコミュニティとの機能同等性
- 54件のテストカバレッジ — バリデータールール、HTMLパーサー、LRUキャッシュ、HTTPセキュリティレイヤーに対する包括的なユニットテストとコントラクトテストを実装しました。
- ディスカバリー機能の同等性 —
/.well-known/mcpエンドポイントがtools: 22を正しく報告するよう修正しました。 - 依存関係のサニタイズ —
node-fetchを削除してネイティブのfetchに移行し、古くなったオーバーライドを整理して、よりクリーンなサプライチェーンを実現しました。 - ルールの強化 —
NavHostとBottomAppBarのComposeコンポーネント検出を改善しました。 - URLの修正 — Android 17の
ACCESS_LOCAL_NETWORKとhandoffに関する、壊れていたドキュメントのアンカーを修正しました。
v1.7.0 — Android 17/API 37のサポート
- ツール22:
android_api17_compliance— Android 17のプラットフォーム安定性に関する完全なリファレンス(2026年3月26日)。 - バリデータールールの拡張 — (2.1.0で訂正:このリリースノートでは、出荷されなかったRoom 3.0および
ACCESS_LOCAL_NETWORKのチェックを含め、ルール数を31件と誤って記載していました。実際の件数は、2.0.0で26件から28件、2.1.0で34件です。) - WindowManager 1.5.0 — Large(1200dp)およびExtra-large(1600dp)のブレークポイントとレイアウトパターンを追加しました。
- Room 3.0アルファ版 — 最新のSQLiteDriverへの移行パスをサポートします。
👥 著者と所有者
Vikas Sahani — プロダクトリード([email protected])
Claude AI — AI エンジニアリングリード
MIT License © 2026 Vikas Sahani | SECURITY.md
2025 年の Stack Overflow へのアクセスの 35% が、AI 生成コードのデバッグを行う開発者によるものです。
AndroJack は、あなたがそうしたアクセスをしなくて済むように存在します。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。