MCP server for discovering, installing, and managing approved Codex pet packs. Provides tools to search pets by query, kind, tags, or author, retrieve pet metadata, installation instructions, badge/embed/card codes, and request information.
The Codex Pets server has well-structured tool definitions with clear, descriptive names and comprehensive descriptions that guide LLM usage. All tools follow verb_noun naming conventions (search_pets, get_pet, get_install_instructions, etc.). Tool descriptions are detailed (average ~180 chars) and include WHEN to use each tool and explicit guidance to avoid confusion with similar tools. However, parameter schemas are inconsistently visible in the provided code. Only search_pets shows a complete input schema with proper type definitions and descriptions; other tools show minimal schema documentation in the code excerpts. The server demonstrates good composition patterns with separate, focused tools for different use cases (badge vs card vs embed), and all tools are read-only with proper risk annotations. Error handling guidance is implicit in descriptions but not explicitly documented in the code samples.
Use for a known approved pet slug when the user needs README badge Markdown, HTML, or SVG URL. Do not use for animated README cards, website iframe embeds, install instructions, or pet discovery; use get_card_code, get_embed_code, get_install_instructions, or search_pets instead.
Use for a known approved pet slug when the user needs animated README card Markdown, HTML, or GIF URL. Do not use for simple badges, website iframe embeds, install instructions, or pet discovery; use get_badge_code, get_embed_code, get_install_instructions, or search_pets instead.
Get public metadata, asset URLs, page URL, and install command for the approved Codex pet open in this browser tab.
Use for a known approved pet slug when the user needs website iframe embed HTML or an embed URL. Do not use for README badges/cards, install instructions, or pet discovery; use get_badge_code, get_card_code, get_install_instructions, or search_pets instead.
Use for a known approved pet slug when the user wants CLI or manual install instructions. Do not use to search for pets or inspect general metadata; use search_pets or get_pet instead. This tool is read-only and does not increment install or download counters.
Incomplete schema visibility in source code for 6 of 8 tools. Only search_pets and get_current_codex_pet show full input schema definitions in provided code excerpts. Other tools (get_pet, get_install_instructions, get_badge_code, get_embed_code, get_card_code) are defined with slug parameter but lack visible schema objects.
Output schemas are not documented in tool definitions. The server returns structured pet objects and metadata, but return value schemas are not explicitly declared in the tool registration. LLMs cannot infer what fields to expect in responses.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 68 | 2025-06-18+ | v2 |
Use when you already have an exact approved pet slug and need the sanitized public pet card, asset URLs, page URL, and install command for that one pet. Use search_pets first when you only have a name/query or need multiple results. Do not use for focused install, badge, embed, card, or request workflow details; use the matching get_* tool instead.
Use when the user wants to request a new Codex pet or understand the public request form fields and reference image limits. Do not use to create, submit, update, or inspect private generation requests; no MCP tool exposes those operations. Use search_pets or get_pet for existing approved pets.
Use to discover one or more approved public Codex pet packs by query, kind, tags, author, or Codex compatibility. Prefer this over get_pet when you do not already have an exact slug or need multiple candidates. Do not use for private generation requests or known-slug install/share snippets; use get_pet_request_info or a slug-specific get_* tool instead.
search_pets accepts 'limit' as union type (string or number) without clear bounds documentation. Rubric requires explicit min/max for numeric parameters. Current description states 'Defaults to 10 and is clamped to 1-60' but this should be formalized in schema with minimum/maximum constraints.
No explicit error recovery guidance in tool definitions. Descriptions lack patterns like 'If this fails, try X instead' or clear error categorization (retryable vs user-fixable). Error responses will be raw API errors without LLM-actionable next steps.
get_pet_request_info has empty input schema ({}) but description mentions 'public request form fields and reference image limits.' This suggests the tool should return a structured response documenting form fields, but that output schema is not declared.