# Jabbertoon cartoon studio

> Free 2D cartoon studio: moves, characters and looks; check a cartoon; share links. No key.

- name: com.jabbertoon/cartoon-studio
- version: 1.0.0
- connection class: R0 (autonomous)
- trust: 82/100 flags: no-repository
- quality: 78/100 (good)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/com.jabbertoon%2Fcartoon-studio
- tools: https://api.protogrid.dev/v1/servers/com.jabbertoon%2Fcartoon-studio/tools

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

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "cartoon-studio": {
      "type": "http",
      "url": "https://jabbertoon.com/mcp"
    }
  }
}
```


## Trust

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

## Quality 78/100 (good)

### protocol: 100 (weight 25)

- pass `protocol.modern`: supports 2026-07-28 (server/discover)
- pass `protocol.stateless`: answers without a session
- pass `protocol.transport`: streamable HTTP
- pass `protocol.list_ttl`: tool list is cacheable (ttlMs 3600000)

### 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: 86 (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
- warn `tools.directory_hints`: 1 of 9 tools declare all four hints; missing: get_guide (destructiveHint, idempotentHint); list_characters (destructiveHint, idempotentHint); validate (destructiveHint, idempotentHint); …
- pass `tools.token_cost`: about 2,434 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 25 (weight 15)

- warn `stability.changes`: 21 tool changes in 30 days
- fail `stability.rug_pull`: 5 tools kept their name but changed most of their description in 30 days; review before trusting them

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

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

- tools: 9, about 2,434 tokens to load them all
- tool set hash: 620eaf9aa646e909f208e11b6ea29917
- tools last changed: 2026-10-20T12:18:13.813Z
- badge: [![protogrid quality](https://protogrid.dev/badge/com.jabbertoon/cartoon-studio.svg)](https://protogrid.dev/servers/com.jabbertoon/cartoon-studio)
- 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-20 `share_link` changed (description)
  - before: Turns a cartoon, a scene, a move or a character into a jabbertoon.com link: a move opens in the block editor, the rest in the studio. It all travels after the #: nothing is uploaded or kept. All but a character's end with &from=ai (the page says an AI helper wrote it). One with errors gets them instead. Give one of cartoon, program, character or file. Example: {"program": {"v": 1, "kind": "behaviour", "scripts": [{"body": [{"op": "hop"}]}]}}.
  - after: Turns a cartoon, a scene, a move or a character into a jabbertoon.com link: it opens in the editor (a move in its move maker). It all travels after the #: nothing is uploaded or kept. All but a character's end with &from=ai (the page says an AI helper wrote it). One with errors gets them instead. Give one of cartoon, program, character or file. Example: {"program": {"v": 1, "kind": "behaviour", "scripts": [{"body": [{"op": "hop"}]}]}}.
- 2026-10-20 `list_characters` changed (description) **meaning changed**
  - before: Lists the six ready-made characters (person, kid, dog, cat, bird, monster): legs, views, the colour slots a cast entry's look.colors paints on each (a dog's fur is skin), options, page and links; the voices a line can use; and cartoon_example, a whole talking cartoon to copy. Call it to write a cast: {"dog": {"name": "Biscuit", "look": {"template": "dog", "colors": {"skin": "#8d6e63"}}, "voice": "am_puck"}}.
  - after: Lists the cast in 3D: the six people (bob, ria, sunny, sam, lee, rose) and the animals (dog, cat, fox, horse, gull, and bear2, fox2, rabbit2, raccoon2, cat2 on two legs), each with the designed entry a cast entry gives it and a voice; the voices a line can use; and cartoon_example, a whole talking cartoon to copy. (The six flat templates of older cartoons are listed too, as characters.) Call it to write a cast: {"dog": {"name": "Biscuit", "look": {"template": "dog", "colors": {"skin": "#8d6e63"}}, "voice": "am_puck"}}.
- 2026-10-16 `report_problem` changed (description, inputSchema)
  - before: Tells the people who make Jabbertoon something is wrong: a wrong answer, a check that refused a good cartoon or passed a bad one, a move that looks wrong, a link that does not open, wrong docs, or something missing. Unlike the other tools, it keeps what you send: the report (kind, tool, code, where, item, note) is saved for a person to read. Never put the cartoon, a name, an address or anything about the person you help in it. Example: {"kind": "validator_wrong", "tool": "validate", "code": "op_unknown", "note": "say was refused in a cartoon"}.
  - after: Tells the people who make Jabbertoon something is wrong: a wrong answer, a check that refused a good cartoon or passed a bad one, a move that looks wrong, a link that does not open, wrong docs, something missing, or a step that was hard to get right (kind hard_step, with hard_because: optional, never needed to go on). Unlike the other tools, it keeps what you send: the report (kind, tool, code, where, item, note, hard_because) is saved for a person to read. Never put the cartoon, a name, an address or anything about the person you help in it. Example: {"kind": "validator_wrong", "tool": "validate", "code": "op_unknown", "note": "say was refused in a cartoon"}.
- 2026-10-15 `build` changed (description)
  - before: Builds anything (a character, an animal, a car, a house, a rocket) in Jabbertoon's one 3D builder from steps, the ones its buttons take: spine, grow, bone (a skeleton and its skin, a bone at a time, as in Blender), add a ready part (leg, arm, head, wing, wheel, hat ...), set, copy, remove, look. Checks every step, says what was made (its parts, legs, size in blocks) and gives a jabbertoon.com/editor/ link that opens it in the Studio, to change and use in a cartoon, a world or a game. Over MCP the answer also shows a picture of it from four sides. Steps that start {"op": "new", "kind": "move"} make a move from keys, {"op": "new", "kind": "world"} a world (a level is played to check it), and kind "game" a game seen from the side, from above or in space, or "trench", "space", "surface" or "sky" a game with depth to fly, "walk" a place to walk at real size (played on foot: told what cannot be reached). A refused step says where, why and how to fix it. The steps: get_guide {"topic": "build"}, a game's {"topic": "game"}.
  - after: Builds anything (a character, an animal, a car, a house) in Jabbertoon's 3D builder from steps, as its buttons do: spine, grow, bone (a skeleton, a bone at a time), add a ready part (leg, arm, head, wing, wheel, hat ...), set, copy, remove, look. Checks every step, says what was made (its parts and size) and gives a jabbertoon.com/editor/ link that opens it in the Studio, to change and use in a cartoon, world or game. Over MCP the answer also shows a picture of it from four sides. Steps that start {"op": "new", "kind": "move"} make a move from keys, {"op": "new", "kind": "world"} a world (a level is played to check it), and kind "game" a game seen from the side, from above or in space, or "trench", "space", "surface" or "sky" a game with depth to fly, "walk" a place to walk at real size (played on foot: told what cannot be reached). A refused step says where, why and how to fix it. export_link opens Export, free: STL/3MF to 3D print, glTF (Blender, Unity, Godot), SVG, Minecraft .schem. The steps: get_guide {"topic": "build"}, a game's {"topic": "game"}.
- 2026-10-15 `get_guide` changed (description)
  - before: Call this first. Returns one topic of Jabbertoon's guide as Markdown (under 20,000 characters): start (what it makes and the order of calls), cartoon (the JSON program: cast, scenes, lines, moves), text (the same cartoon as screenplay text), moves, characters, looks, voices, places, errors, limits, build (the 3D builder's steps), game (a game's steps), song (the editor's own file: Studio characters, lines, moves, camera shots and a song the cast sings). Units everywhere: x and y are shares of the stage (0 to 1, the ground at 0.92), times are seconds. Example: {"topic": "cartoon"}.
  - after: Call this first. Returns one topic of Jabbertoon's guide as Markdown (under 20,000 characters): start (what it makes and the order of calls), cartoon (the JSON program: cast, scenes, lines, moves), text (the same cartoon as screenplay text), moves, characters, looks, voices, places, errors, limits, build (the 3D builder's steps), export (a build as a 3D printer's STL or 3MF, glTF for Blender, SVG blueprints, Minecraft), world (a world of blocks), walk (a place to walk), game (a game's steps), song (the editor's own file: Studio characters, lines, moves, camera shots and a song the cast sings). Units everywhere: x and y are shares of the stage (0 to 1, the ground at 0.92), times are seconds. Example: {"topic": "cartoon"}.
- 2026-10-15 `build` changed (description)
  - before: Builds anything (a character, an animal, a car, a house, a rocket) in Jabbertoon's one 3D builder from steps, the ones its buttons take: spine, grow, bone (a skeleton and its skin, a bone at a time, as in Blender), add a ready part (leg, arm, head, wing, wheel, hat ...), set, copy, remove, look. Checks every step, says what was made (its parts, legs, size in blocks) and gives a jabbertoon.com/editor/ link that opens it in the Studio, to change and use in a cartoon, a world or a game. Over MCP the answer also shows a picture of it from four sides. Steps that start {"op": "new", "kind": "move"} make a move from keys, {"op": "new", "kind": "world"} a world (a level is played to check it), and kind "game" a game seen from the side, from above or in space, or "trench", "space", "surface" or "sky" a game with depth to fly. A refused step says where, why and how to fix it. The steps: get_guide {"topic": "build"}, a game's {"topic": "game"}.
  - after: Builds anything (a character, an animal, a car, a house, a rocket) in Jabbertoon's one 3D builder from steps, the ones its buttons take: spine, grow, bone (a skeleton and its skin, a bone at a time, as in Blender), add a ready part (leg, arm, head, wing, wheel, hat ...), set, copy, remove, look. Checks every step, says what was made (its parts, legs, size in blocks) and gives a jabbertoon.com/editor/ link that opens it in the Studio, to change and use in a cartoon, a world or a game. Over MCP the answer also shows a picture of it from four sides. Steps that start {"op": "new", "kind": "move"} make a move from keys, {"op": "new", "kind": "world"} a world (a level is played to check it), and kind "game" a game seen from the side, from above or in space, or "trench", "space", "surface" or "sky" a game with depth to fly, "walk" a place to walk at real size (played on foot: told what cannot be reached). A refused step says where, why and how to fix it. The steps: get_guide {"topic": "build"}, a game's {"topic": "game"}.
- 2026-10-15 `get_guide` changed (inputSchema)
- 2026-10-14 `get_guide` changed (description, inputSchema)
  - before: Call this first. Returns one topic of Jabbertoon's guide as Markdown (under 20,000 characters): start (what it makes and the order of calls), cartoon (the JSON program: cast, scenes, lines, moves), text (the same cartoon as screenplay text), moves, characters, looks, voices, places, errors, limits, build (the 3D builder's steps), game (a game's steps). Units everywhere: x and y are shares of the stage (0 to 1, the ground at 0.92), times are seconds. Example: {"topic": "cartoon"}.
  - after: Call this first. Returns one topic of Jabbertoon's guide as Markdown (under 20,000 characters): start (what it makes and the order of calls), cartoon (the JSON program: cast, scenes, lines, moves), text (the same cartoon as screenplay text), moves, characters, looks, voices, places, errors, limits, build (the 3D builder's steps), game (a game's steps), song (the editor's own file: Studio characters, lines, moves, camera shots and a song the cast sings). Units everywhere: x and y are shares of the stage (0 to 1, the ground at 0.92), times are seconds. Example: {"topic": "cartoon"}.
- 2026-10-14 `build` changed (description, inputSchema)
  - before: Builds anything (a character, an animal, a car, a house, a rocket) in Jabbertoon's one 3D builder from steps, the ones its buttons take: spine, grow, add a ready part (leg, arm, head, wing, wheel, hat ...), set, copy, remove, look. Checks every step, says what was made (its parts, legs, size in blocks) and gives a jabbertoon.com/editor/ link that opens it in the Studio, to change and use in a cartoon, a world or a game. Over MCP the answer also shows a picture of it from four sides. Steps that start {"op": "new", "kind": "move"} make a move from keys, {"op": "new", "kind": "world"} a world (a level is played to check it), and kind "game" a game seen from the side, from above or in space, or "trench", "space", "surface" or "sky" a game with depth to fly. A refused step says where, why and how to fix it. The steps: get_guide {"topic": "build"}, a game's {"topic": "game"}.
  - after: Builds anything (a character, an animal, a car, a house, a rocket) in Jabbertoon's one 3D builder from steps, the ones its buttons take: spine, grow, bone (a skeleton and its skin, a bone at a time, as in Blender), add a ready part (leg, arm, head, wing, wheel, hat ...), set, copy, remove, look. Checks every step, says what was made (its parts, legs, size in blocks) and gives a jabbertoon.com/editor/ link that opens it in the Studio, to change and use in a cartoon, a world or a game. Over MCP the answer also shows a picture of it from four sides. Steps that start {"op": "new", "kind": "move"} make a move from keys, {"op": "new", "kind": "world"} a world (a level is played to check it), and kind "game" a game seen from the side, from above or in space, or "trench", "space", "surface" or "sky" a game with depth to fly. A refused step says where, why and how to fix it. The steps: get_guide {"topic": "build"}, a game's {"topic": "game"}.
- 2026-10-13 `build` changed (description, inputSchema)
  - before: Builds anything (a character, an animal, a car, a house, a rocket) in Jabbertoon's one 3D builder from steps, the ones its buttons take: spine, grow, add a ready part (leg, arm, head, wing, wheel, hat ...), set, copy, remove, look. Checks every step, says what was made (its parts, legs, size in blocks) and gives a jabbertoon.com/editor/ link that opens it in the Studio, to change and use in a cartoon, a world or a game. Over MCP the answer also shows a picture of it from four sides. A refused step says where, why and how to fix it. The steps: get_guide {"topic": "build"}.
  - after: Builds anything (a character, an animal, a car, a house, a rocket) in Jabbertoon's one 3D builder from steps, the ones its buttons take: spine, grow, add a ready part (leg, arm, head, wing, wheel, hat ...), set, copy, remove, look. Checks every step, says what was made (its parts, legs, size in blocks) and gives a jabbertoon.com/editor/ link that opens it in the Studio, to change and use in a cartoon, a world or a game. Over MCP the answer also shows a picture of it from four sides. Steps that start {"op": "new", "kind": "move"} make a move from keys, {"op": "new", "kind": "world"} a world (a level is played to check it), and kind "game" a game seen from the side, from above or in space, or "trench", "space", "surface" or "sky" a game with depth to fly. A refused step says where, why and how to fix it. The steps: get_guide {"topic": "build"}, a game's {"topic": "game"}.

Full history: https://api.protogrid.dev/v1/servers/com.jabbertoon%2Fcartoon-studio/changes

## Remotes

- https://jabbertoon.com/mcp (streamable-http, auth none, reachable true, uptime30d 0.9852941)

## Packages

_none_

## Tools (9)

- `build`: Builds anything (a character, an animal, a car, a house) in Jabbertoon's 3D builder from steps, as its buttons do: spine, grow, bone (a skeleton, a bone at a time), add a ready part (leg, arm, head, wing, wheel, hat ...), set, copy, remove, look. Checks every step, says what was made (its parts and size) and gives a jabbertoon.com/editor/ link that opens it in the Studio, to change and use in a cartoon, world or game. Over MCP the answer also shows a picture of it from four sides. Steps that start {"op": "new", "kind": "move"} make a move from keys, {"op": "new", "kind": "world"} a world (a level is played to check it), and kind "game" a game seen from the side, from above or in space, or "trench", "space", "surface" or "sky" a game with depth to fly, "walk" a place to walk at real size (played on foot: told what cannot be reached). A refused step says where, why and how to fix it. export_link opens Export, free: STL/3MF to 3D print, glTF (Blender, Unity, Godot), SVG, Minecraft .schem. The steps: get_guide {"topic": "build"}, a game's {"topic": "game"}.
- `get_guide`: Call this first. Returns one topic of Jabbertoon's guide as Markdown (under 20,000 characters): start (what it makes and the order of calls), cartoon (the JSON program: cast, scenes, lines, moves), text (the same cartoon as screenplay text), moves, characters, looks, voices, places, errors, limits, build (the 3D builder's steps), export (a build as a 3D printer's STL or 3MF, glTF for Blender, SVG blueprints, Minecraft), world (a world of blocks), walk (a place to walk), game (a game's steps), song (the editor's own file: Studio characters, lines, moves, camera shots and a song the cast sings). Units everywhere: x and y are shares of the stage (0 to 1, the ground at 0.92), times are seconds. Example: {"topic": "cartoon"}.
- `get_move`: Returns one ready-made move: its block program as JSON, the same program as screenplay text, its length in seconds, what it works on, its settings with units, its page and links. Name it by id (c4c:beh:wave_hello), short name (wave_hello) or page slug. To write your own move, start from one, change it, then validate it. Example: {"move": "wave_hello"}.
- `list_characters`: Lists the cast in 3D: the six people (bob, ria, sunny, sam, lee, rose) and the animals (dog, cat, fox, horse, gull, and bear2, fox2, rabbit2, raccoon2, cat2 on two legs), each with the designed entry a cast entry gives it and a voice; the voices a line can use; and cartoon_example, a whole talking cartoon to copy. (The six flat templates of older cartoons are listed too, as characters.) Call it to write a cast: {"dog": {"name": "Biscuit", "look": {"template": "dog", "colors": {"skin": "#8d6e63"}}, "voice": "am_puck"}}.
- `list_looks`: Lists the six art styles a character can be drawn in (flat, outlined, soft, storybook, bold, crayon), each with its page and a studio link, and the three body shapes (classic, big head, tall). A cast entry sets them as look.style and look.shape: {"look": {"template": "cat", "style": "crayon", "shape": "bighead"}}.
- `list_moves`: Lists the ready-made moves a character can do (walk in, wave hello, hop, bow, slump, talk...): id, name, length in seconds, the bodies it works on (two legs, four, none), its settings with units, page and links. A does block plays one: {"op": "does", "who": "dog", "behaviour": "c4c:beh:wave_hello"}. q keeps the moves whose words match or that do what a word means (dance finds Groove, scared finds Cower). Example: {"q": "wave"}.
- `report_problem`: Tells the people who make Jabbertoon something is wrong: a wrong answer, a check that refused a good cartoon or passed a bad one, a move that looks wrong, a link that does not open, wrong docs, something missing, or a step that was hard to get right (kind hard_step, with hard_because: optional, never needed to go on). Unlike the other tools, it keeps what you send: the report (kind, tool, code, where, item, note, hard_because) is saved for a person to read. Never put the cartoon, a name, an address or anything about the person you help in it. Example: {"kind": "validator_wrong", "tool": "validate", "code": "op_unknown", "note": "say was refused in a cartoon"}.
- `share_link`: Turns a cartoon, a scene, a move or a character into a jabbertoon.com link: it opens in the editor (a move in its move maker). It all travels after the #: nothing is uploaded or kept. All but a character's end with &from=ai (the page says an AI helper wrote it). One with errors gets them instead. Give one of cartoon, program, character or file. Example: {"program": {"v": 1, "kind": "behaviour", "scripts": [{"body": [{"op": "hop"}]}]}}.
- `validate`: Checks a cartoon, with the studio's own checks, before anyone sees it. Give one of cartoon, program, pack, character or file. Returns errors (it will not play as written: also a character or background the site lacks) and warnings, each {code, where, says, fix, url}, with did_you_mean and an RFC 6902 patch when certain; issues a viewer would see (off stage, overlapping, an empty stage, a line cut off) with a summary of who is where and says what when (seconds; x as a share of the stage); and, when ok, the canonical program and a link. repair: true also returns the program with every certain patch applied. Nothing you send is kept. Example: list_characters' cartoon_example.
