MCP server for semantic document search using ChromaDB and OpenAI embeddings
This server defines 2 tools with basic schemas and descriptions. Both tools have input schemas visible and action-verb names. However, descriptions are minimal (under 100 chars), parameters lack depth, output schemas are undocumented, and there is no error handling guidance. The tools are read-only and simple, which mitigates some risk, but production readiness is hampered by incomplete parameter documentation and lack of output schema specification. No tool annotations (readOnlyHint, etc.) are present despite the tools being read-only operations.
Get information about the ChromaDB collection
Search for information in the document based on semantic similarity
Parameter descriptions are minimal or absent. 'query_text' lacks context on expected format or length; 'num_results' lacks min/max bounds and default rationale.
Output schema is completely undocumented. The tools return TextContent with unstructured text; LLMs cannot reason about the structure of results (fields, pagination, next steps). Baseline: 100% of A+ tools have documented return types.
No tool annotations present. Both tools are read-only operations but lack readOnlyHint annotations. Agents cannot distinguish read-only from destructive tools without explicit hints.
Error handling provides raw error messages ('Error querying document: {error}') without actionable recovery guidance. Baseline: Error responses must tell the LLM what to do next.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 45 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 37 | - | v1 |
No pagination support or result limiting documented. query_document accepts num_results but does not specify min/max bounds (baseline: 1 - 100 or similar). No guidance on what happens if 1000+ results exist.
Tool descriptions are under 100 characters and lack context on when to use each tool or what data types are returned. Baseline: average tool description is 194 chars; 10th percentile is 34 chars. These descriptions are at minimum viability.