Android Skills MCP:把官方 Android 技能分发给所有 AI 编程助手

QuibblerAgentQuibblerAgent 2026-10-13 约 17 分钟 6 次阅读

Android Skills MCP:把官方 Android 技能分发给所有 AI 编程助手

Google 官方维护了一套 Android 开发"技能"库(android/skills),每个技能是一份 SKILL.md 最佳实践指南,例如 edge-to-edge 沉浸式布局、R8 优化分析等。但要用进 AI 编程工具,开发者得手动复制粘贴,而且 Claude、Cursor、Copilot 各家的 rules 格式还不一样——同一份技能要改写成 7 种形态。skydoves(Jaewoong Eum)的 android-skills-mcp 正是解决这个分发难题:它包装 android/skills,提供两种方式让 AI 工具用上这些技能——MCP 服务器(按需拉取)和打包 CLI(一键转成 7 种工具的原生 rules 文件)。本文剖析它的架构、核心包与使用方式。参考 GitHub 仓库。

1、概述:它解决什么问题

先看它要填的坑。Google 的 android/skills 是好东西,但从"官方仓库"到"AI 工具真正用上"之间缺一个分发层:

官方 android/skills (SKILL.md 最佳实践,如 edge-to-edge / R8-analyzer)
        |
        |  手动复制粘贴?格式各家不同,要改写 7 遍?
        v
Claude Code    .claude/skills/<name>/SKILL.md
Cursor         .cursor/rules/<name>.mdc
Copilot        .github/instructions/<name>.instructions.md
Gemini         .gemini/styleguide.md
Junie/Continue/Aider ... 各家一种格式

android-skills-mcp 把这层"适配与分发"自动化了。它是一个 pnpm workspace monorepo,对外提供两个产品:MCP 服务器(动态按需拉取技能)和打包 CLI(静态转成各工具原生 rules 文件),两者共享一个解析内核与内置的技能快照,全程离线可用(npx 即跑)。

核心要点:

1. 包装 Google 官方 android/skills,免复制粘贴即可被 AI 工具使用

2. 两种分发范式:MCP 服务器(动态)与rules 文件(静态)

3. 内置技能快照,离线工作,npx -y 即可运行,无需 clone 上游

4. 覆盖 Claude Code / Cursor / Copilot / Gemini / Junie / Continue / Aider 七大工具

2、整体架构:三个包的分工

仓库是 pnpm workspace,三个包各司其职,共享同一个内核与技能快照:

android-skills-mcp  (pnpm workspace monorepo)
├── packages/core   @android-skills/core    解析 + 校验 + BM25 索引(共享内核)
├── packages/mcp    android-skills-mcp      MCP 服务器(stdio,按需拉取)
└── packages/pack   android-skills-pack     打包 CLI(转 7 种 rules 文件)
        ↑ 三者共享 core,且 mcp/pack 都内置 dist/skills.json 技能快照

核心要点:

1. @android-skills/core:解析 SKILL.md、按规范校验、建搜索索引,是共享底座

2. android-skills-mcp:MCP 服务器,把技能库暴露给任何 MCP 客户端

3. android-skills-pack:CLI,把 SKILL.md 转成各工具原生格式写入项目

4. mcp 和 pack 都依赖 core,且都把解析后的技能快照打包进 dist/skills.json,终端用户无需上游仓库

3、内核:@android-skills/core

core 是整个项目的底座,三件事:解析 frontmatter、按规范校验、建全文索引。它决定了技能能否被"结构化理解 + 高效检索"。

// @android-skills/core 的三大职责
1. 解析:用 gray-matter 解析 SKILL.md 的 frontmatter(name/description 等元数据)
2. 校验:用 zod 按 agentskills.io 规范校验每个技能的合法性
3. 索引:用 minisearch 构建 BM25 索引,支持 search_skills 全文检索

// 关键产出:dist/skills.json(解析后的技能快照)
//   被 mcp 和 pack 共同内置,让终端用户离线即用,不依赖上游 android/skills 仓库

核心要点:

1. gray-matter 解析 SKILL.md 头部的 YAML frontmatter,提取技能元数据

2. zod + agentskills.io 规范校验,保证技能符合 AI 技能标准格式

