MCP server for retrieving context from a Qdrant vector database
Two tools with basic schemas and descriptions, but significant gaps in parameter documentation and output structure. Tool names lack action verbs (qdrant-store, qdrant-find are noun-based rather than verb_noun). Descriptions exist but are generic and lack WHEN/WHY guidance. Parameter descriptions are minimal. No output schema documented. Error handling absent. Metadata parameter handling is problematic (marked non-optional but can be None, violating schema contract). No pagination support despite search returning lists.
Look up memories in Qdrant. Use this tool when you need to: - Find memories by their content - Access memories for further analysis - Get some personal information about the user
Keep the memory for later use, when you are asked to remember something.
Tool names lack action verbs. 'qdrant-store' and 'qdrant-find' are noun-based; should be 'store_memory' and 'search_memory' or 'find_memory'. LLMs infer intent from verb_noun patterns.
No output schema documented. find() returns List[str] with XML-like formatting, but LLMs cannot parse unstructured XML embedded in strings. Should return structured objects with typed fields (content, metadata, score).
Parameter descriptions are minimal or missing. 'metadata' param in store() has description 'JSON metadata to store with the information, optional' but is marked non-optional in schema (Metadata = None violates contract). 'filter_metadata' in find() lacks guidance on structure/format.
No pagination support. find() accepts limit but no offset/cursor or total_count in response. Returning all results up to limit without pagination metadata risks context window exhaustion and prevents multi-page iteration.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 36 | <=2025-11-25 | v2 |
No error handling or recovery guidance. If search returns no results, response is 'No information found...' but no guidance on what to do next (retry with different query, adjust threshold, etc.). No validation of score_threshold range (0.0-1.0).