Cleveland Museum of Art Open Access API (~63k artworks, many CC0)
Server defines 4 tools with complete input schemas and basic descriptions. All tools are read-only, properly named with action verbs (search, get, creators, exhibitions). Schemas include type definitions and parameter descriptions. However, descriptions are terse (10-60 chars), lack context on WHEN to use each tool, and output schemas are undocumented. Parameter descriptions are minimal, e.g., 'query' lacks guidance on search syntax or expected result cardinality. No error handling guidance, no pagination documentation despite limit/skip parameters. Missing idempotency hints and chaining IDs in response documentation.
Search creators (artists) by name.
Search exhibitions by title/keyword.
Single artwork by accession number (e.g. "1962.158") or numeric id.
Search artworks. Optional filters: type, artist, has_image, cc0.
Output schemas undocumented. LLMs cannot plan downstream calls or extract required fields (e.g., artwork IDs for chaining). Responses from Cleveland Art API are not shaped or documented.
Descriptions are terse (10 - 60 chars) and lack context. 'Search artworks' does not explain WHEN to use search vs get_artwork, what filters do, or what results look like. Descriptions should be 50 - 200 chars with selection guidance.
Parameter descriptions lack constraints and guidance. 'query' does not explain search syntax, expected cardinality, or whether partial matches work. 'limit' and 'skip' lack pagination guidance (e.g., 'Returns up to N results; use skip for pagination').
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 54 | 2026-07-28+ | v2 |
No error handling guidance. caGet() throws generic errors ('Cleveland Art: 404', 'Cleveland Art: 500 ...') without recovery hints. LLMs cannot determine if errors are retryable or user-fixable.
No documentation of response structure or chaining IDs. If search returns artwork objects, what fields are included? Does get_artwork return the same structure? LLMs need this to compose multi-step queries.