MCP Server Builder
anthropics/skills
Guides the design and implementation of Model Context Protocol servers in TypeScript or Python, from tool naming and error messages to evaluation.
Add runtime UI options (select/checkbox/switch/input) to MaaFramework option surfaces such as assets/interface.json or assets/resource/tasks//.json.
$ npx skills add duorua/narutomobile --skill maa-pipeline-option -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install duorua/narutomobile maa-pipeline-option --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/duorua/narutomobile.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/maa-pipeline-option .claude/skills/maa-pipeline-option && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "maa-pipeline-option" agent skill from https://github.com/duorua/narutomobile/tree/main/.agents/skills/maa-pipeline-option into .claude/skills/maa-pipeline-option/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "maa-pipeline-option", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/duorua/narutomobile/tree/main/.agents/skills/maa-pipeline-optionType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add duorua/narutomobile --skill maa-pipeline-option -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install duorua/narutomobile maa-pipeline-option --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/duorua/narutomobile.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/maa-pipeline-option .agents/skills/maa-pipeline-option && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "maa-pipeline-option" agent skill from https://github.com/duorua/narutomobile/tree/main/.agents/skills/maa-pipeline-option into .agents/skills/maa-pipeline-option/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "maa-pipeline-option", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add duorua/narutomobile --skill maa-pipeline-option -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install duorua/narutomobile maa-pipeline-option --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/duorua/narutomobile.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/maa-pipeline-option .cursor/skills/maa-pipeline-option && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "maa-pipeline-option" agent skill from https://github.com/duorua/narutomobile/tree/main/.agents/skills/maa-pipeline-option into .cursor/skills/maa-pipeline-option/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "maa-pipeline-option", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/duorua/narutomobile.git --path .agents/skills/maa-pipeline-option--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add duorua/narutomobile --skill maa-pipeline-option -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install duorua/narutomobile maa-pipeline-option --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/duorua/narutomobile.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/maa-pipeline-option .gemini/skills/maa-pipeline-option && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "maa-pipeline-option" agent skill from https://github.com/duorua/narutomobile/tree/main/.agents/skills/maa-pipeline-option into .gemini/skills/maa-pipeline-option/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "maa-pipeline-option", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install duorua/narutomobile maa-pipeline-optionInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add duorua/narutomobile --skill maa-pipeline-option -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/duorua/narutomobile.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/maa-pipeline-option .github/skills/maa-pipeline-option && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "maa-pipeline-option" agent skill from https://github.com/duorua/narutomobile/tree/main/.agents/skills/maa-pipeline-option into .github/skills/maa-pipeline-option/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "maa-pipeline-option", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add duorua/narutomobile --skill maa-pipeline-option -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install duorua/narutomobile maa-pipeline-option --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/duorua/narutomobile.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/maa-pipeline-option .opencode/skills/maa-pipeline-option && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "maa-pipeline-option" agent skill from https://github.com/duorua/narutomobile/tree/main/.agents/skills/maa-pipeline-option into .opencode/skills/maa-pipeline-option/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "maa-pipeline-option", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
maa-pipeline-optionAdd runtime UI options (select/checkbox/switch/input) to MaaFramework option surfaces such as assets/interface.json or assets/resource/tasks//.json.
Maa Pipeline Option is an agent skill from duorua/narutomobile. Add runtime UI options (select/checkbox/switch/input) to MaaFramework option surfaces such as assets/interface.json or assets/resource/tasks//.json. Use when adding a user-facing toggle, selector, checkbox, or input; wiring options to pipelineoverride; aligning option paths with Python context.getnodedata() or CustomAction params; or reviewing option behavior across Pipeline JSON and Python.
Its SKILL.md is about 1.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 6 other files, including reference files (for example `agents/openai.yaml`, `references/anti-patterns.md` and `references/patterns.md`).
It works with Python. The licence is AGPL-3.0.
6 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit e3ff401. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
pythonrgFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Maa Pipeline Option loads about 1.7k tokens when it runs, and up to ~8.8k if it reads all its reference files. Until then it costs about 107 tokens; SKILL.md has 428 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from duorua/narutomobile at commit e3ff401, republished under its AGPL-3.0 licence (© duorua). 428 words, ~1,692 tokens.
.claude/skills/maa-pipeline-option/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.如果选项属于一个尚未定义起始状态、安全边界和验收条件的端到端自动化目标,先交给 $maa-workflow-build 建立任务契约;已有契约时,再用本 skill 完成选项接线与局部验证。
新增选项前先查目标项目根目录的 basic_info.md。存在且包含第 0 节时,读取“0. Maa Skills 接力协议”和第 1/2/3/6 节,先确认 interface、resource/task entry、目标节点与 Python 外部调用,再按本 skill 查实际 option surface 和读取路径。文档只是缓存:pipeline_override、context.get_node_data() 和 Custom 参数路径必须在当前文件中闭环核实。文件缺失或没有第 0 节时按本 skill 直接发现 option surface;不得自动调用 $maa-project-init,只有用户明确要求初始化或刷新时才调用。相关源码比文档新时视为缓存可能过期并以源码为准,不自动刷新或覆盖已有非空文档。
新增一个 UI 选项需要先识别本项目使用的 option surface。MaaGumballs 主要是 assets/interface.json,M9A 同时使用 assets/interface.json 与 assets/resource/tasks/**/*.json。不要假设所有 Maa 项目只有一种入口。
常见联动点如下,按项目实际协议取用,缺关键点会导致 UI 看不到选项或运行时读不到值:
| # | 位置 | 内容 |
|---|---|---|
| 1 | option 定义处 | assets/interface.json 的 option 字典,或 assets/resource/tasks/**/*.json 里的 task option 定义 |
| 2 | task 注册处 | interface.json task 的 option: [],或 tasks JSON 的任务/预设引用 |
| 3 | assets/resource/base/pipeline/*.json | 预定义目标节点(pipeline_override 不会创建节点) |
| 4 | Python 代码(仅 Python 需要读取或执行 Custom 时必需) | context.get_node_data()、argv.custom_action_param、argv.custom_recognition_param 与 option 路径保持一致 |
⚠️ pipeline_override 只做属性合并,不会凭空创建节点。 少了第 3 步,
context.get_node_data()会返回None,运行时静默失败。
完整协议参考(嵌套 option、global_option、controller/resource 限制、占位符注入):references/protocol.md
action.param.custom_action_param、custom_action_param_code、recognition.param.custom_recognition_param 进入 Custom;这和 context.get_node_data("Flag") 是不同通道。enabled/enable 不是审美选择:MaaFramework 原生启停用 enabled;历史项目若已有 enable helper,可沿用并兼容,否则优先 enabled。| type | 选择 | override 字段 | 节点预定义形态 |
|---|---|---|---|
select | 单选互斥 | expected | recognition: "OCR" + expected: [...] |
switch | 二元 Yes/No | enabled(或项目已有的 enable) | {"enabled": bool} / {"enable": bool} |
input | 自由文本 | {name} 占位符可注入目标字段 | 按最终读取方预定义 expected 或 action.param.custom_action_param |
checkbox | 多选 | enabled | {"enabled": false} |
| 你的需求 | 推荐模式 |
|---|---|
| 启用/禁用一个 Python 业务函数 | A(switch + Flag 节点 + Python 读 flag) |
| 从多个互斥选项里选一个值 | B(select + OCR 节点) |
| 同时启用多个独立的功能模块 | C(checkbox + 多个 Flag 节点) |
| 用户输入自定义文本 | D(input + 占位符注入) |
| 切换行为(点哪个按钮 / 走哪条 next 链)但不想改 Python | E(pure override 现有节点字段) |
经验法则:行为只等于“覆盖已有节点字段”时优先 pure override;一旦需要运行时数据、计数、动态识别、失败策略或跨节点状态,改用 Flag + Python / CustomAction / CustomRecognition。目标是让改动面和逻辑复杂度匹配。
加选项前先 rg "get_node_data|_node_enabled|Flag_" agent assets,确认这次配置到底由谁读取。
常见对应关系:
| UI override 写什么 | Python 应该读什么 | 备注 |
|---|---|---|
{ "Flag_X": { "enabled": true } } | node.get("enabled") | MaaFramework 标准启停字段 |
{ "Flag_X": { "enable": true } } | node.get("enable") 或兼容 helper | 仅用于已有项目约定/历史字段 |
{ "SomeOCR": { "expected": ["A"] } } | node["recognition"]["param"]["expected"][0] | 节点必须预定义为 OCR |
{ "SomeNode": { "next": ["A"] } } | 不读,直接由 pipeline 行为生效 | pure override 模式 |
不要字段错位:例如 UI 写 AutoSky_CloneConfig.enable,Python 却调用读取 expected 的函数;或 UI 写 expected,Python 只看 enabled。这种错误不会报 JSON 语法错,但运行时会表现为"选项没生效"。
如果同一个节点既保存 enable/enabled 开关,又是可执行的 Recognition/Action 节点,先读取开关,只有开启时才调用它。关闭节点后继续检查同级候选分支,不能调用已关闭节点,也不能因为开关值直接 continue 整个事件扫描。
if _node_enabled(context, "OptionalNode"):
result = context.run_recognition("OptionalNode", image)
if result and result.hit:
context.run_task("OptionalNode")
continue
# OptionalNode 关闭或未命中,继续识别 CombatNode、ExploreNode 等同级分支。需要 switch、select、checkbox、input、pure override 或流程型选项的完整代码时,读取 references/patterns.md。
| 角色 | 风格 | 示例 |
|---|---|---|
| option 名(用户可见) | 中文动词起头 | 开启5月城堡相亲、选择刷取任务国家 |
| 节点名(pipeline) | 英文 | Flag_EnableMarryTask、EnterCity、检测_科内塔之怒 |
| switch case 名 | 严格 Yes / No | 不要用 true/false 或 是/否(Client 解析跨平台不一致) |
保持现有行为是底线。 老用户不该因新选项而行为改变。
| 场景 | 推荐 default |
|---|---|
| 新开关让功能默认关闭 | No(明确告知用户"关了") |
| 新开关让功能默认开启 | Yes(保留旧行为) |
| 旧代码无条件开启 | Yes(兼容) |
| 旧代码无条件关闭 | No(兼容) |
| 决策类型 | 放哪读 | 理由 |
|---|---|---|
| 是否执行某段流程 | 业务函数入口 handle_xxx | 与现有同名函数风格一致,子函数自治 |
| 用哪个值做主逻辑 | 任务入口 run 或 YearlyTaskProcessor | 一次读取、多次复用 |
反例:不要把"是否开启 X"的判断堆在通用
dispatch函数(如handle_festival_by_month)里。每加一个开关 dispatch 就多一个if-elif,越来越臃肿。
开启5月城堡相亲;选择 → 选择刷取任务国家)python tools/ci/check_resource.py assets/resource/base;如果目标项目路径不同,先用 Get-ChildItem tools -Recurse -Filter check_resource.py 发现真实脚本。pipeline 加载错误(如重复 key)会立刻报doc 数组里加一行说明:用户能看懂每个选项的作用实现或审查 option 时读取 references/anti-patterns.md,逐项排除常见的接线与状态机错误。
改完一次完整流程,按顺序做这 4 步:
JSON 语法检查
python -c "import json; json.load(open('assets/interface.json', encoding='utf-8'))"
python -c "import json; json.load(open('assets/resource/base/pipeline/auto_task.json', encoding='utf-8'))"资源加载检查
python tools/ci/check_resource.py assets/resource/base期望输出 All directories checked.
Pipeline 节点测试(可选)
data = context.get_node_data("Flag_EnableSailingFestivalPurchase")
assert data is not None, "节点未预定义"
assert "enabled" in data端到端验证:用 Pipeline Testing Skill 跑一次实际流程
更多 type 字段、嵌套 option、global_option、controller/resource 限制、{占位符} 注入机制等高级特性见 references/protocol.md。
© duorua, AGPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 4 other files (references) in .agents/skills/maa-pipeline-option of duorua/narutomobile.
Open the folder on GitHubat commit e3ff401
Maa Pipeline Option next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Maa Pipeline Option this skillduorua/narutomobile | 340 | — | ~1.7k | Automated safety check: Pass | AGPL-3.0 | |
| MCP Server Builderanthropics/skills | 180k | 63 repos | ~2.3k | Automated safety check: Pass | Apache-2.0 | |
| PDF Processinganthropics/skills | 180k | 47 repos | ~2k | Automated safety check: Pass | Proprietary | |
| NotebookLM Research AssistantPleasePrompto/notebooklm-skill | 7.8k | 14 repos | ~2.4k | Automated safety check: Notes | MIT | |
| Manim Video Productionbrowser-use/video-use | 29k | 6 repos | ~3k | Automated safety check: Pass | MIT | |
| PPT Masterhugohe3/ppt-master | 59k | 1 repos | ~2.5k | Automated safety check: Pass | MIT |
anthropics/skills
Guides the design and implementation of Model Context Protocol servers in TypeScript or Python, from tool naming and error messages to evaluation.
anthropics/skills
Handles everyday PDF jobs in Python and on the command line: extract text and tables, merge, split, rotate, watermark, fill forms, encrypt and OCR.
PleasePrompto/notebooklm-skill
Lets Claude Code ask questions of your Google NotebookLM notebooks through browser automation and return answers grounded in your uploaded sources.
browser-use/video-use
Produces math and technical explainer videos with Manim Community Edition: concept animations, equation derivations, algorithm walkthroughs and data stories.
hugohe3/ppt-master
Generates editable PowerPoint decks, rebuilds slides from images, fills .pptx templates and polishes existing presentations through routed workflows.
zLanqing/codex-claude-academic-skills
Machine learning in Python with scikit-learn. An agent skill from zLanqing/codex-claude-academic-skills.
duorua/narutomobile
Scan and initialize a MaaFramework game or app automation project for Maa skills and MaaMCP workflows.
duorua/narutomobile
Generate MaaFramework Pipeline nodes and recognition snippets from screenshots or observed UI state.
duorua/narutomobile
Orchestrate ambiguous end-to-end MaaFramework automation requests into verified implementations.
duorua/narutomobile
Audit a MaaFramework/Maa-series project's Git history to learn how Pipeline JSON, interface options, Python AgentServer CustomAction code, and related data tables evolved.
duorua/narutomobile
Test and validate MaaFramework Pipeline JSON, recognition nodes, action nodes, CustomAction/CustomRecognition wiring, resource loading, and end-to-end task behavior.
duorua/narutomobile
Operate MaaFramework devices and Pipeline resources through the maafw-cli command line with strict JSON output.
Works with
Add runtime UI options (select/checkbox/switch/input) to MaaFramework option surfaces such as assets/interface.json or assets/resource/tasks//.json. Maa Pipeline Option is an agent skill from duorua/narutomobile.json.
Maa Pipeline Option fits situations like: adding a user-facing toggle; wiring options to pipelineoverride; aligning option paths with Python context.getnodedata(); customAction params.
Run `npx skills add duorua/narutomobile --skill maa-pipeline-option -a claude-code`. Or copy the skill folder (.agents/skills/maa-pipeline-option in duorua/narutomobile) into .claude/skills/maa-pipeline-option in your project. Claude Code loads it when a task matches its description.
Run `npx skills add duorua/narutomobile --skill maa-pipeline-option -a codex`. Or copy the skill folder (.agents/skills/maa-pipeline-option in duorua/narutomobile) into .agents/skills/maa-pipeline-option in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add duorua/narutomobile --skill maa-pipeline-option -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/maa-pipeline-option, .gemini/skills/maa-pipeline-option, .github/skills/maa-pipeline-option and .opencode/skills/maa-pipeline-option in your project.
Going by SKILL.md and its folder, Maa Pipeline Option needs the command-line tools its instructions call (python and rg). Our summary lists: Python 3.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Maa Pipeline Option is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.7k tokens (SKILL.md is roughly 6.8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 7.1k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Maa Pipeline Option: MCP Server Builder (anthropics/skills, 180k stars), PDF Processing (anthropics/skills, 180k stars), NotebookLM Research Assistant (PleasePrompto/notebooklm-skill, 7.8k stars) and Manim Video Production (browser-use/video-use, 29k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
duorua (a GitHub user) maintains it in duorua/narutomobile, which has 340 GitHub stars. The repository holds 11 skills in this directory. The repository was last updated on October 10, 2026.
Source: duorua/narutomobile on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.