An MCP server for managing and querying vector-based knowledge bases with document processing, retrieval, and API key management.
Server has 2 tools with basic schema coverage and descriptions present, but significant quality gaps limit production readiness. Tool naming follows verb-noun conventions (greeting, query_knowledge_base), which is correct. However, descriptions are sparse and lack the depth needed for reliable LLM tool selection. The 'greeting' tool is a trivial demo and shouldn't be in a production KB server. query_knowledge_base has adequate schema structure but lacks output schema documentation, error handling guidance, and critical parameter documentation details (e.g., what constitutes a valid knowledge_base_id, what format results are returned in). No evidence of enum constraints, validation rules, or recovery guidance in error cases. Security appears sound (no exposed credentials in parameters), but audit trail and permission checks are not documented.
Greet a person with their name.
Query a specific knowledge base return answer with context.
No output schema documentation for either tool. LLMs cannot infer what fields to expect or plan downstream tool calls. Critical for query_knowledge_base which is the primary production tool.
query_knowledge_base description lacks critical details: What format is the answer returned in? Are there metadata fields (confidence score, source document, chunk position)? When should top_k be adjusted? What happens if knowledge_base_ids don't exist?
Parameter knowledge_base_ids accepts a list of integers with no validation guidance. Description does not specify: are these UUIDs or auto-increment IDs? What happens if an ID is invalid? Should agents validate first or will the tool return a helpful error?
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 59 | 2026-07-28+ | v2 |
| 2026-03-09 | D | 55 | - | v1 |
No error handling or recovery guidance. If knowledge_base_ids don't exist, what does the LLM receive? If query returns no results, how should it respond? No guidance on retryability or user-fixable vs fatal errors.
'greeting' tool is a demo/test utility in a production KB server. This clutters the tool namespace and should be removed or gated behind a debug flag.
top_k parameter defaults to 10 with no documented rationale or constraints (min/max). What happens if top_k=0 or top_k=10000? Are there performance implications the LLM should know about?