aozu.mantle.tools
AOZU is an agent-native workshop for creating, aligning, and exporting reusable layered character assets with WebMCP.
First seen 2026-09-21 · Last seen 2026-09-28 · Source: webmcp.com
Answer 0 · Act 16 · Transact 0 · Score: Not yet scored
Tool inspector
update_storyboard
Create a standalone board or mutate it using its exact expectedRevision. Actions: rename (name/notes), add-frame (title/notes), edit-frame (frameId/title/notes/review/transition/duration), remove-frame, reorder (all frame IDs exactly once), add-candidate (frameId/filename/PNG dataUrl/source/settings), select (frameId/imageId), reference (frameId/imageId/purpose or remove:true), undo, redo. Undefined subjects in candidates may be invented freely. Every defined AOZU Character, Location, Condition or Album Photo used in a candidate must be included in settings. Character settings require the exact Appearance sha256 from inspect_character_contract with scope:model-sheet and images:[appearance]; world settings use the revision from inspect_workspace. Missing or stale refs are rejected. Uploaded candidates NEVER automatically replace selections. Confirmed review requires explicit human approval, never merely successful upload. Reference pins exact image ID/hash; changes to source selection do not rewrite it. Same operations and persisted undo/redo as UI. PNG originals up to 4096×4096 and 5 MiB, at most 100 frames/500 images/128 MiB per board. Source text is provenance only. Returns navigation to affected board for visual review. No same-collection requirement. pin-setting stores the same setting snapshot (id, kind character/location/photo, sourceId, revision, name, details, optional sha256) on frameId, optionally with PNG dataUrl/filename/source/purpose; it never selects or approves an image. unpin-setting removes a snapshot by imageId. inspect_workspace exposes current location and album metadata; local location settings take precedence over ancestor context.
Input schema
| Property | Type | Required | Description |
|---|---|---|---|
action |
— | yes | — |
boardId |
string | no | — |
dataUrl |
string | no | — |
duration |
number,null | no | — |
expectedRevision |
integer | no | — |
filename |
string | no | — |
frameId |
string | no | — |
imageId |
string | no | — |
name |
string | no | — |
notes |
string | no | — |
order |
array | no | — |
purpose |
string | no | — |
remove |
boolean | no | — |
review |
— | no | — |
setting |
object | no | — |
settings |
array | no | — |
source |
string | no | — |
title |
string | no | — |
transition |
string | no | — |
Raw JSON schema
{
"additionalProperties": false,
"properties": {
"action": {
"enum": [
"create",
"rename",
"add-frame",
"edit-frame",
"remove-frame",
"reorder",
"add-candidate",
"select",
"reference",
"pin-setting",
"unpin-setting",
"undo",
"redo"
]
},
"boardId": {
"pattern": "^[a-zA-Z0-9_-]{1,100}$",
"type": "string"
},
"dataUrl": {
"maxLength": 7100000,
"pattern": "^data:image/png;base64,",
"type": "string"
},
"duration": {
"exclusiveMinimum": 0,
"maximum": 600,
"type": [
"number",
"null"
]
},
"expectedRevision": {
"minimum": 0,
"type": "integer"
},
"filename": {
"maxLength": 200,
"type": "string"
},
"frameId": {
"pattern": "^[a-zA-Z0-9_-]{1,100}$",
"type": "string"
},
"imageId": {
"pattern": "^[a-zA-Z0-9_-]{1,100}$",
"type": "string"
},
"name": {
"maxLength": 120,
"type": "string"
},
"notes": {
"maxLength": 8000,
"type": "string"
},
"order": {
"items": {
"pattern": "^[a-zA-Z0-9_-]{1,100}$",
"type": "string"
},
"maxItems": 100,
"type": "array",
"uniqueItems": true
},
"purpose": {
"maxLength": 2000,
"type": "string"
},
"remove": {
"type": "boolean"
},
"review": {
"enum": [
"draft",
"needs-work",
"confirmed"
]
},
"setting": {
"additionalProperties": false,
"properties": {
"details": {
"maxLength": 32000,
"type": "string"
},
"id": {
"pattern": "^[a-zA-Z0-9_-]{1,100}$",
"type": "string"
},
"kind": {
"enum": [
"character",
"location",
"photo"
]
},
"name": {
"maxLength": 200,
"type": "string"
},
"revision": {
"minimum": 0,
"type": "integer"
},
"sha256": {
"pattern": "^[a-f0-9]{64}$",
"type": "string"
},
"sourceId": {
"pattern": "^[a-zA-Z0-9_-]{1,100}$",
"type": "string"
}
},
"required": [
"id",
"kind",
"sourceId",
"revision",
"name",
"details"
],
"type": "object"
},
"settings": {
"items": {
"additionalProperties": false,
"properties": {
"details": {
"maxLength": 32000,
"type": "string"
},
"id": {
"pattern": "^[a-zA-Z0-9_-]{1,100}$",
"type": "string"
},
"kind": {
"enum": [
"character",
"location",
"photo"
]
},
"name": {
"maxLength": 200,
"type": "string"
},
"revision": {
"minimum": 0,
"type": "integer"
},
"sha256": {
"pattern": "^[a-f0-9]{64}$",
"type": "string"
},
"sourceId": {
"pattern": "^[a-zA-Z0-9_-]{1,100}$",
"type": "string"
}
},
"required": [
"id",
"kind",
"sourceId",
"revision",
"name",
"details"
],
"type": "object"
},
"maxItems": 20,
"type": "array"
},
"source": {
"maxLength": 2000,
"type": "string"
},
"title": {
"maxLength": 160,
"type": "string"
},
"transition": {
"maxLength": 8000,
"type": "string"
}
},
"required": [
"action"
],
"type": "object"
}
Similar websites
tracinginsights.com
Analyze Formula 1 racing data with interactive charts for lap times, live telemetry, timing data and race performance. Explore and Compare drivers across multip…
rough-cut.samarthsaxena1672003.workers.dev
A human-first video editor with structured WebMCP tools for any compatible agent.
fiveminutebrief.ai
panoptik-studio.vercel.app
Browser-native demo video editor where humans and AI agents co-edit on the same canvas via WebMCP. No uploads, no server.