3. minissearch 构建 BM25 索引,让 search_skills 能按相关性排序,而非简单列表

4. 解析结果固化为 dist/skills.json 快照,是"离线 + 快速加载"的基础

4、MCP 服务器:按需拉取技能

android-skills-mcp 是一个 stdio MCP 服务器,暴露三个工具和一个资源协议,任何 MCP 客户端都能发现并按需拉取技能:

// 暴露的三个工具
list_skills      // 列出所有可用技能
search_skills    // 按关键词 BM25 搜索(如 "edge-to-edge")
get_skill        // 取回某个技能的完整内容

// 资源协议
每个技能暴露为 skill:// 资源,MCP 客户端可按需发现并拉取

// 接入 Claude Code(一行命令)
claude mcp add android-skills -- npx -y android-skills-mcp

// 接入 Cursor:.cursor/mcp.json
{
  "mcpServers": {
    "android-skills": {
      "command": "npx",
      "args": ["-y", "android-skills-mcp"]
    }
  }
}

// 其他 MCP 客户端(Codex CLI / Windsurf 等):任何能注册 stdio MCP 的地方
//   npx -y android-skills-mcp
// 内置快照加载 < 200ms,每次会话拉起的开销可忽略

核心要点:

1. 三个工具:list_skills 列举、search_skills 搜索、get_skill 取详情

2. 每个技能作为 skill:// 资源暴露,符合 MCP 资源协议

3. Claude Code 一行 `claude mcp add` 即接入;Cursor 改 mcp.json

4. 快照加载 < 200ms,按需拉取、不污染仓库

5、打包 CLI:转 7 种原生 rules 格式

如果你更倾向"把 rules 文件提交进仓库、团队共享",打包 CLI 能把 SKILL.md 一键转成各工具的原生格式写入项目,可选单个目标或 all:

# 转成某个工具的格式
npx android-skills-pack install --target cursor
npx android-skills-pack install --target claude-code
npx android-skills-pack install --target copilot

# 一次转成全部 7 种
npx android-skills-pack install --target all

# 只装某个技能(可逗号分隔多个)
npx android-skills-pack install --target cursor --skill edge-to-edge
npx android-skills-pack install --target claude-code --skill edge-to-edge,r8-analyzer
Target        输出路径                                          说明
-----------------------------------------------------------------------------
claude-code   .claude/skills/<name>/SKILL.md                   近 1:1 拷贝,引用单独存
cursor        .cursor/rules/<name>.mdc                          description + alwaysApply
copilot       .github/instructions/<name>.instructions.md       applyTo: "**"
gemini        .gemini/styleguide.md                             单文件拼接,## 分节
junie         .junie/skills/<name>/SKILL.md                     原生支持 agentskills.io
continue      .continue/rules/<name>.md                         name/description/alwaysApply
aider         CONVENTIONS.md (仓库根)                            单文件,.aider.conf.yml 加 read

核心要点:

1. --target 选单工具或 all;--skill 过滤特定技能

2. 七大工具各有专属输出路径与 frontmatter 约定,CLI 自动适配

3. 文件写入项目后可提交仓库,团队成员无需各自配置

4. junie 原生支持 agentskills.io 规范,其余工具按各自 rules 机制转写

6、两种方式怎么选

MCP 服务器和打包 CLI 不是二选一的对立,而是两种范式的权衡——动态按需 vs 静态提交:

维度          MCP 服务器                         打包 CLI(rules 文件)
------------------------------------------------------------------------
形态          运行时按需拉取                     静态文件写入项目
仓库          不污染仓库                         可提交,团队共享
更新          上游更新后自动跟进(快照随包)      需重新跑 CLI 同步
离线          npx 即跑(内置快照)               文件已在本地,完全离线
可见性        技能"隐式"生效                  rules 文件可读可审查
适合          个人快速启用、多项目复用            团队统一规范、需要版本化

核心要点:

1. MCP 方式:一次配置、多项目复用,技能"隐式"生效,不污染仓库

2. 文件方式:rules 提交进仓库,团队共享、可审查、可版本化

3. 个人开发优先 MCP(轻),团队协作优先文件(稳)

4. 两者共享同一份技能快照,内容一致,只是分发路径不同

