Runnable example: turn a messy LLM response into clean, typed data deterministically using the obfus.link MCP grid.
Two tools with complete input schemas and descriptions, but significant gaps in LLM-optimization and output documentation. Tool names lack action verbs (llm_to_json_cleaner, json_to_zod are descriptive but not verb-first). Descriptions are adequate (60-80 chars) but lack WHEN/WHY guidance. Parameters have types and descriptions, but lack constraints (enums, ranges, patterns). No documented output schemas. No error handling guidance. No security considerations despite handling untrusted LLM output.
Generate a typed Zod schema from JSON data
Repair messy LLM output into clean JSON
Tool names lack action verbs. 'llm_to_json_cleaner' and 'json_to_zod' are descriptive but should start with verbs like 'repair_json' and 'generate_zod_schema' to help LLMs infer intent from the name alone.
No output schemas documented. LLMs cannot plan downstream operations or extract fields without knowing the response structure. Both tools return objects but structure is undocumented.
Parameter constraints missing. 'repairStrategy' and 'dateStrategy' accept free-form strings with no enum or validation. Should declare valid values (e.g. repairStrategy: ['conservative', 'aggressive']) to prevent hallucinated inputs.
Descriptions lack WHEN/WHY context. 'Repair messy LLM output into clean JSON' does not explain when to use this vs alternatives, or what 'strict' mode does. Descriptions should be 50-200 chars with actionable guidance.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2026-07-28+ | v2 |
No error handling guidance. If repair fails (malformed input, unsalvageable JSON), the tool should return actionable recovery steps, not a raw error. E.g. 'JSON repair failed: input contains unescaped quotes. Try escaping manually or provide a simpler structure.'