# Objects and creatures

> List and read your saved objects and creatures, generate images and variants, approve main images, and animate turntable and idle clips from an AI assistant.

Source: https://nodaro.ai/docs/mcp/tools/objects-and-creatures

The **object and creature tools** let an assistant use the props, products and creatures in your library: items and beings with a locked look that stay the same in every shot. The assistant lists and reads them, generates images and variants, approves main images, and animates short motion clips. Objects and creatures work the same way; creatures add a free-text species. Read [Objects](https://nodaro.ai/docs/guides/objects) and [Creatures](https://nodaro.ai/docs/guides/creatures) for the same work in the app.

Objects and creatures are created in the app. There is no MCP tool that creates one.

## Object tools

### `list_objects`

Lists your objects: props, accessories and physical items you reuse across shots. Each row has the name, description, main image and the number of variants. Newest first.

**Permission:** `assets:read`. **Credits:** free.

| Parameter | Type | Notes |
| --- | --- | --- |
| `search` | string | Part of the object's name, not case-sensitive, up to 100 characters. Use it when the user names one. |
| `limit` | integer | From 1 to 100. Default `50`. |

**Returns:** the objects. Call `get_object` for the variant URLs.

### `get_object`

Returns one object in full: every variant with its name and URL, and the reference photos.

**Permission:** `assets:read`. **Credits:** free.

| Parameter | Type | Notes |
| --- | --- | --- |
| `id` | string | **Required.** The object id from `list_objects`. |

**Returns:** the object. An error when it does not exist or is not yours.

### `generate_object`

Generates an image of an object (`kind: "main"`) or a variant (`kind: "asset"`). The result is not saved on an object.

**Permission:** `workflows:execute`. **Credits:** the price of the image model.

| Parameter | Type | Notes |
| --- | --- | --- |
| `name` | string | **Required.** The object's name. |
| `kind` | string | `main` (default) or `asset`. |
| `description`, `style` | string | What the object looks like. |
| `category` | string | `furniture`, `vehicle`, `weapon`, `food`, `clothing`, `electronics`, `nature`, `tool`, `animal` or `other`. |
| `asset_type` | string | For `asset`: `angles`, `materials`, `variations` or `custom`. |
| `variant` | string | For `asset`: for example `front`, `wood` or `weathered`. |
| `model` | string | The image model. Default `nano-banana`. |
| `source_image_url` | string | A source picture. |

**Returns:** a job id.

### `approve_object_main_image`

Makes a finished candidate the object's main image, and has a vision model describe its form, material, condition and purpose in the canonical description.

**Permission:** `assets:write`. **Credits:** one short LLM run for the description.

| Parameter | Type | Notes |
| --- | --- | --- |
| `object_id` | string | **Required.** The object. |
| `candidate_job_id` | string | **Required.** A completed image job of yours that was generated for this object. A job made for another object returns `candidate_object_mismatch`. |
| `expected_updated_at` | string | The object's `updatedAt`. When the object changed since, the call returns `concurrent_modification` with the new value. |

**Returns:** the main image URL and the description. When the description fails, the image is still set and the description is empty; run `recaption_object`.

### `recaption_object`

Has the vision model describe the current main image again, in about 80 to 120 words, and saves it as the canonical description.

**Permission:** `assets:write`. **Credits:** one short LLM run.

| Parameter | Type | Notes |
| --- | --- | --- |
| `object_id` | string | **Required.** The object. |

**Returns:** the new description. `main_image_required` when the object has no main image, and `caption_failed` when the description fails.

### `generate_object_motion`

Animates an object into a short clip, such as "slow 360-degree rotation", "object hovering with subtle bob" or "parallax pan from left to right".

**Permission:** `workflows:execute`. **Credits:** the price of the video model. The default, Kling 2.5 Turbo Pro, makes a 5-second clip for 110 credits.

| Parameter | Type | Notes |
| --- | --- | --- |
| `motion_prompt` | string | **Required.** The object's or the camera's movement, up to 2,000 characters. |
| `source_image_url` | string | **Required.** The first frame, usually the object's approved main image. |
| `name` | string | **Required.** The object's name, used as context in the prompt. |
| `provider` | string | `kling-turbo` (default), `kling`, `kling-3.0`, `minimax`, `hailuo-2.3`, `wan-i2v`, `seedance` or `bytedance-lite`. |
| `aspect_ratio` | string | `1:1` (default, for product framing), `3:4`, `16:9`, `9:16` or `4:3`. |
| `attach_to_object_id` | string | Saves the clip in the object's motion clips. The ownership is checked before any credits are reserved. |
| `attach_name` | string | The name of the saved clip. |
| `refine_from_video_url` | string | Refines an existing clip with a new prompt, as video to video, for example "same shot but faster rotation". |
| `canonical_description`, `category`, `style` | string | Extra context for the prompt. |

**Returns:** a job id. The card plays the clip when it is ready.

## Creature tools

### `list_creatures`

Lists your creatures: animals and non-human beings with a locked look. Each row has the name, description, main image and the number of variants. Newest first.

**Permission:** `assets:read`. **Credits:** free.

| Parameter | Type | Notes |
| --- | --- | --- |
| `search` | string | Part of the creature's name, not case-sensitive, up to 100 characters. |
| `limit` | integer | From 1 to 100. Default `50`. |

**Returns:** the creatures. Call `get_creature` for the variant URLs.

### `get_creature`

Returns one creature in full: every variant with its name and URL, the reference photos and its stored voice.

**Permission:** `assets:read`. **Credits:** free.

| Parameter | Type | Notes |
| --- | --- | --- |
| `id` | string | **Required.** The creature id from `list_creatures`. |

**Returns:** the creature. An error when it does not exist or is not yours.

### `generate_creature`

Generates an image of a creature (`kind: "main"`) or a variant (`kind: "asset"`). The result is not saved on a creature.

**Permission:** `workflows:execute`. **Credits:** the price of the image model.

| Parameter | Type | Notes |
| --- | --- | --- |
| `name` | string | **Required.** The creature's name. |
| `kind` | string | `main` (default) or `asset`. |
| `species` | string | Free text, such as `dragon`, `wolf` or `griffin`, up to 200 characters. |
| `category` | string | Free text, such as `mammal`, `mythical` or `reptile`. |
| `style` | string | Free text, such as `realistic`, `anime`, `3d-pixar` or `illustration`. |
| `description` | string | What the creature looks like. |
| `asset_type` | string | For `asset`: `angles`, `poses`, `variations` or `custom`. |
| `variant` | string | For `asset`: for example `front`, `standing` or `weathered`. |
| `model` | string | The image model. Default `nano-banana`. |
| `source_image_url` | string | A source picture. |

**Returns:** a job id.

### `approve_creature_main_image`

Makes a finished candidate the creature's main image, and has a vision model describe its species, anatomy, coloring and condition in the canonical description.

**Permission:** `assets:write`. **Credits:** one short LLM run for the description.

| Parameter | Type | Notes |
| --- | --- | --- |
| `creature_id` | string | **Required.** The creature. |
| `candidate_job_id` | string | **Required.** A completed image job of yours that was generated for this creature. A job made for another creature returns `candidate_creature_mismatch`. |
| `expected_updated_at` | string | The creature's `updatedAt`. When the creature changed since, the call returns `concurrent_modification`. |

**Returns:** the main image URL and the description. When the description fails, run `recaption_creature`.

### `recaption_creature`

Has the vision model describe the current main image again, in about 80 to 120 words, and saves it as the canonical description.

**Permission:** `assets:write`. **Credits:** one short LLM run.

| Parameter | Type | Notes |
| --- | --- | --- |
| `creature_id` | string | **Required.** The creature. |

**Returns:** the new description. `main_image_required` when the creature has no main image, and `caption_failed` when the description fails.

### `generate_creature_motion`

Animates a creature into a short idle clip, such as "creature breathing with subtle idle sway", a prowl, a wing flap or a parallax pan.

**Permission:** `workflows:execute`. **Credits:** the price of the video model. The default, Kling 2.5 Turbo Pro, makes a 5-second clip for 110 credits.

| Parameter | Type | Notes |
| --- | --- | --- |
| `motion_prompt` | string | **Required.** The creature's or the camera's movement, up to 2,000 characters. |
| `source_image_url` | string | **Required.** The first frame, usually the creature's approved main image. |
| `name` | string | **Required.** The creature's name. |
| `provider` | string | `kling-turbo` (default), `kling`, `kling-3.0`, `minimax`, `hailuo-2.3`, `wan-i2v`, `seedance` or `bytedance-lite`. |
| `aspect_ratio` | string | `1:1` (default), `3:4`, `16:9`, `9:16` or `4:3`. |
| `attach_to_creature_id` | string | Saves the clip in the creature's motion clips. The ownership is checked before any credits are reserved. |
| `attach_name` | string | The name of the saved clip. |
| `refine_from_video_url` | string | Refines an existing clip with a new prompt, as video to video. |
| `canonical_description`, `category`, `style` | string | Extra context for the prompt. |

**Returns:** a job id. The card plays the clip when it is ready.

## Frequently asked questions

### Can an assistant create a new object or creature?

Not as a saved row. There is no create tool for objects or creatures; create them in the app. The assistant can then list them, read them, generate images and clips for them, and approve main images made for them.

### Why does approving a main image fail with a mismatch error?

The candidate job must have been generated for that object or creature. A candidate made for another row, or not linked to one, returns candidate_object_mismatch or candidate_creature_mismatch.

### What motion clips can I make of a product?

Short clips such as a slow 360-degree rotation, a hover with a subtle bob, or a parallax pan. generate_object_motion uses square framing and Kling 2.5 Turbo Pro by default.

### What is the difference between an object and a creature?

An object is a prop, product, vehicle or other physical item. A creature is an animal or a non-human being, with a free-text species such as dragon or wolf, and pose variants instead of material variants.