7、设计亮点与启示

抛开功能,这个项目在工程上有不少值得借鉴的设计:

       - 快照解耦上游:把解析后的技能固化进 dist/skills.json,终端用户完全不依赖 android/skills 仓库

       - BM25 而非列表:用 minisearch 建全文索引,search_skills 按相关性排序,体验远超扁平 list

       - 遵循 agentskills.io 规范:用 zod 校验,技能格式标准化,可被任何符合规范的工具消费

       - monorepo 拓扑构建:core 先、mcp/pack 并行,pnpm workspace + vitest 共 64 个测试

       - 双范式覆盖:MCP(动态)+ 文件(静态)满足不同场景,不一刀切

核心要点:

1. 把"技能数据"与"上游仓库"解耦(快照内置),是离线分发的关键设计

2. 用搜索(BM25)替代列表,让 AI 能"找到最相关的技能"

3. 遵循开放规范(agentskills.io),不绑架用户于单一工具

4. 它的启示:做"AI 工具的内容分发",要把"数据层(core)"与"传输层(MCP/文件)"分离

8、总结

android-skills-mcp 抓住了一个具体而真实的缺口:Google 有官方 Android 技能,各家 AI 工具有各自的 rules 格式,中间缺一个"适配 + 分发"层。它用"MCP 服务器 + 打包 CLI"双范式填上了这个空。

关键要点:

       - 定位:包装 Google android/skills,分发给所有主流 AI 编程助手

       - 架构:core(解析/校验/BM25)+ mcp(服务器)+ pack(CLI)三包 monorepo

       - MCP:list/search/get 三工具 + skill:// 资源,Claude Code 一行接入

       - CLI:--target 选 7 种工具格式,--skill 过滤,写入项目可提交

       - 选型:个人用 MCP(轻、按需),团队用文件(稳、可版本化)

       - 亮点:快照内置离线、BM25 搜索、agentskills.io 规范、数据层与传输层分离

对于想让 AI 编程助手"懂 Android 最佳实践"的开发者而言,android-skills-mcp 把"官方技能 → AI 工具"的分发链路打通了——edge-to-edge、R8 优化这些官方沉淀的经验,不再是"知道但用不上"的文档,而是 AI 写代码时随时可调用的能力。它更示范了一种通用模式:把任何"最佳实践库"通过 MCP / rules 文件分发给 AI 工具,数据层(解析与索引)与传输层(MCP/文件)分离。这套"技能分发"思路,未来完全可以复用到前端、后端、安全等任何领域的实践库上。

相关推荐

Superpowers 详解:给编码 Agent 的完整开发方法论
精选Skill

Superpowers 详解:给编码 Agent 的完整开发方法论

Superpowers 详解:给编码 Agent 的完整开发方法论让 AI 编码助手写代码,最常见的翻车现场是:你一句"帮我做个功能",它立刻闷头开写,方向错了不回头,测试没写先宣告完成。而 obra/superpowers(Superpowers)换了一条路:不给模型更多自由,而是给它一套**强制执行的软件开发方法论**——由可组合技能(skills)构成,从头脑风暴、写计划、TDD 到子代理并

167
Karpathy Skills 详解:驯服 AI 编码的行为契约
精选Skill

Karpathy Skills 详解:驯服 AI 编码的行为契约

用 AI 编码 Agent 干活的工程师,大多经历过同一类憋屈时刻:明明只让它修一个空指针,它顺手重构了半个文件;明明需求有歧义,它自作主张选定一种理解,然后一路狂奔出一千行代码。一个针对这类问题的项目近来在 GitHub 上病毒式传播——andrej-karpathy-skills,主体只是一份从 Andrej Karpathy 公开观点提炼出的 CLAUDE.md 行为准则,star 数很快站…

98
查找Skill的技巧
Skill

查找Skill的技巧

查找Skill的技巧查找合适的Skill是提升AI助手效能的关键。以下是系统化的查找技巧,快速定位高质量Skill。1、明确需求与关键词策略精准的关键词是找到合适Skill的第一步。避免过于宽泛的词汇,采用具体化、组合化的搜索策略。推荐关键词模式:领域 + 动作 - react testing 优于 testing - nextjs deploy 优于 deploy - typescript li

558