MCP server to interrogate clearotron trademark-clearance runs — list/read artifacts, trace the full decision flow, telemetry/cost, coverage, single-run search, and a gated single-step what-if. Imports the clearotron-driver read-only; touches no driver/template/deploy files.
All 4 tools have severely deficient definitions. Tool names lack action verbs (record_* is weak; should be write_* or save_*). Descriptions are cryptic and domain-specific jargon-heavy ('seat names NO path', 'era stamp', 'the driver's own'), unintelligible to an LLM without deep trademark-clearance context. Input schemas are minimal: only array parameters with generic 'rows'/'declinations'/'closures' descriptions, no item schema, no field-level types. No output schemas documented. No error handling guidance. No parameter constraints (enums, ranges, formats). Descriptions average ~150 chars but are opaque rather than actionable.
Record one typed call. The tool handler's core. The seat names NO path at all — the run dir is the server's (CLEAROTRON_BAND_RUN_DIR, wired per run by the driver), the form name is the era stamp's, and every other identifier is the driver's own.
Record one typed call for declination. The tool body. The seat names NO path at all — the run dir is the server's (CLEAROTRON_BAND_RUN_DIR, wired per run by the driver), the form name is the era stamp's, and every other identifier is the driver's own.
Record one typed call for disposition. The tool surface. The seat calls; this writes the file.
Record one typed call for doubt closure. The tool surface. The seat calls; this writes the file.
Tool names lack action verbs. 'record_coverage', 'record_declination', etc. are weak; 'record' is vague (does it persist, validate, transform?). Should be 'write_coverage_form', 'save_declination_record', or 'persist_disposition_data' to signal intent clearly.
Descriptions are domain-jargon-heavy and opaque. Phrases like 'The seat names NO path', 'era stamp', 'the driver's own' are unintelligible without deep trademark-clearance domain knowledge. LLMs cannot infer when/why to call these tools. Rewrite as: 'Persist coverage form rows to the run directory. Each row records a trademark search result with fields: [list key fields]. Call this after evaluating coverage for a mark.'
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 34 | 2026-07-28+ | v2 |
Input schemas are incomplete. All tools accept only a generic array parameter ('rows', 'declinations', 'closures') with no item schema, no field types, no constraints. LLMs cannot validate input structure. Add: items schema with type:object, properties (field names, types, descriptions), required array, and examples.
No output schemas documented. LLMs do not know what these tools return (success count? file path? validation errors?). Add explicit return schema: {type: object, properties: {success: boolean, rows_written: integer, errors: array}, required: [success, rows_written]}.
No error handling guidance. If a row is malformed or the run directory is inaccessible, what happens? Add error classification: 'Returns {success: false, error: string, recoverable: boolean}. If recoverable=true, retry after fixing input. If false, contact admin.' This guides LLM recovery.