Exposes RAG retrieval as Model Context Protocol tools for hybrid Azure AI Search + Azure OpenAI knowledge base queries
Two tools with basic schemas and descriptions, but significant gaps in parameter documentation and output schema clarity. search_knowledge_base has a reasonable description (89 chars) and two typed parameters with descriptions. get_document has a minimal description (54 chars) and one parameter. Neither tool documents output schema structure, which is critical for LLM planning. No error handling guidance, no parameter constraints (e.g., top_k bounds), and no indication of what fields are returned. Naming is clear (verb_noun pattern), but descriptions lack context on when to use each tool vs. the other, and do not explain the citation/relevance score structure returned.
Return the full text and metadata for a document id.
Search the knowledge base; returns the most relevant passages with a citation (doc_id, title, source) and a relevance score.
Output schemas not documented. LLMs cannot plan downstream calls or extract citation fields (doc_id, title, source, relevance_score) without knowing the response structure.
Parameter constraints missing. top_k has no min/max bounds; LLMs could pass 0, negative, or absurdly large values. No enum or range specified.
No error handling guidance. If doc_id is invalid or knowledge base is empty, LLMs receive no recovery hints (e.g., 'Try search_knowledge_base first').
Tool descriptions lack differentiation. Both tools operate on the knowledge base; descriptions do not explain when to call search vs. get_document, or what each returns.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 49 | <=2025-11-25 | v2 |
No pagination or result limits documented. search_knowledge_base returns top_k results but does not specify max result size, token cost, or whether results are paginated.