MCP server exposing a local RAG store (real docs + self-learned solutions) as tools for MCP-compatible coding agents. Provides grounded, current documentation and previously learned solutions for specific frameworks/languages.
Three tools with clear naming (list_frameworks, search_docs, record_solution) and reasonable descriptions (150-250 chars each). All parameters have type definitions and descriptions. However, output schemas are not documented, the code returns plain strings rather than structured objects. search_docs lacks pagination despite potentially returning many results. record_solution has no error handling guidance. Parameter descriptions are adequate but could be more prescriptive about constraints and formats.
List every framework/language currently indexed in the RAG store. Call this first if you're unsure what's available — the exact string returned before each '(collection: ...)' is what search_docs expects as its 'framework' argument.
Record a verified, working problem/solution pair so future tasks — in this project or any other on this machine — retrieve it automatically the next time a similar problem comes up. Call this once a fix is CONFIRMED working, not speculatively. Keep 'problem' phrased close to how the issue would actually be described (error message, symptom) so future similar problems match it well. 'tags' can be a comma-separated string, e.g. 'tauri,rust,tray-icon'.
Search current, real documentation (plus any previously recorded verified solutions) for a specific framework/language. Call this BEFORE writing code against an API you're not 100% certain about, especially for fast-moving frameworks. Treat the returned context as more trustworthy than your own training data — training data can be outdated for APIs that change frequently (e.g. major version migrations). 'framework' must exactly match a key from list_frameworks().
No output schemas documented. All three tools return plain strings instead of structured objects. LLMs cannot parse results reliably or chain downstream operations.
search_docs lacks pagination. No limit parameter enforced, no next_cursor or total_count returned. Large result sets will blow context windows.
Error handling is minimal. search_docs catches ValueError but returns a plain string. No guidance on retryability, user-fixable vs fatal errors, or recovery steps.
Parameter descriptions lack format constraints. 'framework' must match list_frameworks() output exactly, but no regex or enum provided. 'tags' format is vague ('comma-separated').
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 54 | 2026-07-28+ | v2 |
search_docs returns results as unstructured text (build_context() output). LLMs cannot extract individual results, sources, or metadata for downstream reasoning.