[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6DBFW90TM2SS8MP4Z096WAZ":3,"skill-same:01M6DBFW90TM2SS8MP4Z096WAZ":73},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":44,"linkOnly":45,"markdownContent":46,"markdownBody":47,"frontMatter":48,"refName":53,"commitSha":54,"skillDirectory":55,"forksCount":14,"repositoryHtmlUrl":56,"repositoryHomepageUrl":6,"ownerHtmlUrl":57,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":58,"install":59,"resources":72},"01M6DBFW90TM2SS8MP4Z096WAZ","ida-multi-mcp",null,"Use when you need to analyze SEVERAL binaries in IDA at once through one MCP endpoint, or when you must re-find a function whose address SHIFTED after a rebuild\u002Fgame-update. Wires MeroZemory\u002Fida-multi-mcp and its local BCSD engine - similar_functions \u002F compare_functions rank matches by instruction-shingle MinHash plus API\u002Fstring\u002Fconstant anchors plus CFG shape, name-independently (survives stripping), within a binary or across instances. The keystone Battle Cats recipe - open the pinned old IDB and the new .so as two instances, then similar_functions to auto-re-locate the moved offset table after a relink. Additive and opt-in - adds NO hook, gate, or blocking behavior. NOT for a single binary on the already-installed server (use ida-pro-mcp); the Reversecore mega-bundle stays PARKED.","Prekzursil\u002Fagent-skills-toolchain","Prekzursil","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F54636077?v=4","01M6DACZ1PCQHD99SCR1YXG28B","Andrei Mihai Visalon","01M6DACZ670WZF535V3WYYSS4Z",0,"MIT","https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fida-multi-mcp\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43],"ida multi mcp","MCP","use","as","local","across","single binary","instances","rebuild","functions","auto","find","engine","analyze","game","open","api","CFG","server","github","2026-11-10 10:12:30",false,"---\nname: ida-multi-mcp\ndescription: Use when you need to analyze SEVERAL binaries in IDA at once through one MCP endpoint, or when you must re-find a function whose address SHIFTED after a rebuild\u002Fgame-update. Wires MeroZemory\u002Fida-multi-mcp and its local BCSD engine - similar_functions \u002F compare_functions rank matches by instruction-shingle MinHash plus API\u002Fstring\u002Fconstant anchors plus CFG shape, name-independently (survives stripping), within a binary or across instances. The keystone Battle Cats recipe - open the pinned old IDB and the new .so as two instances, then similar_functions to auto-re-locate the moved offset table after a relink. Additive and opt-in - adds NO hook, gate, or blocking behavior. NOT for a single binary on the already-installed server (use ida-pro-mcp); the Reversecore mega-bundle stays PARKED.\norigin: user\nmetadata:\n  gem: E5-ida-multi-mcp\n  upstream: https:\u002F\u002Fgithub.com\u002FMeroZemory\u002Fida-multi-mcp\n---\n\n# ida-multi-mcp — multi-instance IDA + local BCSD\n\n`MeroZemory\u002Fida-multi-mcp` is a **multi-instance IDA Pro MCP server**: it routes one\nMCP endpoint to many live IDA instances (GUI or headless `idalib`) and adds a\n**local Binary Code Similarity Detection (BCSD)** engine. That engine is the point of\nthis skill — `similar_functions()` re-locates the *same* function in a *different*\nbinary by behavior, so a function whose address shifted after a rebuild is found\nagain automatically instead of hand-re-porting an offset table.\n\nEverything is local — \"no cloud, no external service.\"\n\n## How this relates to what's already wired (read first)\n\nThe workspace already wires **`mrexodia\u002Fida-pro-mcp`** (see the `ida-pro-mcp` and\n`re-ensure` skills + the re-harness) on the GUI `:13337` \u002F headless idalib `:8745`.\nThat server exposes `list_instances` \u002F `select_instance` \u002F `open_file` but has **no\nBCSD**. `ida-multi-mcp` is a **separate, additive** server that (a) manages several\ninstances through a single endpoint and (b) adds `similar_functions` \u002F\n`compare_functions`. They can coexist, but **both drive IDA and idalib consumes a\nlicense seat** — run one headless seat at a time (the re-harness registry already\nguards the GUI seat on `:13337`; do not start a second headless analysis of the same\nbinary set concurrently). Prefer this server when the task is cross-binary\nsimilarity; keep mrexodia for single-target GUI work.\n\n## The keystone use case — auto-re-find a shifted offset (Battle Cats)\n\nWhen Battle Cats (or any app) ships an update the native `.so` relinks and every RVA\nin the pinned offset table moves. Instead of re-porting by hand (or only diffing with\n`ghidriff`), let BCSD carry the *named* old functions onto the new binary:\n\n1. **Reference (old):** the pinned `15.4.1` IDB\u002F`.i64` with named functions — the\n   offset-table source of truth (e.g. the `NewButton` ctor documented at `0x668C70`\n   in the `bc-drive` \u002F `battlecats-event-unlock` skills).\n2. **Target (new):** the updated `libnative-lib.so`.\n3. Open both as instances and index them:\n   ```\n   idalib_open(\"D:\u002FReverseTools\u002F...\u002Fold_15.4.1.i64\")     -> instance OLD\n   idalib_open(\"D:\u002FReverseTools\u002F...\u002Fnew\u002Flibnative-lib.so\") -> instance NEW\n   index_functions(OLD); index_functions(NEW)\n   ```\n4. For each pinned function, rank its twins in the new binary:\n   ```\n   similar_functions(instance_id=OLD, func=\"NewButton_ctor\",\n                     top_k=5, scope=\"instances\")\n   ```\n   The top hit inside instance `NEW` is the shifted address. Confirm a borderline\n   match with `compare_functions(old_func, candidate)` (cross-instance pairwise).\n5. Write the recovered address back into the offset table; hand off to\n   `bc_offset_guard` \u002F the BC modding skills.\n\nBecause the signals are **name-independent** they survive the strip, and BCSD picks\nup functions that a pure structural `ghidriff` diff misses when the CFG changed but\nbehavior did not — the two are complementary (diff first for the easy 1:1 renames,\nBCSD for the movers).\n\n## Install (opt-in — user\u002Fsetup step, not wired by default)\n\n```bash\npython -m pip install \"git+https:\u002F\u002Fgithub.com\u002FMeroZemory\u002Fida-multi-mcp.git\"\nida-multi-mcp --install        # installs the IDA plugin + client glue\n# custom IDA-matching interpreter (Windows\u002FmacOS version mismatch):\npython3.11 -m pip install --user \"git+https:\u002F\u002Fgithub.com\u002FMeroZemory\u002Fida-multi-mcp.git\"\n```\n\nRegister as an MCP server (Claude Code \u002F Codex \u002F Cursor):\n```json\n{ \"command\": \"ida-multi-mcp\", \"args\": [] }\n```\nFor a non-default idalib Python: `ida-multi-mcp --idalib-python \u002Fpath\u002Fto\u002Fpython3.11`.\n\n**Requirements:** IDA Pro **8.3+** (9.0+ recommended — the box has IDA Professional\n9.3), Python **3.11+**. Headless `idalib` **requires a licensed IDA Pro** (IDA\nHome\u002FFree omit `idalib`). Plugin lands in `%APPDATA%\\Hex-Rays\\IDA Pro\\plugins\\` on\nWindows. **Python-version match is critical** — IDA's bundled Python often differs\nfrom your system default; check inside IDA with `import sys; print(sys.version)`\nbefore installing, or point `--idalib-python` at the matching interpreter.\n\n> Registering the MCP touches `~\u002F.mcp.json`, which is **outside this skill's scope** —\n> do that as an explicit, reviewed setup step (the `mcp_register` helper in the\n> re-harness edits `~\u002F.mcp.json` safely and never drops the enabled\u002Fdisabled\n> curation; see the \"never destroy MCP enabled state\" rule).\n\n## Tool reference (verified against upstream README)\n\n**Instance management**\n- `list_instances()` — registered instances + metadata (binary, path, arch, port,\n  `type`: `gui` or `idalib`).\n- `refresh_tools()` — re-discover tools from active instances.\n- `idalib_open(input_path, timeout, unsafe)` — spawn a headless session, auto-analyze,\n  register with a generated `instance_id`.\n- `idalib_close(instance_id)` — terminate + deregister a headless session.\n- `idalib_list()` \u002F `idalib_status(instance_id)` — enumerate \u002F health-check headless\n  sessions.\n\n**Similarity (BCSD)**\n- `similar_functions(instance_id, func, top_k=20, scope=\"binary\"|\"instances\"|\"all\")`\n  — rank the most similar functions within one binary or across instances; returns a\n  per-signal breakdown plus a confidence score.\n- `compare_functions(a, b)` — direct pairwise similarity between two functions\n  (optionally cross-instance).\n- `index_functions(instance_id, rebuild=False)` — build\u002Frefresh the searchable index.\n- `index_status(instance_id)` — index readiness, function count, staleness, background\n  progress.\n\n**Plus ~80 IDA tools** auto-discovered per instance (`decompile`, `survey_binary`,\n`func_query`, `imports_query`, `xrefs_*`, `list_funcs`, `find_*`, …). **Every tool\ncall takes an `instance_id`.**\n\n**Instance IDs** are 4-char base36 (`0-9 a-z`) like `k7m2`, `px3a`, `9bf1`,\ndeterministic from pid + port + IDB path (reopening the same binary yields the same\nid; auto-expands to 5 chars on collision). Registry on Windows:\n`%USERPROFILE%\\.ida-mcp\\instances.json`.\n\n## BCSD signals (why it survives stripping)\n\n`similar_functions` combines, name-independently:\n- **instruction-shingle MinHash** (n-gram of the instruction stream),\n- **IDF-weighted anchors** — imported-API \u002F string \u002F constant references,\n- **CFG structure \u002F shape**,\n- **symbol-gated pseudocode tokens**.\n\n**Optional neural recall** for anchor-less cross-compiler twins the lexical\u002Fstructural\nsignals miss:\n```bash\npip install \"ida-multi-mcp[neural]\"     # extra\nsetx IDA_MCP_SIM_NEURAL 1               # enable (jTrans embeddings)\n```\nThe jTrans model auto-downloads to `~\u002F.ida-mcp\u002Fmodels\u002F` and runs **locally**. Leave it\nOFF by default (RAM + first-run download); flip it on only when MinHash+anchors return\nlow confidence on a known-moved function.\n\n## Reversecore stays PARKED (do not wire)\n\nThe `E.5` gem pairs this with the **Reversecore** mega-bundle (angr + Qiling +\nVolatility3 + binwalk + CAPA). Per the council it is **park-by-default** — do NOT wire\nit here. The capabilities the workspace actually wants from it already ride existing,\nleaner buses: `qiling-emulation` (skill), planned angr-MCP into the re-harness,\n`capa-triage`, `radare2`\u002F`ghidra-mcp`. Cherry-pick, never adopt the bundle.\n\n## Anti-overfit \u002F posture\n\n- **Rides the existing RE bus** — same IDA + idalib + re-harness seat model as the\n  wired `ida-pro-mcp`; local-only; no vector-DB, no second orchestration runtime.\n- **Purely additive** — this skill adds no hook, no gate, nothing that blocks or nags.\n- **Advisory** — a BCSD \"match\" is a ranked hypothesis; confirm the recovered address\n  by decompiling both sides (`compare_functions` + a `decompile` eyeball) before you\n  trust it as an offset. Do not act on a low-confidence twin (the \"acting on stale\n  offsets\" failure the `bc_offset_guard` module exists to prevent).\n\n## Verify\n\n```bash\n# 1) skill is well-formed \u002F vault-admissible (frontmatter parses, no angle brackets in description)\npython - \u003C\u003C'PY'\nimport re, pathlib\np = pathlib.Path.home()\u002F\".claude\u002Fskills\u002Fida-multi-mcp\u002FSKILL.md\"\nt = p.read_text(encoding=\"utf-8\"); fm = t.split(\"---\",2)[1]\nassert \"\\nname: ida-multi-mcp\" in fm and \"\\ndescription:\" in fm, \"frontmatter missing\"\ndesc = re.search(r\"\\ndescription:\\s*(.+)\", fm).group(1)\nassert \"\u003C\" not in desc and \">\" not in desc, \"angle bracket in description breaks quick_validate\"\nprint(\"SUCCESS ida-multi-mcp SKILL.md well-formed\")\nPY\n\n# 2) live smoke (only after the server is installed + wired): non-empty instance list\n#    list_instances()  -> at least one {type: gui|idalib} row\n#    idalib_open(\u003Cbinary>) ; index_functions(\u003Cid>) ; similar_functions(\u003Cid>, \u003Cfunc>)\n```\n","# ida-multi-mcp — multi-instance IDA + local BCSD\n\n`MeroZemory\u002Fida-multi-mcp` is a **multi-instance IDA Pro MCP server**: it routes one\nMCP endpoint to many live IDA instances (GUI or headless `idalib`) and adds a\n**local Binary Code Similarity Detection (BCSD)** engine. That engine is the point of\nthis skill — `similar_functions()` re-locates the *same* function in a *different*\nbinary by behavior, so a function whose address shifted after a rebuild is found\nagain automatically instead of hand-re-porting an offset table.\n\nEverything is local — \"no cloud, no external service.\"\n\n## How this relates to what's already wired (read first)\n\nThe workspace already wires **`mrexodia\u002Fida-pro-mcp`** (see the `ida-pro-mcp` and\n`re-ensure` skills + the re-harness) on the GUI `:13337` \u002F headless idalib `:8745`.\nThat server exposes `list_instances` \u002F `select_instance` \u002F `open_file` but has **no\nBCSD**. `ida-multi-mcp` is a **separate, additive** server that (a) manages several\ninstances through a single endpoint and (b) adds `similar_functions` \u002F\n`compare_functions`. They can coexist, but **both drive IDA and idalib consumes a\nlicense seat** — run one headless seat at a time (the re-harness registry already\nguards the GUI seat on `:13337`; do not start a second headless analysis of the same\nbinary set concurrently). Prefer this server when the task is cross-binary\nsimilarity; keep mrexodia for single-target GUI work.\n\n## The keystone use case — auto-re-find a shifted offset (Battle Cats)\n\nWhen Battle Cats (or any app) ships an update the native `.so` relinks and every RVA\nin the pinned offset table moves. Instead of re-porting by hand (or only diffing with\n`ghidriff`), let BCSD carry the *named* old functions onto the new binary:\n\n1. **Reference (old):** the pinned `15.4.1` IDB\u002F`.i64` with named functions — the\n   offset-table source of truth (e.g. the `NewButton` ctor documented at `0x668C70`\n   in the `bc-drive` \u002F `battlecats-event-unlock` skills).\n2. **Target (new):** the updated `libnative-lib.so`.\n3. Open both as instances and index them:\n   ```\n   idalib_open(\"D:\u002FReverseTools\u002F...\u002Fold_15.4.1.i64\")     -> instance OLD\n   idalib_open(\"D:\u002FReverseTools\u002F...\u002Fnew\u002Flibnative-lib.so\") -> instance NEW\n   index_functions(OLD); index_functions(NEW)\n   ```\n4. For each pinned function, rank its twins in the new binary:\n   ```\n   similar_functions(instance_id=OLD, func=\"NewButton_ctor\",\n                     top_k=5, scope=\"instances\")\n   ```\n   The top hit inside instance `NEW` is the shifted address. Confirm a borderline\n   match with `compare_functions(old_func, candidate)` (cross-instance pairwise).\n5. Write the recovered address back into the offset table; hand off to\n   `bc_offset_guard` \u002F the BC modding skills.\n\nBecause the signals are **name-independent** they survive the strip, and BCSD picks\nup functions that a pure structural `ghidriff` diff misses when the CFG changed but\nbehavior did not — the two are complementary (diff first for the easy 1:1 renames,\nBCSD for the movers).\n\n## Install (opt-in — user\u002Fsetup step, not wired by default)\n\n```bash\npython -m pip install \"git+https:\u002F\u002Fgithub.com\u002FMeroZemory\u002Fida-multi-mcp.git\"\nida-multi-mcp --install        # installs the IDA plugin + client glue\n# custom IDA-matching interpreter (Windows\u002FmacOS version mismatch):\npython3.11 -m pip install --user \"git+https:\u002F\u002Fgithub.com\u002FMeroZemory\u002Fida-multi-mcp.git\"\n```\n\nRegister as an MCP server (Claude Code \u002F Codex \u002F Cursor):\n```json\n{ \"command\": \"ida-multi-mcp\", \"args\": [] }\n```\nFor a non-default idalib Python: `ida-multi-mcp --idalib-python \u002Fpath\u002Fto\u002Fpython3.11`.\n\n**Requirements:** IDA Pro **8.3+** (9.0+ recommended — the box has IDA Professional\n9.3), Python **3.11+**. Headless `idalib` **requires a licensed IDA Pro** (IDA\nHome\u002FFree omit `idalib`). Plugin lands in `%APPDATA%\\Hex-Rays\\IDA Pro\\plugins\\` on\nWindows. **Python-version match is critical** — IDA's bundled Python often differs\nfrom your system default; check inside IDA with `import sys; print(sys.version)`\nbefore installing, or point `--idalib-python` at the matching interpreter.\n\n> Registering the MCP touches `~\u002F.mcp.json`, which is **outside this skill's scope** —\n> do that as an explicit, reviewed setup step (the `mcp_register` helper in the\n> re-harness edits `~\u002F.mcp.json` safely and never drops the enabled\u002Fdisabled\n> curation; see the \"never destroy MCP enabled state\" rule).\n\n## Tool reference (verified against upstream README)\n\n**Instance management**\n- `list_instances()` — registered instances + metadata (binary, path, arch, port,\n  `type`: `gui` or `idalib`).\n- `refresh_tools()` — re-discover tools from active instances.\n- `idalib_open(input_path, timeout, unsafe)` — spawn a headless session, auto-analyze,\n  register with a generated `instance_id`.\n- `idalib_close(instance_id)` — terminate + deregister a headless session.\n- `idalib_list()` \u002F `idalib_status(instance_id)` — enumerate \u002F health-check headless\n  sessions.\n\n**Similarity (BCSD)**\n- `similar_functions(instance_id, func, top_k=20, scope=\"binary\"|\"instances\"|\"all\")`\n  — rank the most similar functions within one binary or across instances; returns a\n  per-signal breakdown plus a confidence score.\n- `compare_functions(a, b)` — direct pairwise similarity between two functions\n  (optionally cross-instance).\n- `index_functions(instance_id, rebuild=False)` — build\u002Frefresh the searchable index.\n- `index_status(instance_id)` — index readiness, function count, staleness, background\n  progress.\n\n**Plus ~80 IDA tools** auto-discovered per instance (`decompile`, `survey_binary`,\n`func_query`, `imports_query`, `xrefs_*`, `list_funcs`, `find_*`, …). **Every tool\ncall takes an `instance_id`.**\n\n**Instance IDs** are 4-char base36 (`0-9 a-z`) like `k7m2`, `px3a`, `9bf1`,\ndeterministic from pid + port + IDB path (reopening the same binary yields the same\nid; auto-expands to 5 chars on collision). Registry on Windows:\n`%USERPROFILE%\\.ida-mcp\\instances.json`.\n\n## BCSD signals (why it survives stripping)\n\n`similar_functions` combines, name-independently:\n- **instruction-shingle MinHash** (n-gram of the instruction stream),\n- **IDF-weighted anchors** — imported-API \u002F string \u002F constant references,\n- **CFG structure \u002F shape**,\n- **symbol-gated pseudocode tokens**.\n\n**Optional neural recall** for anchor-less cross-compiler twins the lexical\u002Fstructural\nsignals miss:\n```bash\npip install \"ida-multi-mcp[neural]\"     # extra\nsetx IDA_MCP_SIM_NEURAL 1               # enable (jTrans embeddings)\n```\nThe jTrans model auto-downloads to `~\u002F.ida-mcp\u002Fmodels\u002F` and runs **locally**. Leave it\nOFF by default (RAM + first-run download); flip it on only when MinHash+anchors return\nlow confidence on a known-moved function.\n\n## Reversecore stays PARKED (do not wire)\n\nThe `E.5` gem pairs this with the **Reversecore** mega-bundle (angr + Qiling +\nVolatility3 + binwalk + CAPA). Per the council it is **park-by-default** — do NOT wire\nit here. The capabilities the workspace actually wants from it already ride existing,\nleaner buses: `qiling-emulation` (skill), planned angr-MCP into the re-harness,\n`capa-triage`, `radare2`\u002F`ghidra-mcp`. Cherry-pick, never adopt the bundle.\n\n## Anti-overfit \u002F posture\n\n- **Rides the existing RE bus** — same IDA + idalib + re-harness seat model as the\n  wired `ida-pro-mcp`; local-only; no vector-DB, no second orchestration runtime.\n- **Purely additive** — this skill adds no hook, no gate, nothing that blocks or nags.\n- **Advisory** — a BCSD \"match\" is a ranked hypothesis; confirm the recovered address\n  by decompiling both sides (`compare_functions` + a `decompile` eyeball) before you\n  trust it as an offset. Do not act on a low-confidence twin (the \"acting on stale\n  offsets\" failure the `bc_offset_guard` module exists to prevent).\n\n## Verify\n\n```bash\n# 1) skill is well-formed \u002F vault-admissible (frontmatter parses, no angle brackets in description)\npython - \u003C\u003C'PY'\nimport re, pathlib\np = pathlib.Path.home()\u002F\".claude\u002Fskills\u002Fida-multi-mcp\u002FSKILL.md\"\nt = p.read_text(encoding=\"utf-8\"); fm = t.split(\"---\",2)[1]\nassert \"\\nname: ida-multi-mcp\" in fm and \"\\ndescription:\" in fm, \"frontmatter missing\"\ndesc = re.search(r\"\\ndescription:\\s*(.+)\", fm).group(1)\nassert \"\u003C\" not in desc and \">\" not in desc, \"angle bracket in description breaks quick_validate\"\nprint(\"SUCCESS ida-multi-mcp SKILL.md well-formed\")\nPY\n\n# 2) live smoke (only after the server is installed + wired): non-empty instance list\n#    list_instances()  -> at least one {type: gui|idalib} row\n#    idalib_open(\u003Cbinary>) ; index_functions(\u003Cid>) ; similar_functions(\u003Cid>, \u003Cfunc>)\n```\n",{"name":5,"origin":49,"metadata":50,"description":7},"user",{"gem":51,"upstream":52},"E5-ida-multi-mcp","https:\u002F\u002Fgithub.com\u002FMeroZemory\u002Fida-multi-mcp","main","a298c929b6cbd662e1fce54302ce520d5ceea1a5",".agents\u002Fskills\u002Fida-multi-mcp","https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain","https:\u002F\u002Fgithub.com\u002FPrekzursil","2026-11-02 14:30:57",{"source":8,"skillName":5,"commands":60,"prompt":70,"zipAvailable":71},[61,64,67],{"tool":62,"command":63},"npx","npx skills add Prekzursil\u002Fagent-skills-toolchain --skill ida-multi-mcp",{"tool":65,"command":66},"bunx","bunx skills add Prekzursil\u002Fagent-skills-toolchain --skill ida-multi-mcp",{"tool":68,"command":69},"pnpm","pnpm dlx skills add Prekzursil\u002Fagent-skills-toolchain --skill ida-multi-mcp","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fida-multi-mcp\u002FSKILL.md",true,[],[74,95,118,145,159,174],{"skillNo":75,"name":76,"nameZh":6,"description":77,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":78,"categories":79,"keywords":80,"publishedAt":44},"01M6DF7D7478R55P46REYH4QAC","clarify-requirements","Resolve genuine pre-execution ambiguity by scanning repo context, generating 1-6 grounded options, and asking 1-3 focused questions via AskUserQuestion. NOT for mid-task use (injection risk); NOT when the goal is already unambiguous; use to disambiguate vague prompts before any file edits.","https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002Ftools\u002Fworkspace-hooks\u002Fskills\u002Fclarify-requirements\u002FSKILL.md",[],[81,82,83,84,85,86,87,88,89,26,90,91,92,93,94],"clarify requirements","clarify","requirements","risk","options","task","prompts","goal","scanning","context","repo","injection","execution","file",{"skillNo":96,"name":97,"nameZh":6,"description":98,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":99,"categories":100,"keywords":102,"publishedAt":44},"01M6DF79CA4BHJS66J8EZDBPWJ","openmm-md","Run FREE, open-source, Windows-native GPU molecular dynamics via the openmm-md MCP (OpenMM + CUDA on the local NVIDIA GPU). Use for protein \u002F protein-ligand MD when you want a free stack or are on Windows without a Schrodinger license. Covers the full workflow (prepare, solvate, minimize, equilibrate, production, analyze, mmgbsa) AND an honest decision guide vs Schrodinger Desmond, including how to run Desmond legitimately on Linux or a cloud GPU with a real license. This is a deliberately LESSER free alternative and does NOT replace the schrodinger MCP tools. Do NOT use it to pick a free tool when a validated FEP+, WaterMap, IFD-MD, or Prime MM-GBSA result is actually required.","https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002Ftools\u002Fmcp\u002Fopenmm-md-mcp\u002Fskill\u002Fopenmm-md\u002FSKILL.md",[101],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[103,104,105,106,107,37,108,109,39,110,111,112,113,114,26,115,116,28,117,25],"openmm md","how","decision","pick","linux","tool","stack","NVIDIA","gpu","license","workflow","windows","free","molecular dynamics","do",{"skillNo":119,"name":120,"nameZh":6,"description":121,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":122,"categories":123,"keywords":130,"publishedAt":44},"01M6DF76C1MG85VEWP8VZCBNMN","visual-review","Take screenshots of web pages and UI using Playwright for visual review and iteration","https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002Ftools\u002Feditor\u002Fmetaswarm\u002Fskills\u002Fvisual-review\u002FSKILL.md",[124,127],{"categoryNo":125,"categoryName":126,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000003","演示文稿",{"categoryNo":128,"categoryName":129,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",[131,132,133,134,135,136,137,138,139,140,104,141,142,143,144],"review","visual","visual review","pages","web","false","iteration","take","check","slides","ui","screenshot","playwright","screenshots",{"skillNo":146,"name":147,"nameZh":6,"description":148,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":149,"categories":150,"keywords":151,"publishedAt":44},"01M6DF73AQVCBZKEN0YXEX9FXP","status","Diagnostic status report — shows metaswarm installation state, project setup, and potential issues","https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002Ftools\u002Feditor\u002Fmetaswarm\u002Fskills\u002Fstatus\u002FSKILL.md",[],[147,152,153,154,155,156,157,158],"setup","report","project","installation","project setup","issues","state",{"skillNo":160,"name":161,"nameZh":6,"description":162,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":163,"categories":164,"keywords":166,"publishedAt":44},"01M6DF6X6C2XB0P6GX76P7TTYV","start","Use when starting work on any task, when the user mentions metaswarm, or when the user wants to begin tracked development work","https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002Ftools\u002Feditor\u002Fmetaswarm\u002Fskills\u002Fstart\u002FSKILL.md",[165],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[161,167,86,168,169,170,26,49,171,172,173],"start issue","issue","ready","work on issue","work","work on","development",{"skillNo":175,"name":152,"nameZh":6,"description":176,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":177,"categories":178,"keywords":179,"publishedAt":44},"01M6DF6QMJ9AJKFKHHKRT005PQ","Interactive project setup — detects your project, configures metaswarm, writes project-local files","https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002Ftools\u002Feditor\u002Fmetaswarm\u002Fskills\u002Fsetup\u002FSKILL.md",[],[152,154,28,180,156,181],"files","interactive"]