mcpField
A
Android Mcp Toolkit

Android Mcp Toolkit

ローカル
github.com/Nam0101開発ツール1842 週間前に更新

Android Mcp Toolkit について

Android MCP Toolkitは、Android開発者やAIエージェント向けのMCPサーバーで、アセット変換、端末診断、操作のツールを提供します。SVGからVectorDrawableへの変換、logcatの取得、端末UIの確認や操作に対応します。

主な機能

  1. 01SVGからVectorDrawable XMLへの変換
  2. 02フィルター付きadb logcatの読み取り
  3. 03現在のアプリとUI階層の確認
  4. 04端末スクリーンショットの取得
  5. 05タップ、テキスト入力、スワイプの再現
  6. 06翻訳テキストの長さの差を推定

活用シーン

  1. 01デザインSVGをAndroid drawableアセットに変換
  2. 02アプリやタグでクラッシュログを調査
  3. 03端末の現在画面を確認して撮影
  4. 04翻訳文の長さがレイアウトに及ぼす影響を検出

MCP 対応

MCPサーバーとして、stdio経由でAndroidアセット変換、logcat読み取り、端末の確認や操作を行うツールをクライアントに提供します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"android-mcp-toolkit": {
"command": "npx",
"args": [
"-y",
"android-mcp-toolkit"
]
}
}
}
起動コマンドnpx -y android-mcp-toolkit

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmandroid-mcp-toolkit

ツール

7

掲載時のツール一覧 · 3 週間前に更新

