QMD MCP has 9 tools with complete input schemas and descriptions. Naming follows verb_noun convention (query, get, search patterns). Descriptions are adequate (100-200 chars typical) but lack WHEN-to-use guidance and dependency hints. Parameters are typed but many lack constraints (enums, ranges). Output schemas are not documented in the visible code. Error handling is minimal, no recovery guidance or actionable error messages visible. Security: no secrets in params (good), but no permission gates or audit trail declarations. Composition is reasonable, tools are single-purpose, but chaining IDs are not always returned.
Retrieve the full content of a document by file path with optional line range and line number display
Get comprehensive health information including index health, active queries, scheduled refresh status, and embedding configuration
Get the status of a specific job or list recent jobs
Retrieve content from multiple documents by file paths
Search the knowledge base using a query document — one or more typed sub-queries combined for best recall. Reranking is disabled for this routine tool to avoid loading the CPU-only reranker.
Search the knowledge base using a query document — one or more typed sub-queries combined for best recall. Reranking is enabled for this tool to improve result relevance.
Output schemas not documented. Tools return complex objects (healthOutputSchema, publicJobOutputSchema defined in code) but LLMs cannot see these schemas in tool definitions. Agents cannot plan downstream calls or extract fields reliably.
Parameter constraints missing. 'limit' and 'minScore' in query/query_reranked lack min/max bounds. 'candidateLimit' has no range. LLMs may pass absurd values (limit=999999, minScore=2.5) that break the service.
No error recovery guidance. Descriptions do not explain what to do if a search returns no results, a job fails, or a collection is not found. Error responses are not visible in code, but no recovery patterns are documented.
Inferred effective spec: 2025-06-18+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 65 | 2025-06-18+ | v2 |
Start an embedding job for a specified collection
Start an index update job for specified collections
Get the current status of the QMD index including document count, embedding status, and active queries
Descriptions lack WHEN-to-use guidance. 'query' vs 'query_reranked' distinction is explained (reranking enabled/disabled) but no guidance on when to prefer one. Descriptions do not hint at dependencies (e.g., 'Call status() first to check embedding progress before start_embed').
Destructive operations lack confirmation pattern. start_update and start_embed modify state but have no dry-run or confirmation step. An agent could accidentally trigger expensive embedding jobs without user approval.