MCP server that exposes the ASK skill library to any MCP-capable agent. Provides read-only access to discover and retrieve skill content at runtime for inline use.
Three tools with basic descriptions but critical schema gaps. list_skills and search_skills return untyped lists/dicts (no documented output schema). get_skill returns Optional[Dict] with no field documentation. Parameter descriptions exist but are minimal (10-50 chars). No error handling guidance, no pagination support despite search_skills returning lists. Naming is clear (verb_noun pattern), but schema completeness is severely lacking. Per-tool averages: naming 75, description 45, schema 15.
Fetch a skill's full instruction body so you can apply it inline. Returns null if no skill matches `name`; call search_skills first if you are unsure of the exact name.
List every available skill (name, description, category, triggers).
Find skills matching a free-text need, ranked by relevance. Use this when you realise mid-task you need a capability — e.g. 'scaffold a fastapi service' or 'review code for security issues'.
No output schemas documented. list_skills returns List[Dict], search_skills returns List[Dict], get_skill returns Optional[Dict], all with zero field documentation. LLMs cannot infer what fields to expect or how to chain results to downstream tools.
search_skills accepts 'limit' parameter but no pagination guidance. Returns potentially large result sets with no documented max, no next_cursor, no total_count. Large unstructured lists waste tokens and risk context window exhaustion.
Parameter descriptions are minimal (10-50 chars). 'query' in search_skills has 50-char description; 'name' in get_skill has 35 chars. Rubric baseline is 72 chars. Descriptions lack context on format, constraints, or when to use each tool vs alternatives.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 45 | 2026-07-28+ | v2 |
No error handling guidance. get_skill returns 'null if no skill matches' but no recovery hint (e.g., 'call search_skills first'). search_skills returns 'No skills found' with no next steps. Agents cannot self-correct on failures.
Tool descriptions lack WHEN/WHY context. search_skills says 'Find skills matching a free-text need' but does not explain when to call it vs list_skills, or what 'relevance ranking' means. Minimal guidance for LLM tool selection.