Claude Desktop MCP server for batch searching Trocco job definitions
Single tool with visible registration in src/server.js. Tool has a description and input schema with Zod validation, but critical quality gaps prevent a higher score. Description is adequate (89 chars) but lacks actionable guidance on when to use which strategy. Input parameters have type constraints (enum for strategy, integer bounds for maxBatches) and descriptions, but descriptions are minimal (10-30 chars) and lack formatting/validation hints. Output schema is documented but contains z.any() for 'matches' field, indicating incomplete typing. No error recovery guidance, no dependency hints, no examples of output structure. The tool implements multiple search strategies but does not explain the trade-offs or when to prefer one over another, an LLM cannot infer this from the current description. Tool name 'trocco_batch_search' follows verb_noun convention and is clear.
Search through large numbers of transfer configs by fetching in batches and using multiple strategies.
Output schema contains z.any() for 'matches' field, preventing LLM from understanding structure of returned job definitions.
Parameter descriptions are minimal (10-30 chars) and lack guidance on constraints, format, or when to use each strategy. Example: 'Search strategy to use' tells LLM nothing about when exhaustive_scan vs keyword_chunks is appropriate. Rubric requires descriptions that state WHAT, WHEN, and prerequisites.
Tool description does not explain API credentials injection or authentication prerequisites. Code shows 'The server automatically injects your TROCCO_API_KEY for authentication' in server instructions, but this is not in the tool description. LLM cannot infer dependencies.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 57 | 2025-06-18+ | v2 |
| 2026-03-09 | D | 50 | - | v1 |
No error recovery guidance. Code catches errors silently ('catch (error) { break; }') but tool response does not indicate failure modes or what to do if search fails.
Tool description does not explain the trade-offs between strategies or provide guidance on choosing one. 'exhaustive_scan', 'keyword_chunks', 'alphabet_sweep', 'recent_first' are opaque to LLM, no hint on what each optimizes for or when to use each.
maxBatches parameter defaults to 10 but no explanation of what 'batches' means in context of Trocco API (batch size? pagination pages?). Ambiguous parameter descriptions force LLM guessing.
Response includes 'searchProgress' as string but tool description does not document what format this takes or what information it contains.