MCP server for searching documents based on multiple criteria
Three tools with basic schemas and minimal descriptions. Tool naming is acceptable (verb-noun pattern), but descriptions are extremely brief (10-34 chars, well below the 194-char baseline). Parameter descriptions are entirely absent, the schema shows field names and types but no explanatory text for what each parameter controls. The search_with_criteria tool has a complex nested object schema that is visible and properly typed, but lacks any guidance on how to construct the request or what the returned fields should contain. No error handling guidance, no output schema documentation, and no indication of what fields are returned or how to chain results to other tools.
Add two numbers
Return the list of criteria
Search for documents based on multiple criteria
Parameter descriptions entirely missing. Schema shows types (integer, string, array, object) but provides zero guidance on what each parameter controls, valid ranges, or expected formats. LLMs cannot infer meaning from field names alone.
Tool descriptions are 10 - 34 characters, far below the 194-char baseline. 'Add two numbers' and 'Return the list of criteria' lack context on when to use each tool, what they return, or how they chain. Descriptions should be 50 - 200 chars with actionable guidance.
No output schema documentation. Tools return dict or list but LLMs have no visibility into what fields are present, their types, or how to extract values for downstream tool calls. This breaks tool chaining.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 43 | 2026-07-28+ | v2 |
search_with_criteria accepts a complex nested request object (criteria array with field/value/operator) but provides no guidance on valid field names, operator semantics, or what returned_fields should contain. The operator enum is visible in schema but not explained.
No error handling or recovery guidance. helpers.py silently returns None on any exception; tools do not communicate what went wrong or what the LLM should do next (retry, ask user, call a different tool).