Dynamic RAG-powered skills for code assistants via Model Context Protocol
This server defines 5 tools with moderate quality. All tools have descriptions (avg ~280 chars, within baseline range), but schemas vary significantly in completeness. Tool naming follows verb-noun patterns (find, skill, search, get, recommend) which is good. However, schema documentation is inconsistent, input parameters are well-described in the specs provided, but output schemas are entirely undocumented across all tools. The `find` tool consolidates 4 separate concerns into one overloaded interface (semantic, graph, category, template, recommend), violating single-responsibility principle. Error handling is not evident in the source code provided. The `skill` tool's 'reindex' action with side effects (rebuilds indices) lacks a confirmation pattern and is risky. Two tools (skills_search, skill_get, skills_recommend) appear to be legacy duplicates or overlapping functionality with the newer `find` tool, creating composition confusion.
Find and discover skills using semantic search, knowledge graph recommendations, category browsing, or template queries. This unified tool provides semantic search, graph-based discovery, category filtering, template listing, and intelligent skill recommendations for Python, TypeScript, JavaScript, Rust, Go, Java, PHP, and Ruby toolchains. Search across categories including testing, deployment, security, architecture, debugging, refactoring, performance, and best-practices. Unified discovery tool replacing 4 separate tools with a single entry point. Use the 'by' parameter to select search method: semantic, graph, category, template, or recommend.
Read skill details, view skill instructions and examples, or rebuild search indices for skill discovery. This tool provides read access to skill metadata, instructions, examples, and dependencies. Use action="read" to view complete skill details including instructions and code examples. Use action="reindex" to rebuild vector search indices and knowledge graph for updated skill discovery. Available Actions: - read: Get complete skill details, view instructions, examples, and metadata - reindex: Rebuild search indices (vector store + knowledge graph) for skill discovery Note: Write operations (create/update/delete) are available via CLI only. Use `mcp-skillset build-skill` for creating skills, or edit skill files directly for updates.
Get complete skill details including instructions. Retrieves full skill data from the skill manager's cache or loads from disk if not cached. Returns all skill metadata plus complete instruction text in markdown format.
Recommend skills based on current context. Provides skill recommendations using two strategies: 1. Project-Based Recommendations (if project_path provided): - Uses ToolchainDetector to analyze project structure - Recommends skills matching detected toolchains - Sorted by relevance to detected patterns 2. Skill-Based Recommendations (if current_skill provided): - Uses knowledge graph to find related skills - Considers: dependencies, same category, shared tags - Ranked by relationship strength At least one of current_skill or project_path must be provided.
No output schemas documented for any tool. Tools return unstructured or undocumented response formats, forcing LLMs to guess what fields are available.
Tool `find` conflates 5 distinct search strategies (semantic, graph, category, template, recommend) into one overloaded tool. Violates single-responsibility principle and complicates agent reasoning.
Multiple tools provide overlapping/redundant functionality: `find` (by=semantic) vs `skills_search`; `skill` (action=read) vs `skill_get`; `find` (by=recommend) vs `skills_recommend`. Agent must decide between similar tools, wasting reasoning cycles.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 55 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 33 | - | v1 |
Search for skills using hybrid RAG (70% vector + 30% knowledge graph). Searches skill repository using semantic similarity (ChromaDB) combined with knowledge graph relationships (NetworkX). This hybrid approach provides both fuzzy natural language matching and explicit dependency relationships. Search Strategy: - 70% Vector Search: Semantic similarity via embeddings - 30% Knowledge Graph: Structural relationships and dependencies - Filters: Optional toolchain, category, and tag filtering
Tool `skill` action='reindex' modifies server state (rebuilds indices) without confirmation, dry-run, or error recovery pattern. Risky for agents that may trigger it unintentionally.
Tool naming inconsistency: 'skill_get' and 'skill_search' violate verb_noun convention (should be 'get_skill', 'search_skills'). Mixed naming style harms discoverability.
Mutual-exclusive parameters documented in description text ('At least one of current_skill or project_path') but not enforced in schema (no oneOf/anyOf constraint). LLMs may pass both or neither.
No error handling or recovery guidance visible in tool definitions. Tools do not indicate retryability, user-fixability, or what the agent should do on failure.
Parameters like 'skill_id', 'project_path' accept only system identifiers; no support for human-friendly names (e.g., 'pytest-skill' vs 'skill-123'). Forces agents to resolve names separately or use opaque IDs.