MCP server for RAG (Retrieval-Augmented Generation) knowledge system providing AI agents with semantic search capabilities over project documentation
The MCP RAG server provides 5 semantic search and knowledge-base tools with reasonably complete schemas and descriptions. Most tools follow verb_noun naming conventions (rag_search, rag_get_examples, rag_suggest_patterns, rag_validate_approach, rag_get_stats) and have parameter descriptions. However, several critical gaps reduce quality: (1) output schemas are completely undocumented, the source code shows parameter inputs but no indication of what these tools return, forcing LLMs to guess at response structure; (2) error handling guidance is absent, tools provide no recovery hints for common failures; (3) descriptions, while present, are moderately detailed but lack the precision needed for optimal LLM tool selection (e.g., 'Validate if a proposed implementation approach follows documented best practices' does not specify what 'documented best practices' means or what failure looks like); (4) one tool (rag_get_stats) has an empty input schema {}, which is acceptable but not ideal for discoverability. Parameter constraints are strong in most tools (enums for categories, complexity, domain, language), and parameter descriptions are specific. No security issues detected (read-only operations, no secrets exposed). Overall, this is solidly above-average in parameter definition but significantly hampered by missing output documentation and weak error handling guidance.
Get specific code examples and implementation patterns for development tasks
Get statistics about the RAG knowledge base
Search project documentation and code examples semantically using natural language queries
Get architectural patterns and best practices for specific development contexts
Validate if a proposed implementation approach follows documented best practices
Output schemas are completely undocumented. Source code shows no indication of what rag_search, rag_get_examples, rag_suggest_patterns, rag_validate_approach, and rag_get_stats return. LLMs cannot plan downstream operations or extract relevant fields without knowing response structure.
No error handling guidance. Tools provide no actionable error messages or recovery hints. If rag_search fails due to invalid threshold or missing database, LLMs receive no direction on what to do next.
Tool descriptions lack specificity. 'Search project documentation and code examples semantically' does not explain what 'semantically' means in practice, what relevance scoring is used, or how 'categories' filter applies. Descriptions should include WHAT the tool does, WHEN to use it, and what it returns.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 47 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 46 | - | v1 |
rag_suggest_patterns has a nullable parameter (serviceType with default: null) that is not well-motivated. Descriptions do not explain when an LLM should or should not provide this value, creating ambiguity about whether omitting it is safe.
rag_get_stats has an empty input schema ({}). While not strictly invalid, this reduces tool discoverability and doesn't indicate whether the tool returns category counts, document counts, file counts, or all of the above.