パラメーター型必須説明
svgstringいいえ変換するインライン SVG マークアップ
svgPathstringいいえ読み込む SVG ファイルのパス
outputPathstringいいえ生成した VectorDrawable XML の任意の出力パス
floatPrecisionintegerいいえ座標のシリアライズ時に使用する小数精度
fillBlackbooleanいいえ塗りつぶし色が未指定の場合、黒色を強制的に設定します
xmlTagbooleanいいえXML 宣言を含めます
tintstringいいえAndroid のティント色(例:#FF000000)
cachebooleanいいえこのプロセス内で同一の入力に対してキャッシュ済みの結果を再利用します

詳細

AI エージェント向け Android MCP Toolkit

3 つのツールを備えた小規模な MCP サーバーです。

  • 高速な SVG → Android VectorDrawable 変換(キャッシュ対応、ファイルまたはインライン入力)。
  • パッケージ/PID/タグでフィルタリングできる adb logcat リーダー。クラッシュの迅速な原因究明に役立ちます。
  • レイアウトが崩れる前にリスクのある長さの差を検出する、翻訳テキストの長さの差の推定ツール。

このツールを作った理由

ミッション:ネイティブ Android を AI エージェントの時代へ

AI エコシステムでは Web 向けのツールが広がる一方で、Android 開発は取り残されているように感じられることがよくあります。この MCP サーバーは、そのギャップを埋めるための取り組みです。AI エージェントと Android ツールチェーンを直接つなぐ専用のブリッジです。

⚡ 手間のかからないアセット変換:Android Studio を起動する手間なく、SVG をすぐに VectorDrawable に変換できます。

🔍 直接的な診断アクセス:エージェントが adb logcat のストリームをリアルタイムで取得、フィルタリング、分析できます(パッケージ、PID、タグで指定可能)。

🤖 エージェントに適したアーキテクチャ:LLM が効率的に解析して処理できる、構造化されたスクリプト実行可能な出力を提供します。

🚀 拡張性を考慮した設計:今後、ビットマップ用ヘルパーやアセット検証などのユーティリティを追加できる、堅牢な基盤です。

活用例

  • Figma MCP:デザインから SVG を取得し、convert-svg-to-android-drawable に渡して、Android リソース用の XML を生成します。
  • デバッグ:アプリの実行中に、パッケージ名またはタグを指定して read-adb-logcat を呼び出すと、MCP クライアントを離れることなくクラッシュやフィルタリング済みログを取得できます。
プレビュー

SVG から VectorDrawable への変換

  • Figma へのリクエスト → SVG の抽出
    MCP 経由の Figma リクエスト
  • 旗の変換プレビュー(単体)
    旗の変換プレビュー
  • 旗の一括レビュー(並べて表示)
    旗の一括レビュー
  • MCP 経由の一括実行(コンソール)
    MCP 経由の一括実行

ADB logcat ツール

  • クラッシュ取得プロンプト(入力とフィルター)
    クラッシュ logcat プロンプト
  • レスポンスのプレビュー(要約された logcat)
    レスポンスのギャップのプロンプト

現在のツール

  • convert-svg-to-android-drawable

    • 入力:svg(インライン)または svgPath(ファイルパス)。任意:outputPath、floatPrecision(デフォルトは 2)、fillBlack(デフォルトは false)、xmlTag(デフォルトは false)、tint、cache(デフォルトは true)。
    • 出力:VectorDrawable XML テキスト。outputPath が指定されている場合は、ディスクにも書き込みます。
    • パフォーマンス:SVG とオプションをキーとする LRU キャッシュ(32 エントリー)に加え、セッション内で高速に再利用します。
    • コンバーター:rgb()/rgba()、hsl()/hsla()、名前付きカラーを修正した、vendor/svg2vectordrawable 内のベンダー版フォークです。アップストリームライセンス:vendor/svg2vectordrawable/LICENSE(MIT)。
  • manage-logcat

    • 入力:
      • action:read(デフォルト)、crash、anr、または clear。
      • packageName:任意。adb shell pidof を使用して PID を解決します。
      • pid:任意。明示的な PID。
      • tag:任意。タグでフィルターします(例:MyApp)。
      • priority:V、D、I、W、E、F、S(デフォルトは V)。
      • maxLines:末尾から取得する行数(デフォルトは 200、最大 2000)。
      • timeoutMs:デフォルトは 5000。
    • 動作:
      • read:logcat の末尾を取得します。
      • crash:logcat -b crash を取得します。
      • anr:最近の ActivityManager ANR ログと、/data/anr/traces.txt の末尾を取得します。
      • clear:logcat バッファーをクリアします。
  • get-current-activity

    • 入力:timeoutMs(デフォルトは 5000、最大 15000)。
    • 動作:dumpsys window を調べて、現在フォーカスされているアプリ/ウィンドウを特定します。状態の確認に役立ちます。
  • dump-ui-hierarchy

    • 入力:timeoutMs(デフォルトは 10000)。
    • 動作:uiautomator を使用して、現在の UI 階層を XML として取得します。
  • take-screenshot

    • 入力:outputPath(必須)、timeoutMs。
    • 動作:デバイスのスクリーンショットをローカルファイルに保存します。
  • inject-input

    • 入力:command(tap、text、swipe、keyevent、back、home)、args(配列)、timeoutMs。
    • 任意:elementId または elementText(要素の中心を見つけてタップします)。
    • 動作:テストフローに適したユーザー操作をシミュレートします。
  • estimate-text-length-difference

    • 入力:sourceText(原文)、translatedText(比較対象)、tolerancePercent(デフォルトは 30、最大 500)。
    • 動作:両方の文字列の書記素数を測定し、変化率を計算して、許容値を超えているかどうかを報告します(レイアウトを崩す可能性のある翻訳文の長さの急増を検出するのに役立ちます)。

ロードマップ(予定)

  • Android アセット向けの追加 MCP ツール(例:一括変換、検証、最適化)。
  • 一般的な Android ドローアブル/テンプレート向けの任意のリソースプロンプト。

クイックスタート

  • npm install
  • npm run build
  • node dist/index.js(stdio MCP サーバー)

npx で実行

  • グローバル:npx android-mcp-toolkit

Cursor で使用(MCP 設定)

Cursor の設定 JSON に追加します:

{
  "mcpServers": {
    "android-mcp-toolkit": {
      "command": "npx",
      "args": [
        "-y",
        "android-mcp-toolkit"
      ]
    }
  }
}

npx の呼び出しによって公開済みパッケージがダウンロードされるため、ローカルパスは不要です。

Cursor のディープリンクで簡単にインストール:

  • cursor://anysphere.cursor-deeplink/mcp/install?name=android-mcp-toolkit&config=eyJjb21tYW5kIjoibnB4IC15IGFuZHJvaWQtbWNwLXRvb2xraXQifQ%3D%3D

例

  • 入力 SVG:sample_svg.svg
  • 出力 VectorDrawable:examples/sample_svg.xml

メモ

  • トランスポート:@modelcontextprotocol/sdk を介した stdio。
  • 基本的な依存関係は最小限に抑えており、SVG の変換に必要なものはすべてベンダー提供または同梱されています。

連絡先

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。