Three tools with basic schemas and descriptions, but significant gaps in parameter documentation and error handling. Tool names follow verb_noun convention (listPets, createPet, getPetById), which is good. However, parameter descriptions are minimal or missing context. The createPet tool has a confusing schema with both flattened properties (name, tag) AND a nested body object, creating ambiguity about which to use. No error handling guidance, no output schema documentation, and no indication of pagination support for listPets despite it accepting a limit parameter.
Create a pet
Get a pet by its id
List all pets
createPet schema is ambiguous: both flattened (name, tag) and nested (body) properties exist. LLM cannot determine which to use without trial-and-error.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract required fields (e.g., pet_id from createPet response).
listPets accepts 'limit' parameter but no pagination guidance (offset, cursor, total_count). Large result sets will blow context window.
Parameter descriptions are generic or missing context. 'Filter pets by tag' does not explain what tags are valid, whether multiple tags are supported, or how filtering works.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 58 | 2026-07-28+ | v2 |
No error handling guidance. If createPet fails (duplicate name, invalid tag), LLM has no recovery path.