The most advanced TypeScript MCP server for Qdrant with multi-client isolation, LM Studio integration, and enterprise-grade document processing.
Four tools with adequate naming (verb_noun pattern), complete input schemas with proper types and enums, and reasonable descriptions. However, several critical gaps reduce the score: (1) Output schemas are not documented in the tool definitions, we cannot see what fields the search results contain beyond 'SearchResult[]'; (2) No pagination guidance despite search tools returning lists; (3) Error handling is basic, error messages are returned as strings but lack actionable recovery guidance or error classification; (4) Parameter descriptions are functional but generic, lacking format/constraint details expected in production tools; (5) No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite all tools being read-only. The server shows solid fundamentals (schemas present, naming clear) but lacks the production polish expected of A-grade tools.
Search across all document chunks from all clients. Best for broad knowledge discovery.
Search for relevant documents in the catalog (document summaries). Optionally specify a client for focused search.
Search for relevant document chunks. Supports client and source filtering for precise results.
Get information about available collections and clients
Output schemas not documented. Tool descriptions do not specify what fields SearchResult contains (e.g., does it include 'source', 'metadata', 'score', 'content'?). LLMs cannot plan downstream operations without knowing the structure of returned data.
No pagination information. search tools accept 'limit' but there is no mention of total_count, next_cursor, or has_more in descriptions. Large result sets could exceed context windows; pagination guidance is critical for production tools.
Generic parameter descriptions. 'Search query to find relevant documents' lacks detail on expected format, length limits, or special syntax support. Production tools describe constraints: 'UTF-8 string, 1-500 characters, supports boolean operators (AND, OR, NOT)'.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-21 | D | 58 | 2026-07-28+ | v2 |
| 2026-03-09 | D | 52 | - | v1 |
Error handling lacks recovery guidance. src/index.ts includes validation (e.g., 'Invalid client. Must be one of...') but tool descriptions do not explain what to do on failure. Errors should guide the LLM: 'If you receive an error about an invalid client, call collection_info() to see available clients.'
No tool annotations. All four tools are read-only and deterministic, but lack explicit readOnlyHint or idempotentHint annotations. These are optional but help agents reason about retry safety and side effects.
collection_info has empty input schema. The tool takes no parameters but still defines an empty properties object. While valid, the description is vague ('Get information about available collections and clients') and does not clarify what fields will be returned or how to use the results.