Android AI代理工具包

一个专为AI代理设计的Android开发工具包,提供SVG转VectorDrawable、adb日志过滤和文本长度差异估算等功能,简化Android开发流程。

  • by Nam0101
  • JavaScript
  • 本地部署
  • 18 星标
  • 更新于
在 GitHub 查看 Nam0101/android-mcp-toolkit

使用说明

用于AI代理的Android MCP工具包

配备三个工具的小型MCP服务器:

  • 快速SVG→ Android VectorDrawable转换(缓存、文件或内联)。
  • adb logcat阅读器,带有包/pid/标签过滤器,可快速进行故障分类。
  • 翻译长度差异估计器,用于在布局中断之前标记有风险的长度增量。

为什么存在

使命:将原生Android带入AI代理时代

虽然人工智能生态系统以网络优先的工具蓬勃发展,但Android开发往往感觉落后。这个MCP服务器是我对这个差距的回答——一个将AI代理直接连接到Android工具链的专用桥梁。

⚡ 零摩擦资产转换:立即将SVG转换为VectorDrawables,而无需启动Android Studio。

🔍 直接诊断访问:授权代理实时提取、过滤和分析adb logcat流(按包、PID或标签)。

🤖 Agent原生架构:提供结构化、可脚本化的输出,LLM可以有效地解析和处理这些输出。

🚀 为可扩展性而构建:一个旨在增长的坚实基础,为位图助手和资产验证等未来的实用程序铺平了道路。

配对想法

  • Figma MCP:从设计中抓取SVG,馈送到 convert-svg-to-android-drawable 获取Android资源的XML。
  • 调试:运行应用程序时,调用 read-adb-logcat 使用包名或标签捕获崩溃和过滤日志,而无需离开MCP客户端。

预览

SVG转换为可矢量绘制

  • Figma请求→ SVG提取
  • 标志转换预览(单)
  • 批次标记审查(并排)
  • 通过MCP(控制台)批量运行

ADB日志工具

  • 碰撞捕捉提示(输入+过滤器)
  • 响应预览(汇总日志)

当前工具

  • convert-svg-to-android-drawable

    • 输入: svg (内联) 或 svgPath (文件路径)。可选: outputPath, floatPrecision (默认值2), fillBlack (默认为false), xmlTag (默认为false), tint, cache (默认为true)。
    • 输出:可矢量绘制的XML文本;在以下情况下也会写入磁盘 outputPath 提供。
    • 性能:LRU缓存(32个条目)由SVG+选项键控,并在会话中快速重用。
    • 转换器:供应商提供的叉入式 vendor/svg2vectordrawable 已修复 rgb()/rgba(), hsl()/hsla(),并命名颜色。上游许可证: vendor/svg2vectordrawable/LICENSE (麻省理工学院)。
  • manage-logcat

    • 输入:
      • action: read (默认), crash, anr,或 clear.
      • packageName:可选。通过以下方式解决PID问题 adb shell pidof.
      • pid:可选。显式PID。
      • tag:可选。按标签筛选(例如。 MyApp).
      • priority: V, D, I, W, E, F, S (默认值 V).
      • maxLines:尾部计数(默认值200,最大值2000)。
      • timeoutMs:默认值为5000。
    • 行为:
      • read:抓短猫尾巴。
      • 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)。
    • 行为:通过以下方式将当前UI层次结构捕获为XML uiautomator.
  • 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

在光标中使用(MCP配置)

添加到游标设置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
  • 输出矢量可绘制: examples/sample_svg.xml

备注

  • 运输方式:通过stdio @modelcontextprotocol/sdk.
  • 基本存款保持在最低水平;转换SVG所需的一切都是供应商提供/包括在内的。

联系

  • nam.nv205106@gmail.com