# Codex Pets Registry

> Search, preview, install community Codex pet packs, and discover the pet request flow.

- name: tech.ydb-qdrant.pets/codex-pets-ydb-qdrant
- version: 1.0.0
- connection class: R0 (autonomous)
- trust: 79/100 flags: no-repository
- quality: 83/100 (good)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/tech.ydb-qdrant.pets%2Fcodex-pets-ydb-qdrant
- tools: https://api.protogrid.dev/v1/servers/tech.ydb-qdrant.pets%2Fcodex-pets-ydb-qdrant/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "codex-pets-ydb-qdrant": {
      "type": "http",
      "url": "https://pets.ydb-qdrant.tech/mcp"
    }
  }
}
```


## Trust

- hygiene: 80
- liveness: 99
- freshness: 85
- provenance: 55
- drivers: +dns-namespace +website +reachable +uptime-98% ~updated-86d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 83/100 (good)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 93 (weight 30)

- pass `tools.descriptions`: every tool has a description
- warn `tools.description_length`: 1 tools have descriptions over 1,024 characters, which crowds the context
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 9 of 9 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- pass `tools.token_cost`: about 1,872 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 75 (weight 15)

- warn `stability.changes`: 12 tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 9, about 1,872 tokens to load them all
- tool set hash: 935f60b1641a0849a0c48f84d4b99332
- tools last changed: 2026-10-18T13:56:07.462Z
- badge: [![protogrid quality](https://protogrid.dev/badge/tech.ydb-qdrant.pets/codex-pets-ydb-qdrant.svg)](https://protogrid.dev/servers/tech.ydb-qdrant.pets/codex-pets-ydb-qdrant)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-18 `get_pet_generation` changed (description)
  - before: Use to read your generation task by its private generationId. Completed results include a preview, editable name/description/tags in metadata, and downloadable pet.json, spritesheet and ZIP. Edit metadata on the private preview before submitting for moderation; this read tool never edits or starts a paid retry. Failed results include error.code, message, hint and automaticRetry=false: stop polling and explain the failure. Do not use to list other tasks, publish results, or start another paid generation; use generate_pet only for a new user-requested task.
  - after: Use to read your generation task by its private generationId. Completed results include a preview, editable name/description/tags in metadata, and downloadable pet.json, spritesheet and ZIP. Website jobs may return awaiting_confirmation: open their private preview for the user to confirm the character. Edit metadata on the private preview before submitting for moderation; this read tool never confirms, edits or starts a paid retry. Failed results include error.code, message, hint and automaticRetry=false: stop polling and explain the failure. Do not use to list other tasks, publish results, or start another paid generation; use generate_pet only for a new user-requested task.
- 2026-10-15 `generate_pet` changed (description)
  - before: Use only when the user requests a new animated pet from a text brief. Starts one server-paid pet generation task (twelve image stages, each with at most one delayed retry after a confirmed connection closure, plus one text/vision request for an editable name, description and tags). Supply a fresh random UUID requestId; reuse it unchanged when retrying the same request. Limits: 200 accepted tasks/day globally, 10/IP by default, Moscow time. Admin IP allowances can add attempts until midnight; the global cap and budget still apply. Returns a task ID; poll get_pet_generation. The result is unlisted and expires after 24 hours. Do not use to publish a pet, edit an image, or create a manual administrator request. Experimental generation: animations and gaze directions may contain visual errors or look too similar. Review the preview before submitting your pet to moderation. Accepted tasks count toward the limit even if the result is unsuitable; there are no automatic paid retries.
  - after: Use only when the user requests a new animated pet from a text brief. Starts one server-paid pet generation task (twelve image stages, each with at most one delayed retry after a retryable provider failure, plus one text/vision request for an editable name, description and tags). Supply a fresh random UUID requestId; reuse it unchanged when retrying the same request. Limits: 200 accepted tasks/day globally, 10/IP by default, Moscow time. Admin IP allowances can add attempts until midnight; the global cap and budget still apply. Returns a task ID; poll get_pet_generation. The result is unlisted and expires after 24 hours. Do not use to publish a pet, edit an image, or create a manual administrator request. Experimental generation: animations and gaze directions may contain visual errors or look too similar. Review the preview before submitting your pet to moderation. Accepted tasks count toward the limit even if the result is unsuitable. A failed image stage may be retried once after a delay, which can incur an additional provider charge.
- 2026-10-14 `generate_pet` changed (description)
  - before: Use only when the user requests a new animated pet from a text brief. Starts one server-paid pet generation task (up to twelve image requests plus one text/vision request for an editable name, description and tags). Supply a fresh random UUID requestId; reuse it unchanged when retrying the same request. Limits: 200 accepted tasks/day globally, 10/IP by default, Moscow time. Admin IP allowances can add attempts until midnight; the global cap and budget still apply. Returns a task ID; poll get_pet_generation. The result is unlisted and expires after 24 hours. Do not use to publish a pet, edit an image, or create a manual administrator request. Experimental generation: animations and gaze directions may contain visual errors or look too similar. Review the preview before submitting your pet to moderation. Accepted tasks count toward the limit even if the result is unsuitable; there are no automatic paid retries.
  - after: Use only when the user requests a new animated pet from a text brief. Starts one server-paid pet generation task (twelve image stages, each with at most one delayed retry after a confirmed connection closure, plus one text/vision request for an editable name, description and tags). Supply a fresh random UUID requestId; reuse it unchanged when retrying the same request. Limits: 200 accepted tasks/day globally, 10/IP by default, Moscow time. Admin IP allowances can add attempts until midnight; the global cap and budget still apply. Returns a task ID; poll get_pet_generation. The result is unlisted and expires after 24 hours. Do not use to publish a pet, edit an image, or create a manual administrator request. Experimental generation: animations and gaze directions may contain visual errors or look too similar. Review the preview before submitting your pet to moderation. Accepted tasks count toward the limit even if the result is unsuitable; there are no automatic paid retries.
- 2026-10-12 `generate_pet` changed (description)
  - before: Use only when the user requests a new animated pet from a text brief. Starts one server-paid pet generation task (up to twelve image requests plus one text/vision request for an editable name, description and tags). Supply a fresh random UUID requestId; reuse it unchanged when retrying the same request. Limits: 30 accepted tasks/day globally, 3/IP by default, Moscow time. Admin IP allowances can add attempts until midnight; the global cap and budget still apply. Returns a task ID; poll get_pet_generation. The result is unlisted and expires after 24 hours. Do not use to publish a pet, edit an image, or create a manual administrator request. Experimental generation: animations and gaze directions may contain visual errors or look too similar. Review the preview before submitting your pet to moderation. Accepted tasks count toward the limit even if the result is unsuitable; there are no automatic paid retries.
  - after: Use only when the user requests a new animated pet from a text brief. Starts one server-paid pet generation task (up to twelve image requests plus one text/vision request for an editable name, description and tags). Supply a fresh random UUID requestId; reuse it unchanged when retrying the same request. Limits: 200 accepted tasks/day globally, 10/IP by default, Moscow time. Admin IP allowances can add attempts until midnight; the global cap and budget still apply. Returns a task ID; poll get_pet_generation. The result is unlisted and expires after 24 hours. Do not use to publish a pet, edit an image, or create a manual administrator request. Experimental generation: animations and gaze directions may contain visual errors or look too similar. Review the preview before submitting your pet to moderation. Accepted tasks count toward the limit even if the result is unsuitable; there are no automatic paid retries.
- 2026-10-12 `get_pet_generation` changed (description)
  - before: Use to read your generation task by its private generationId. Completed results include a preview and downloadable pet.json, spritesheet and ZIP. Failed results include error.code, message, hint and automaticRetry=false: stop polling and explain the failure. Do not use to list other tasks, publish results, or start another paid generation; use generate_pet only for a new user-requested task.
  - after: Use to read your generation task by its private generationId. Completed results include a preview, editable name/description/tags in metadata, and downloadable pet.json, spritesheet and ZIP. Edit metadata on the private preview before submitting for moderation; this read tool never edits or starts a paid retry. Failed results include error.code, message, hint and automaticRetry=false: stop polling and explain the failure. Do not use to list other tasks, publish results, or start another paid generation; use generate_pet only for a new user-requested task.
- 2026-10-12 `generate_pet` changed (description)
  - before: Use only when the user requests a new animated pet from a text brief. Starts one server-paid pet generation task (up to twelve image requests). Supply a fresh random UUID requestId; reuse it unchanged when retrying the same request. Limits: 30 accepted tasks/day globally, 3/IP by default, Moscow time. Admin IP allowances can add attempts until midnight; the global cap and budget still apply. Returns a task ID; poll get_pet_generation. The result is unlisted and expires after 24 hours. Do not use to publish a pet, edit an image, or create a manual administrator request. Experimental generation: animations and gaze directions may contain visual errors or look too similar. Review the preview before submitting your pet to moderation. Accepted tasks count toward the limit even if the result is unsuitable; there are no automatic paid retries.
  - after: Use only when the user requests a new animated pet from a text brief. Starts one server-paid pet generation task (up to twelve image requests plus one text/vision request for an editable name, description and tags). Supply a fresh random UUID requestId; reuse it unchanged when retrying the same request. Limits: 30 accepted tasks/day globally, 3/IP by default, Moscow time. Admin IP allowances can add attempts until midnight; the global cap and budget still apply. Returns a task ID; poll get_pet_generation. The result is unlisted and expires after 24 hours. Do not use to publish a pet, edit an image, or create a manual administrator request. Experimental generation: animations and gaze directions may contain visual errors or look too similar. Review the preview before submitting your pet to moderation. Accepted tasks count toward the limit even if the result is unsuitable; there are no automatic paid retries.
- 2026-10-12 `generate_pet` changed (description)
  - before: Use only when the user requests a new animated pet from a text brief. Starts one server-paid pet generation task (up to twelve image requests). Supply a fresh random UUID requestId; reuse it unchanged when retrying the same request. Limits: 30 accepted tasks/day globally, 3/IP, Moscow time. Returns a task ID; poll get_pet_generation. The result is unlisted and expires after 24 hours. Do not use to publish a pet, edit an image, or create a manual administrator request. Experimental generation: animations and gaze directions may contain visual errors or look too similar. Review the preview before submitting your pet to moderation. Accepted tasks count toward the limit even if the result is unsuitable; there are no automatic paid retries.
  - after: Use only when the user requests a new animated pet from a text brief. Starts one server-paid pet generation task (up to twelve image requests). Supply a fresh random UUID requestId; reuse it unchanged when retrying the same request. Limits: 30 accepted tasks/day globally, 3/IP by default, Moscow time. Admin IP allowances can add attempts until midnight; the global cap and budget still apply. Returns a task ID; poll get_pet_generation. The result is unlisted and expires after 24 hours. Do not use to publish a pet, edit an image, or create a manual administrator request. Experimental generation: animations and gaze directions may contain visual errors or look too similar. Review the preview before submitting your pet to moderation. Accepted tasks count toward the limit even if the result is unsuitable; there are no automatic paid retries.
- 2026-10-11 `get_pet_generation` changed (description)
  - before: Use to read your generation task by its private generationId. Completed results include a preview and downloadable pet.json, spritesheet and ZIP. Do not use to list other tasks, publish results, or start another paid generation; use generate_pet only for a new user-requested task.
  - after: Use to read your generation task by its private generationId. Completed results include a preview and downloadable pet.json, spritesheet and ZIP. Failed results include error.code, message, hint and automaticRetry=false: stop polling and explain the failure. Do not use to list other tasks, publish results, or start another paid generation; use generate_pet only for a new user-requested task.
- 2026-10-11 `generate_pet` changed (description)
  - before: Use only when the user requests a new animated pet from a text brief. Starts one server-paid pet generation task (up to twelve image requests). Supply a fresh random UUID requestId; reuse it unchanged when retrying the same request. Limits: 30 accepted tasks/day globally, 3/IP, Moscow time. Returns a task ID; poll get_pet_generation. The result is unlisted and expires after 24 hours. Do not use to publish a pet, edit an image, or create a manual administrator request.
  - after: Use only when the user requests a new animated pet from a text brief. Starts one server-paid pet generation task (up to twelve image requests). Supply a fresh random UUID requestId; reuse it unchanged when retrying the same request. Limits: 30 accepted tasks/day globally, 3/IP, Moscow time. Returns a task ID; poll get_pet_generation. The result is unlisted and expires after 24 hours. Do not use to publish a pet, edit an image, or create a manual administrator request. Experimental generation: animations and gaze directions may contain visual errors or look too similar. Review the preview before submitting your pet to moderation. Accepted tasks count toward the limit even if the result is unsuitable; there are no automatic paid retries.
- 2026-10-11 `get_pet_generation` added
  - Use to read your generation task by its private generationId. Completed results include a preview and downloadable pet.json, spritesheet and ZIP. Do not use to list other tasks, publish results, or start another paid generation; use generate_pet only for a new user-requested task.

Full history: https://api.protogrid.dev/v1/servers/tech.ydb-qdrant.pets%2Fcodex-pets-ydb-qdrant/changes

## Remotes

- https://pets.ydb-qdrant.tech/mcp (streamable-http, auth none, reachable true, uptime30d 0.98333335)

## Packages

_none_

## Tools (9)

- `generate_pet`: Use only when the user requests a new animated pet from a text brief. Starts one server-paid pet generation task (twelve image stages, each with at most one delayed retry after a retryable provider failure, plus one text/vision request for an editable name, description and tags). Supply a fresh random UUID requestId; reuse it unchanged when retrying the same request. Limits: 200 accepted tasks/day globally, 10/IP by default, Moscow time. Admin IP allowances can add attempts until midnight; the global cap and budget still apply. Returns a task ID; poll get_pet_generation. The result is unlisted and expires after 24 hours. Do not use to publish a pet, edit an image, or create a manual administrator request. Experimental generation: animations and gaze directions may contain visual errors or look too similar. Review the preview before submitting your pet to moderation. Accepted tasks count toward the limit even if the result is unsuitable. A failed image stage may be retried once after a delay, which can incur an additional provider charge.
- `get_badge_code`: 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.
- `get_card_code`: 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_embed_code`: 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.
- `get_install_instructions`: 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.
- `get_pet`: 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.
- `get_pet_generation`: Use to read your generation task by its private generationId. Completed results include a preview, editable name/description/tags in metadata, and downloadable pet.json, spritesheet and ZIP. Website jobs may return awaiting_confirmation: open their private preview for the user to confirm the character. Edit metadata on the private preview before submitting for moderation; this read tool never confirms, edits or starts a paid retry. Failed results include error.code, message, hint and automaticRetry=false: stop polling and explain the failure. Do not use to list other tasks, publish results, or start another paid generation; use generate_pet only for a new user-requested task.
- `get_pet_request_info`: 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; these manual workflows are separate from generate_pet and get_pet_generation. Use search_pets or get_pet for existing approved pets.
- `search_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.
