A Model Context Protocol (MCP) server that provides RAG capabilities to Cursor using Qdrant vector database for semantic search and document management across multiple projects.
Three tools with action-verb names and basic schemas, but missing critical documentation and output schema specs. Tool names follow verb_noun convention (search, expand_cluster, find_ticket_dependencies). Descriptions are present but generic (10-150 chars, below baseline 194 chars). Input parameters have type definitions and brief descriptions, but lack constraint documentation (enums, ranges, format specs). No output schemas visible in the provided code, critical gap. Error handling and recovery guidance absent. Parameters are minimal (2-3 per tool) but lack specificity about valid values and ranges. No tool annotations (readOnly hints) despite all three being READ_ONLY operations. Schemas are inferred from the input dict structure but not fully formalized in JSON Schema notation with type definitions explicitly shown.
Expand search results by finding related documents in semantic clusters
Traverse Jira blocking dependencies and relationships for a given ticket
Search for documents in Qdrant vector database using semantic or hybrid search
No output schema documentation. Tools return results but LLMs cannot infer what fields to expect, breaking downstream tool chaining and forcing exploratory calls.
Descriptions too short and generic. 'Search for documents' (18 chars) and 'Expand search results' (20 chars) lack WHEN to call this tool and what distinguishes it from similar tools. Below baseline 194 chars.
No parameter constraints documented. 'limit' has no range (1-100? 1-1000?). 'depth' has no bounds. LLMs will guess, passing absurd values that cause API errors or timeouts.
Tool annotations missing. All three tools are READ_ONLY operations but lack readOnlyHint in schema. Clients cannot optimize for idempotent/safe calls.
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 60 | 2026-07-28+ | v2 |
No error recovery guidance. If search returns no results, expands an empty cluster, or traverses a missing ticket, the tool does not suggest next steps (e.g. 'Try a broader query', 'Check ticket key spelling').
Parameter naming lacks type suffix. 'project_id' and 'document_id' are opaque IDs; unclear if human names are accepted. 'ticket_key' is jira-specific but description does not explain format (e.g. 'PROJ-123').