MCP Server for interacting with Qdrant vector database
Server has 9 tools with basic schemas and descriptions, but significant gaps limit production readiness. All tools have descriptions (10-100 chars, mostly adequate) and input schemas with types. However, parameter descriptions are sparse or missing context. No output schemas documented. Error handling is absent, tools will fail silently or return raw exceptions. No tool annotations (readOnlyHint/destructiveHint). Naming is clear (verb_noun pattern) but some tools conflate concerns (store_text + search_similar_text in same module). No pagination support despite search tools. Missing validation guidance and recovery hints.
Count the number of points in a collection.
Delete points by their IDs from a collection.
Search for points in a collection using filters.
Get points by their IDs from a collection.
Convert query text to an embedding and find similar vectors.
Search for similar vectors in a collection.
Convert text to an embedding vector and store it in the database.
No output schemas documented. LLMs cannot predict response structure, forcing them to guess at field names and types for downstream tool chaining.
No error handling or recovery guidance. Tools will fail with raw exceptions or silent failures. LLMs have no actionable next steps (retry, lookup, ask user).
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). LLMs cannot distinguish safe reads from destructive writes, risking accidental data loss.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 51 | <=2025-11-25 | v2 |
Convert multiple texts to embedding vectors and store them in the database.
Upload vectors to a collection.
Search tools (search_similar_text, search_vectors, filter_search) lack pagination (limit/offset/cursor). Large result sets will blow context window; no guidance on result capping.
Parameter descriptions are minimal or missing context. E.g., 'filter_json' in filter_search lacks format/example; 'metadata' in store_text lacks structure guidance. LLMs will guess at valid input.