Universal knowledge base with Qdrant for Claude Code integration. Provides semantic search across Claude Code conversation history with hybrid dense+sparse vector search.
Two well-named, read-only tools with comprehensive parameter schemas and detailed descriptions. kb_search has excellent parameter documentation (query, limit, project, conversation_id, from_date, to_date, role, min_score, boost_recent, include_tool_results, include_thinking, group_by_conversation) with clear guidance on semantic vs. filtering concerns. kb_get supports flexible retrieval (message_id or conversation_id, mutually exclusive) with context depth control. Both descriptions exceed 100 chars and explain WHAT/WHEN/HOW. However, output schemas are not documented in the source, LLMs cannot see what fields to expect from results. Error handling is absent; no guidance on retryability, user-fixable errors, or recovery paths. No tool annotations (readOnlyHint present in features but not visible in code). Parameter descriptions are strong but lack explicit format constraints (e.g., ISO 8601 date format stated in description but not as a pattern). Missing batch variants and composition guidance.
Retrieve message by ID with optional context, or restore a full conversation transcript. Supports single message retrieval, thread context retrieval, and conversation restoration.
Semantic search across Claude Code conversations. Uses hybrid search (dense + sparse vectors) when available. Recent messages are boosted by default. IMPORTANT: Keep the query focused on WHAT you're searching for (concepts, topics, keywords). Use the `project` parameter separately to filter WHERE to search. Do NOT include project names in the query - this reduces semantic match quality.
Output schemas not documented. LLMs cannot see what fields SearchResult and message objects contain, forcing them to guess at response structure and downstream field names.
No error handling guidance. Tools lack descriptions of failure modes, retryability, or recovery steps. E.g., what happens if Qdrant is unavailable? If min_score filters all results? If conversation_id is invalid?
Date format constraints stated in description but not formalized. 'ISO format: YYYY-MM-DD' is text; should be a JSON Schema format or pattern field for machine validation.
Tool annotations (readOnlyHint) declared in features but not visible in source code registration. Verify fastmcp integration exports these hints in the MCP protocol response.
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2026-07-28+ | v2 |
No pagination or result-limiting guidance in kb_search description. Default limit=10 is good, but description should state 'Results capped at limit parameter (default 10, max 100)' to set LLM expectations.