[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CDFTS5WKKD7BXHYZDVZX2M":3,"skill-same:01M6CDFTS5WKKD7BXHYZDVZX2M":82},{"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":43,"linkOnly":44,"markdownContent":45,"markdownBody":46,"frontMatter":47,"refName":48,"commitSha":49,"skillDirectory":50,"forksCount":51,"repositoryHtmlUrl":52,"repositoryHomepageUrl":53,"ownerHtmlUrl":54,"ownerBlogUrl":55,"ownerDescription":56,"updatedAt":57,"install":58,"resources":71},"01M6CDFTS5WKKD7BXHYZDVZX2M","mcp-discovery",null,"Find and start a zero-environment local MCP server when the session lacks a capability that no available tool, project script, or ordinary local code can cover.","codewhale-hq\u002FCodewhale","codewhale-hq","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F326694313?v=4","01M6CDD9D70AD3631SMRJ7REW4","Codewhale","01M6CDD9H0VAXYCB2NGGPZC16K",41176,"MIT","https:\u002F\u002Fgithub.com\u002Fcodewhale-hq\u002FCodewhale\u002Fblob\u002Fmain\u002Fcrates\u002Fskills\u002Fassets\u002Fskills\u002Fmcp-discovery\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],"discovery","MCP","mcp discovery","environment","when","capability","cover","can","script","project","local","session","find","tool","ZeRO","start","server","code","mcp server","2026-11-10 10:12:30",false,"---\nname: mcp-discovery\ndescription: \"Find and start a zero-environment local MCP server when the session lacks a capability that no available tool, project script, or ordinary local code can cover.\"\n---\n\n# mcp-discovery\n\nThe public MCP Registry ships hundreds of ready-made stdio servers\n(filesystems, databases, browsers, media processing, developer utilities, cloud\nAPIs, SaaS integrations, …). This skill is how you reach one when the session\nis genuinely missing a capability.\n\nIt is a fallback, not a first step. Discovery costs a `tool_search` to load the\ndeferred tools, a query, an approval, and an install — spend that only when it\nbuys a capability you do not have.\n\n## When to use\n\n- An available tool, a project script or test, or a few lines of local code\n  cannot do the job.\n- The task needs an external service, database, or protocol client that this\n  session has no access to.\n- You would otherwise install a package or reimplement a well-known converter\n  or client by hand.\n\n## When not to use\n\n- Ordinary work: writing and editing files, reading fixtures, running repo\n  commands, and checking your own output. Do those directly.\n- A capability an already-loaded tool covers, even partially — try it first.\n- A near-miss row in a result list. A scored match is a suggestion; the missing\n  capability is what decides.\n\n## Workflow\n\n1. **Name the gap.** State the capability you lack before searching. If you\n   cannot name one, you do not need the Registry.\n2. **Load and query.** `registry_sync` and `start_registry_mcp_server` are\n   deferred: load one with `tool_search` and use the returned schema. If a call\n   only loads the schema without executing, retry once with that schema. Then call\n   `registry_sync {query: \"\u003Cthe missing capability>\"}`. It scores a host-side\n   snapshot and returns at most eight matches; the full index never enters the\n   conversation. Packages declaring any environment variable (including API\n   keys\u002Ftokens) are excluded and never written to the cache.\n3. **Judge the matches.** Take a server when it covers the gap you named. If\n   nothing does, refine the query once, then continue with local tools.\n4. **Install + run transactionally.** Call\n   `start_registry_mcp_server {registry_name: \"\u003Cexact name>\", arguments: {...}}`.\n   Supply only values listed in `required_args`; omit `arguments` when none are\n   required. Never install or launch the package through the shell. Starting a\n   server requires approval.\n5. **Solve the task with the new tools.** Their complete schemas are added to\n   the current turn immediately after a successful connection; call the exact\n   names returned by the start result.\n\n## If a server fails to start\n\n`start_registry_mcp_server` reports when a package exits before the handshake\n(often CLI help output = incomplete launch args). Verify the exact required\narguments, retry once with the corrected structured values, and if it still\nfails move on to the next candidate or to a local approach. Failed starts are\nrolled back, so retrying the same Registry name is safe.\n\n## Don't\n\n- Don't attempt to pass env vars or secrets; this flow has no env channel.\n- Don't reconstruct or edit the Registry-provided package command.\n","# mcp-discovery\n\nThe public MCP Registry ships hundreds of ready-made stdio servers\n(filesystems, databases, browsers, media processing, developer utilities, cloud\nAPIs, SaaS integrations, …). This skill is how you reach one when the session\nis genuinely missing a capability.\n\nIt is a fallback, not a first step. Discovery costs a `tool_search` to load the\ndeferred tools, a query, an approval, and an install — spend that only when it\nbuys a capability you do not have.\n\n## When to use\n\n- An available tool, a project script or test, or a few lines of local code\n  cannot do the job.\n- The task needs an external service, database, or protocol client that this\n  session has no access to.\n- You would otherwise install a package or reimplement a well-known converter\n  or client by hand.\n\n## When not to use\n\n- Ordinary work: writing and editing files, reading fixtures, running repo\n  commands, and checking your own output. Do those directly.\n- A capability an already-loaded tool covers, even partially — try it first.\n- A near-miss row in a result list. A scored match is a suggestion; the missing\n  capability is what decides.\n\n## Workflow\n\n1. **Name the gap.** State the capability you lack before searching. If you\n   cannot name one, you do not need the Registry.\n2. **Load and query.** `registry_sync` and `start_registry_mcp_server` are\n   deferred: load one with `tool_search` and use the returned schema. If a call\n   only loads the schema without executing, retry once with that schema. Then call\n   `registry_sync {query: \"\u003Cthe missing capability>\"}`. It scores a host-side\n   snapshot and returns at most eight matches; the full index never enters the\n   conversation. Packages declaring any environment variable (including API\n   keys\u002Ftokens) are excluded and never written to the cache.\n3. **Judge the matches.** Take a server when it covers the gap you named. If\n   nothing does, refine the query once, then continue with local tools.\n4. **Install + run transactionally.** Call\n   `start_registry_mcp_server {registry_name: \"\u003Cexact name>\", arguments: {...}}`.\n   Supply only values listed in `required_args`; omit `arguments` when none are\n   required. Never install or launch the package through the shell. Starting a\n   server requires approval.\n5. **Solve the task with the new tools.** Their complete schemas are added to\n   the current turn immediately after a successful connection; call the exact\n   names returned by the start result.\n\n## If a server fails to start\n\n`start_registry_mcp_server` reports when a package exits before the handshake\n(often CLI help output = incomplete launch args). Verify the exact required\narguments, retry once with the corrected structured values, and if it still\nfails move on to the next candidate or to a local approach. Failed starts are\nrolled back, so retrying the same Registry name is safe.\n\n## Don't\n\n- Don't attempt to pass env vars or secrets; this flow has no env channel.\n- Don't reconstruct or edit the Registry-provided package command.\n",{"name":5,"description":7},"main","654aa776d6bcb98292d4c7c5841fed871e1ba5bd","crates\u002Fskills\u002Fassets\u002Fskills\u002Fmcp-discovery",3571,"https:\u002F\u002Fgithub.com\u002Fcodewhale-hq\u002FCodewhale","https:\u002F\u002Fcodewhale.net\u002F","https:\u002F\u002Fgithub.com\u002Fcodewhale-hq","https:\u002F\u002Fcodewhale.net","Open-source coding agent for your terminal. Works with the model provider you choose.","2026-11-12 02:35:28",{"source":8,"skillName":5,"commands":59,"prompt":69,"zipAvailable":70},[60,63,66],{"tool":61,"command":62},"npx","npx skills add codewhale-hq\u002FCodewhale --skill mcp-discovery",{"tool":64,"command":65},"bunx","bunx skills add codewhale-hq\u002FCodewhale --skill mcp-discovery",{"tool":67,"command":68},"pnpm","pnpm dlx skills add codewhale-hq\u002FCodewhale --skill mcp-discovery","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fcodewhale-hq\u002FCodewhale\u002Fblob\u002Fmain\u002Fcrates\u002Fskills\u002Fassets\u002Fskills\u002Fmcp-discovery\u002FSKILL.md",true,[72,78],{"path":73,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":76,"sourceHtmlUrl":77},"references\u002Fdeep-module-design.md","REFERENCE","参考文档",5703,"https:\u002F\u002Fgithub.com\u002Fngocsangyem\u002FMeowKit\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fimprove-codebase-architecture\u002Freferences\u002Fdeep-module-design.md",{"path":79,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":80,"sourceHtmlUrl":81},"SKILL.generation-10.md",3243,"https:\u002F\u002Fgithub.com\u002Fcodewhale-hq\u002FCodewhale\u002Fblob\u002Fmain\u002Fcrates\u002Fskills\u002Fassets\u002Fskills\u002Fmcp-discovery\u002FSKILL.generation-10.md",[83,109,133,153,166,173],{"skillNo":84,"name":85,"nameZh":6,"description":86,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":87,"categories":88,"keywords":89,"publishedAt":43},"01M6CDJRMPR8FX1WVFP94PGDMD","gh-find-prs","Survey the open Codewhale PR and issue queue read-only: fetch each item, check it against current code, and produce one coverage and disposition matrix with cited evidence and credit owed.","https:\u002F\u002Fgithub.com\u002Fcodewhale-hq\u002FCodewhale\u002Fblob\u002Fmain\u002Fdocs\u002Fskills\u002Fgh-find-prs\u002FSKILL.md",[],[36,90,91,92,93,94,95,96,97,98,99,100,101,41,102,103,104,105,106,107,108],"gh find prs","gh","prs","produce","with","read-only","matrix","codewhale","queue","issue","read","check","only","open","survey","pr","evidence","fetch","coverage",{"skillNo":110,"name":111,"nameZh":6,"description":112,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":113,"categories":114,"keywords":116,"publishedAt":43},"01M6CDJP0ZYMQNA6AN028X7A96","gh-file-issue","Use when filing a new Codewhale GitHub issue: turn a bug or idea into a well-formed, actionable issue with repro, acceptance criteria, labels, and milestone.","https:\u002F\u002Fgithub.com\u002Fcodewhale-hq\u002FCodewhale\u002Fblob\u002Fmain\u002Fdocs\u002Fskills\u002Fgh-file-issue\u002FSKILL.md",[115],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[117,91,118,119,99,120,121,122,28,123,124,125,126,97,127,128,129,94,130,131,132],"file issue","file","gh file issue","milestone","idea","filing","new","labels","acceptance","actionable","bug","github issue","github","acceptance criteria","repro","use",{"skillNo":134,"name":135,"nameZh":6,"description":136,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":137,"categories":138,"keywords":140,"publishedAt":43},"01M6CDJJZB0G4XHWWBD12S990C","gh-close-issues","Close resolved Codewhale issues only after verifying the landed behavior: Refs #N per landing, Fixes #N only when the reporter's scenario was reproduced, closure at the release step or on the reporter's confirmation, always with a crediting comment.","https:\u002F\u002Fgithub.com\u002Fcodewhale-hq\u002FCodewhale\u002Fblob\u002Fmain\u002Fdocs\u002Fskills\u002Fgh-close-issues\u002FSKILL.md",[139],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[141,142,143,91,144,145,146,147,94,28,148,149,97,150,151,102,152],"gh close issues","close","issues","at","release","reporter","scenario","closure","fixes","behavior","confirmation","landing",{"skillNo":154,"name":155,"nameZh":6,"description":156,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":157,"categories":158,"keywords":160,"publishedAt":43},"01M6CDJGR688JJVTG0A1ETBJGQ","gh-assign-issues","Use to assign GitHub issues to a milestone and\u002For owners in bulk, verifying each.","https:\u002F\u002Fgithub.com\u002Fcodewhale-hq\u002FCodewhale\u002Fblob\u002Fmain\u002Fdocs\u002Fskills\u002Fgh-assign-issues\u002FSKILL.md",[159],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[161,91,143,162,132,129,120,163,164,165],"gh assign issues","assign","bulk","github issues","owners",{"skillNo":167,"name":168,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":169,"categories":170,"keywords":172,"publishedAt":43},"01M6CDJEBMKBAGTBG18N5YJNSE","feedback","https:\u002F\u002Fgithub.com\u002Fcodewhale-hq\u002FCodewhale\u002Fblob\u002Fmain\u002Fdocs\u002Fskills\u002Ffeedback\u002FSKILL.md",[171],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[168],{"skillNo":174,"name":175,"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":180,"publishedAt":43},"01M6CDJBRQ86PP9XNXQMRB1CGX","cw-slice","Use before writing code for any Codewhale feature, upgrade, or refactor: find the existing owner of the behavior, bound the change to one reviewable slice, and fix the evidence bar before you start.","https:\u002F\u002Fgithub.com\u002Fcodewhale-hq\u002FCodewhale\u002Fblob\u002Fmain\u002Fdocs\u002Fskills\u002Fcw-slice\u002FSKILL.md",[179],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[181,182,39,183,184,185,186,187,188,97,189,150,36,190,41,132,191,192,106],"slice","cw slice","bar","you","Existing","upgrade","for","feature","refactor","change","writing","fix"]