{"id":"5d25f88c-d961-4d5a-8676-1045ba686129","shortId":"UEuzVm","kind":"skill","title":"mcp-skill-vs-prompt-discovery-filtering","tagline":"Ensure SkillTool only exposes MCP skills when they are registered as prompt-based commands and dedupe them against local commands.","description":"# SKILL: MCP Skill vs Prompt Discovery Filtering\n**Domain:** tool-design\n**Trigger:** Apply when SkillTool enumerates commands to decide which slash commands should be available, ensuring MCP prompt skills are disambiguated from generic prompts.\n**Source Pattern:** Distilled from reviewed command discovery, MCP integration, and skill-surface implementations.\n\n## Core Method\nInspect the MCP-discovered command surface, keep only entries that are actually prompt-based skills, and merge them with the local command registry into one unified list. Deduplicate by command name before validation or execution so MCP-discovered prompts cannot shadow or duplicate local skills by accident. Preserve source metadata so permission checks, telemetry, and UX can still tell whether a skill came from MCP or from a local registry.\n\n## Key Rules\n- Always filter MCP commands by `cmd.type === 'prompt'` before merging; prompts of other types should stay hidden because SkillTool only handles prompt-based skills.\n- Merge the filtered MCP list with the local command registry and dedupe by name so remote skills do not conflict with bundled commands.\n- Preserve metadata like `loadedFrom` or other source identifiers so permission checks and telemetry can tell whether the skill came from MCP or local registries.\n\n## Example Application\nIf an MCP server exposes a prompt named `changelog` and the local registry already has one, run this filter before permission checks so the merged skill surface stays coherent and the MCP entry does not silently shadow the local one.\n\n## Anti-Patterns (What NOT to do)\n- Do not merge MCP prompts without filtering type or deduping, which would let MCP prompts masquerade as local skills and break strict permission rules.\n- Do not treat MCP prompts as regular `prompt` commands without marking `loadedFrom:'mcp'`, because telemetry and permission prompts rely on knowing which commands were discovered versus bundled.","tags":["mcp","skill","prompt","discovery","filtering","cskill","agents","ychampion","agent-skills","ai-agents","cli","coding-agents"],"capabilities":["skill","source-ychampion","skill-mcp-skill-vs-prompt-discovery-filtering","topic-agent-skills","topic-ai-agents","topic-cli","topic-coding-agents","topic-context-engineering","topic-developer-tools","topic-mcp","topic-multi-agent","topic-terminal-ui"],"categories":["cskill-agents"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/ychampion/cskill-agents/mcp-skill-vs-prompt-discovery-filtering","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add ychampion/cskill-agents","source_repo":"https://github.com/ychampion/cskill-agents","install_from":"skills.sh"}},"qualityScore":"0.467","qualityRationale":"deterministic score 0.47 from registry signals: · indexed on github topic:agent-skills · 34 github stars · SKILL.md body (1,943 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-22T06:56:50.754Z","embedding":null,"createdAt":"2026-04-18T22:20:41.139Z","updatedAt":"2026-04-22T06:56:50.754Z","lastSeenAt":"2026-04-22T06:56:50.754Z","tsv":"'accid':128 'actual':91 'alreadi':240 'alway':154 'anti':268 'anti-pattern':267 'appli':41 'applic':226 'avail':53 'base':21,94,176 'break':294 'bundl':199,324 'came':144,219 'cannot':121 'changelog':235 'check':134,211,248 'cmd.type':159 'coher':255 'command':22,28,45,50,68,84,102,110,157,186,200,306,320 'conflict':197 'core':77 'decid':47 'dedup':24,189,283 'dedupl':108 'design':39 'disambigu':59 'discov':83,119,322 'discoveri':6,34,69 'distil':65 'domain':36 'duplic':124 'ensur':8,54 'entri':88,259 'enumer':44 'exampl':225 'execut':115 'expos':11,231 'filter':7,35,155,180,245,280 'generic':61 'handl':173 'hidden':169 'identifi':208 'implement':76 'inspect':79 'integr':71 'keep':86 'key':152 'know':318 'let':286 'like':203 'list':107,182 'loadedfrom':204,309 'local':27,101,125,150,185,223,238,265,291 'mark':308 'masquerad':289 'mcp':2,12,30,55,70,82,118,146,156,181,221,229,258,277,287,301,310 'mcp-discov':81,117 'mcp-skill-vs-prompt-discovery-filt':1 'merg':97,162,178,251,276 'metadata':131,202 'method':78 'name':111,191,234 'one':105,242,266 'pattern':64,269 'permiss':133,210,247,296,314 'preserv':129,201 'prompt':5,20,33,56,62,93,120,160,163,175,233,278,288,302,305,315 'prompt-bas':19,92,174 'regist':17 'registri':103,151,187,224,239 'regular':304 'reli':316 'remot':193 'review':67 'rule':153,297 'run':243 'server':230 'shadow':122,263 'silent':262 'skill':3,13,29,31,57,74,95,126,143,177,194,218,252,292 'skill-mcp-skill-vs-prompt-discovery-filtering' 'skill-surfac':73 'skilltool':9,43,171 'slash':49 'sourc':63,130,207 'source-ychampion' 'stay':168,254 'still':139 'strict':295 'surfac':75,85,253 'telemetri':135,213,312 'tell':140,215 'tool':38 'tool-design':37 'topic-agent-skills' 'topic-ai-agents' 'topic-cli' 'topic-coding-agents' 'topic-context-engineering' 'topic-developer-tools' 'topic-mcp' 'topic-multi-agent' 'topic-terminal-ui' 'treat':300 'trigger':40 'type':166,281 'unifi':106 'ux':137 'valid':113 'versus':323 'vs':4,32 'whether':141,216 'without':279,307 'would':285","prices":[{"id":"28f87d0e-be98-4b88-9fa2-e8d2a99ab34d","listingId":"5d25f88c-d961-4d5a-8676-1045ba686129","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"ychampion","category":"cskill-agents","install_from":"skills.sh"},"createdAt":"2026-04-18T22:20:41.139Z"}],"sources":[{"listingId":"5d25f88c-d961-4d5a-8676-1045ba686129","source":"github","sourceId":"ychampion/cskill-agents/mcp-skill-vs-prompt-discovery-filtering","sourceUrl":"https://github.com/ychampion/cskill-agents/tree/main/skills/mcp-skill-vs-prompt-discovery-filtering","isPrimary":false,"firstSeenAt":"2026-04-18T22:20:41.139Z","lastSeenAt":"2026-04-22T06:56:50.754Z"}],"details":{"listingId":"5d25f88c-d961-4d5a-8676-1045ba686129","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"ychampion","slug":"mcp-skill-vs-prompt-discovery-filtering","github":{"repo":"ychampion/cskill-agents","stars":34,"topics":["agent-skills","ai-agents","cli","coding-agents","context-engineering","developer-tools","mcp","multi-agent","terminal-ui"],"license":"mit","html_url":"https://github.com/ychampion/cskill-agents","pushed_at":"2026-04-04T14:13:23Z","description":"Agent skills for coding CLIs, multi-agent runtimes, context engines, MCP extensions, and terminal tooling. Instead of using claude code's source code, give your agent skills to create your own!","skill_md_sha":"be6afc0b3b93a801e084acf8a4c7f9694ac42c42","skill_md_path":"skills/mcp-skill-vs-prompt-discovery-filtering/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/ychampion/cskill-agents/tree/main/skills/mcp-skill-vs-prompt-discovery-filtering"},"layout":"multi","source":"github","category":"cskill-agents","frontmatter":{"name":"mcp-skill-vs-prompt-discovery-filtering","description":"Ensure SkillTool only exposes MCP skills when they are registered as prompt-based commands and dedupe them against local commands."},"skills_sh_url":"https://skills.sh/ychampion/cskill-agents/mcp-skill-vs-prompt-discovery-filtering"},"updatedAt":"2026-04-22T06:56:50.754Z"}}