Cat as a Service (free, no auth) MCP server that returns cat image URLs and metadata from cataas.com
CATAAS MCP defines 3 tools with clear verb-noun naming (random_cat, cat_by_tag, list_tags). All tools have descriptions (avg 155 chars, within 10-1024 baseline). Input schemas are present with proper JSON Schema structure. However, parameter descriptions are minimal or absent: cat_by_tag.tag has a description, but random_cat and list_tags have no parameters to describe. Output schemas are NOT documented, callers cannot see what fields to expect from responses. Error handling is basic (throws generic 'CATAAS API error' without recovery guidance). No tool annotations (readOnlyHint, etc.). Tool composition is sound (each does one thing), but lack of output documentation and error guidance limits LLM planning.
Get a random cat image matching a specific tag from CATAAS. Use list_tags first to discover available tags. Returns the image URL, cat ID, and tags.
List all available cat tags on CATAAS. Use these tags with cat_by_tag to find cats of a specific type or appearance.
Get a random cat image from CATAAS (Cat as a Service). Returns the image URL, cat ID, and associated tags.
Output schemas not documented. Callers cannot see what fields responses contain (id, url, tags, mimetype, created_at). LLMs cannot plan downstream operations or extract required data.
Error handling is generic. Throws 'CATAAS API error: {status}' without recovery guidance. LLM cannot determine if error is retryable, user-fixable, or fatal.
No tool annotations. Tools are read-only but lack readOnlyHint annotation. Agents cannot distinguish safe tools from destructive ones.
cat_by_tag parameter 'tag' description includes example values ('cute', 'orange', 'grumpy'). LLMs may reuse these literally instead of adapting to context. Replace with enum constraint or reference to list_tags.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2026-07-28+ | v2 |
No pagination or result limits documented. list_tags returns all tags; random_cat and cat_by_tag return single items. If tag count grows large, list_tags could bloat context.