A Retrieval Augmented Generation (RAG) MCP server that manages a vector database of documents, enabling semantic search and question-answering capabilities
The RAG MCP server has clear, well-structured tool definitions with consistent verb-noun naming. All 7 tools are explicitly registered with descriptions and input schemas. However, several definition quality gaps reduce the score below 70: (1) Most parameter descriptions lack constraint details (ranges, formats, enums). (2) Output schemas are inferred from response model classes but not fully documented in the descriptions themselves. (3) Error handling descriptions are absent, tools do not guide LLMs on recovery paths. (4) Some parameter descriptions are generic or incomplete. For example, 'metadata' in embed_document lacks detail on expected structure. The 'ask_question' tool signature shows inconsistency: the code expects a QuestionRequest object but the tool parameter definition shows flattened individual params. Overall, the server demonstrates solid foundational quality (naming, basic schemas) but lacks the depth and precision expected of production-grade tools (50-200 char descriptions with constraints, explicit error guidance, fully documented output contracts).
Ask a question and get an answer using RAG
Delete all chunks of a specific document from the database.
Embed a document file into the vector database.
Get comprehensive statistics about the RAG database.
Get detailed information about a specific document
List all documents currently in the database.
Search for similar documents using natural language query.
Parameter constraints not specified. 'top_k', 'min_similarity', 'context_limit' lack explicit ranges. LLMs will guess (e.g. top_k=1000) risking API errors or timeouts.
Tool descriptions lack recovery guidance. Error cases (file not found, invalid query, database full) are not mentioned. LLMs cannot infer what to do if a call fails.
Output schemas not documented in tool descriptions. Response field names, types, and structures are hidden in model classes (EmbedDocumentResponse, etc.). LLMs cannot plan downstream actions without knowing what fields are returned.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | B | 72 | <=2025-11-25 | v2 |
| 2026-03-09 | D | 50 | - | v1 |
Destructive tool (delete_document) lacks confirmation or dry-run pattern. Agents can permanently delete documents without verification, risking data loss.
Parameter documentation is generic. 'metadata' in embed_document, 'similarity_threshold' in ask_question lack specifics on format, valid values, or constraints.
Tool signature mismatch: ask_question tool definition shows flattened params but implementation expects QuestionRequest object. This inconsistency could cause runtime errors.
No pagination support. list_documents and search_documents return all results without limit or offset. Large databases will return unbounded lists, exhausting context windows.
get_document description is vague (43 chars). 'Detailed information' does not explain what fields are returned or how to use document_id. 'document_id' parameter lacks guidance on format or how to obtain one.