A thin stdio bridge that exposes the Skill Shelf registry to any MCP-compatible agent. Each tool proxies to the REST API, keeping the HTTP server the single source of truth.
Skill Shelf MCP has clear, action-oriented tool names (route_skill, search_skills, fetch_skill, read_skill_file, get_config, submit_feedback) that follow verb_noun conventions. Descriptions are present and moderately detailed (80-150 chars), explaining WHAT each tool does and WHEN to use it. Input schemas are visible with type definitions and parameter descriptions. However, output schemas are not documented, LLMs cannot predict response structure for downstream chaining. Error handling is minimal; no recovery guidance or actionable error messages. The submit_feedback tool is the only write operation, but lacks confirmation/dry-run pattern. Parameter descriptions could be more prescriptive about formats and constraints (e.g., top_k range, mode enum values). Overall: solid foundation, but missing output documentation and error recovery patterns that distinguish A-grade tools.
Load a skill for use: returns the full SKILL.md text plus the list of bundled files (activation). Use read_skill_file to read a specific script/reference.
Fetch this service's published config for a namespace from the config center (already merged with the shared _global layer). Requires SKILL_SHELF_CONFIG_TOKEN. Returns a flat key→value JSON — use it instead of reading environment variables.
Read one bundled file's content from a skill (execution) — e.g. a script or reference.
Find skills for a need. mode=fuzzy ranks by relevance; mode=exact resolves a skill by name. Returns name, description, score.
Browse/search skills by substring and/or kind. Returns metadata only (discovery).
Give feedback on a skill after using it (-1/0/+1 + note). Closes the improvement loop.
Output schemas not documented. LLMs cannot predict response structure (fields, types, nesting) for route_skill, search_skills, fetch_skill, read_skill_file, get_config, submit_feedback. This breaks tool chaining and forces agents to guess at field names.
No error recovery guidance. Tools return errors but do not tell LLMs what to do next (retry, call alternative tool, ask user). E.g., if route_skill finds no matches, should the agent try search_skills or ask the user to rephrase?
Parameter constraints not formalized. 'mode' in route_skill accepts 'fuzzy' or 'exact' but is documented as free-form string, not enum. top_k lacks min/max bounds. LLMs may pass invalid values.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 57 | 2026-07-28+ | v2 |
submit_feedback (write operation) lacks confirmation/dry-run pattern. Agents cannot preview feedback before submitting. No idempotency guarantee, repeated calls may create duplicate feedback records.
get_config requires SKILL_SHELF_CONFIG_TOKEN but does not document what happens if token is missing or invalid. Error message should guide user to set environment variable or contact admin.