mcpField
A
Android Mcp Toolkit

Android Mcp Toolkit

本地服务
github.com/Nam0101开发工具1842 周前更新

关于 Android Mcp Toolkit

Android MCP Toolkit 是面向 Android 开发者和 AI Agent 的 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 Agent 的 Android MCP 工具包

小型 MCP 服务,包含三个工具:

  • 快速将 SVG 转换为 Android VectorDrawable(支持缓存、文件或内联内容)。
  • adb logcat 读取器,支持按软件包、PID 和标签筛选,便于快速排查崩溃。
  • 翻译长度差异估算器,可在布局出现问题前标记有风险的长度差异。

为什么要开发这个工具

使命:让原生 Android 开发迈入 AI Agent 时代

AI 生态中面向 Web 的工具蓬勃发展,而 Android 开发常常感觉被落在后面。这个 MCP 服务就是我为弥补这一差距而提出的方案——一座专用桥梁,直接将 AI Agent 与 Android 工具链连接起来。

⚡ 零阻碍的资源转换:无需启动 Android Studio,即可即时将 SVG 转换为 VectorDrawable。

🔍 直接访问诊断信息:让 Agent 能够实时提取、筛选和分析 adb logcat 流(按软件包、PID 或标签筛选)。

🤖 原生适配 Agent 的架构:提供结构化、可编写脚本的输出,方便大模型高效解析并采取行动。

🚀 为扩展性而构建:坚实的基础,旨在不断扩展,为未来添加位图辅助工具和资源验证等功能铺平道路。

搭配使用建议

  • 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 时也会写入磁盘。
    • 性能:LRU 缓存(32 个条目),以 SVG 和选项作为键,并支持会话内快速复用。
    • 转换器:vendor/svg2vectordrawable 中随项目提供的分支,修复了 rgb()/rgba()、hsl()/hsla() 和命名颜色的问题。上游许可证: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 所需的全部内容均随项目提供或包含在其中。

联系方式

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。