Jabbertoon cartoon studio
Was dieses MCP kann
Provides reusable cartoon characters, animation moves, art styles, program validation, and shareable studio links.
Tools
Eingabeschema
{'type': 'object', 'required': ['move'], 'properties': {'move': {'type': 'string', 'maxLength': 100, 'description': "The move's id (c4c:beh:wave_hello), short name (wave_hello) or page slug, as list_moves gives them."}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', '$defs': {'problem': {'type': 'object', 'required': ['code', 'where', 'says', 'fix'], 'properties': {'fix': {'type': ['string', 'null']}, 'code': {'type': 'string'}, 'says': {'type': 'string'}, 'where': {'type': ['string', 'null']}}}}, 'required': ['ok', 'url'], 'properties': {'id': {'type': 'string'}, 'ok': {'type': 'boolean'}, 'url': {'type': 'string', 'description': "The move's page on jabbertoon.com (the list of moves when the move is not found)."}, 'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'text': {'type': 'string', 'description': 'The same program as readable text, one block per line.'}, 'error': {'$ref': '#/$defs/problem'}, 'links': {'type': 'object'}, 'notes': {'type': 'array', 'items': {'type': 'string'}}, 'license': {'type': 'string'}, 'program': {'type': 'object', 'description': "The move's block program (JSON)."}, 'seconds': {'type': ['number', 'null']}, 'version': {'type': 'string'}, 'skeleton': {'type': 'boolean'}, 'pack_slug': {'type': 'string'}, 'description': {'type': 'string'}, 'content_hash': {'type': 'string'}}}
Eingabeschema
{'type': 'object', 'properties': {}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', '$defs': {'problem': {'type': 'object', 'required': ['code', 'where', 'says', 'fix'], 'properties': {'fix': {'type': ['string', 'null']}, 'code': {'type': 'string'}, 'says': {'type': 'string'}, 'where': {'type': ['string', 'null']}}}}, 'required': ['ok', 'url'], 'properties': {'ok': {'type': 'boolean'}, 'url': {'type': 'string', 'description': 'The page that lists every character.'}, 'count': {'type': 'integer'}, 'error': {'$ref': '#/$defs/problem'}, 'notes': {'type': 'array', 'items': {'type': 'string'}}, 'characters': {'type': 'array', 'items': {'type': 'object', 'required': ['slug', 'name', 'template', 'url'], 'properties': {'id': {'type': ['string', 'null'], 'description': 'The character pack id (c4c:char:<slug>) when the pack is published, else null.'}, 'url': {'type': 'string', 'description': "The character's page on jabbertoon.com."}, 'legs': {'type': 'integer'}, 'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'links': {'type': 'object', 'description': 'Links that open it: studio (put it in a cartoon) and create (start a new character from it).'}, 'views': {'type': 'array', 'items': {'type': 'string'}, 'description': 'The views it is drawn in; the first is its own.'}, 'colors': {'type': 'array', 'description': 'The look.colors keys (body, skin, acc), what each paints on this character, and the default colour.'}, 'options': {'type': 'array', 'description': 'The look.options keys this character has, with their values.'}, 'template': {'type': 'string', 'description': "What a cast entry's look.template says to draw this character."}}}}, 'cartoon_example': {'type': 'object', 'description': 'A whole talking cartoon file ({cast, program}) to copy: give it to validate as cartoon.'}, 'cast_entry_example': {'type': 'object', 'description': 'One cast entry that draws the first character: the value under a cast id, as in {"cast": {"A": <this>}}.'}}}
Eingabeschema
{'type': 'object', 'properties': {}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', '$defs': {'problem': {'type': 'object', 'required': ['code', 'where', 'says', 'fix'], 'properties': {'fix': {'type': ['string', 'null']}, 'code': {'type': 'string'}, 'says': {'type': 'string'}, 'where': {'type': ['string', 'null']}}}}, 'required': ['ok', 'url'], 'properties': {'ok': {'type': 'boolean'}, 'url': {'type': 'string', 'description': 'The page that shows every look.'}, 'count': {'type': 'integer'}, 'error': {'$ref': '#/$defs/problem'}, 'looks': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name', 'url'], 'properties': {'id': {'type': 'string', 'description': 'What look.style says.'}, 'url': {'type': 'string', 'description': "The look's page on jabbertoon.com."}, 'name': {'type': 'string'}, 'links': {'type': 'object', 'description': 'studio: opens the cartoon studio in this look.'}, 'description': {'type': 'string'}}}}, 'notes': {'type': 'array', 'items': {'type': 'string'}}, 'body_shapes': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name'], 'properties': {'id': {'type': 'string', 'description': 'What look.shape says.'}, 'name': {'type': 'string'}, 'description': {'type': 'string'}}}}}}
Eingabeschema
{'type': 'object', 'properties': {'q': {'type': 'string', 'maxLength': 100, 'description': 'Words to look for in a move\'s name, id or description, or what the move does, e.g. "wave", "walk in" or "dance". Leave it out to list every move.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', '$defs': {'problem': {'type': 'object', 'required': ['code', 'where', 'says', 'fix'], 'properties': {'fix': {'type': ['string', 'null']}, 'code': {'type': 'string'}, 'says': {'type': 'string'}, 'where': {'type': ['string', 'null']}}}}, 'required': ['ok', 'url'], 'properties': {'ok': {'type': 'boolean'}, 'url': {'type': 'string', 'description': 'The page that lists every move.'}, 'count': {'type': 'integer', 'description': 'How many moves are listed here.'}, 'error': {'$ref': '#/$defs/problem'}, 'moves': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'slug', 'name', 'url'], 'properties': {'id': {'type': 'string', 'description': 'The pack id, e.g. c4c:beh:wave_hello.'}, 'url': {'type': 'string', 'description': "The move's page on jabbertoon.com."}, 'name': {'type': 'string'}, 'slug': {'type': 'string', 'description': "The last part of the move's page URL."}, 'links': {'type': 'object', 'description': 'Links that open the move: blocks (the block editor) and studio (the cartoon studio).'}, 'license': {'type': 'string'}, 'seconds': {'type': ['number', 'null'], 'description': "How long the move's preview plays, in seconds."}, 'version': {'type': 'string'}, 'skeleton': {'type': 'boolean', 'description': 'True for the moves that bend chains, reach with hands or turn between views.'}, 'pack_slug': {'type': 'string', 'description': 'The short name used in #p= links, e.g. wave_hello.'}, 'description': {'type': 'string'}}}}, 'notes': {'type': 'array', 'items': {'type': 'string'}}, 'total': {'type': 'integer', 'description': 'How many moves there are in all.'}, 'filters': {'type': 'object', 'description': 'The filters this answer used, exactly as given.'}}}
Eingabeschema
{'type': 'object', 'required': ['kind'], 'properties': {'item': {'type': 'string', 'maxLength': 200, 'description': 'What it is about: a move, character or look (c4c:beh:bow, dog, crayon), a tool name, or a jabbertoon.com page.'}, 'kind': {'enum': ['wrong_answer', 'validator_wrong', 'move_looks_wrong', 'link_does_not_open', 'docs_wrong', 'missing', 'other'], 'type': 'string', 'description': 'What kind of problem it is.'}, 'note': {'type': 'string', 'maxLength': 1000, 'description': 'What was wrong, in a sentence or two. No personal details.'}, 'request': {'type': 'object', 'description': 'The tool call that produced the problem, as {"tool": "...", "arguments": {...}}. It is kept with the report, cut to 4,000 characters.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', '$defs': {'problem': {'type': 'object', 'required': ['code', 'where', 'says', 'fix'], 'properties': {'fix': {'type': ['string', 'null']}, 'code': {'type': 'string'}, 'says': {'type': 'string'}, 'where': {'type': ['string', 'null']}}}}, 'required': ['ok', 'url'], 'properties': {'ok': {'type': 'boolean'}, 'url': {'type': 'string', 'description': "The page about Jabbertoon's tools for AI assistants."}, 'says': {'type': 'string'}, 'error': {'$ref': '#/$defs/problem'}, 'notes': {'type': 'array', 'items': {'type': 'string'}}, 'status': {'type': 'string', 'description': 'received'}, 'removed': {'type': 'array', 'items': {'type': 'string'}, 'description': 'What was taken out of the report before it was saved (an email address, for example).'}, 'report_id': {'type': 'string'}}}
Eingabeschema
{'type': 'object', 'properties': {'cartoon': {'type': 'object', 'description': 'A saved cartoon file: {"cast"?, "places"?, "program"}. Links that play one are coming in the next release: the answer is not_yet.'}, 'program': {'type': 'object', 'description': 'A move: a block program {"v": 1, "kind": "behaviour", "scripts": [...]}, as get_move returns. A program of kind "scene" or "cartoon" gets not_yet.'}, 'character': {'type': 'object', 'description': 'A character: {"name": "...", "content": {...}}, the content of a character pack (tree, legs, kind, height, footprint, ...), or a whole character pack.'}}, 'maxProperties': 1, 'minProperties': 1, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', '$defs': {'problem': {'type': 'object', 'required': ['code', 'where', 'says', 'fix'], 'properties': {'fix': {'type': ['string', 'null']}, 'code': {'type': 'string'}, 'says': {'type': 'string'}, 'where': {'type': ['string', 'null']}}}}, 'required': ['ok', 'url'], 'properties': {'ok': {'type': 'boolean'}, 'url': {'type': 'string', 'description': 'The jabbertoon.com page the link opens (with not_yet, the page that says what links open today).'}, 'code': {'type': 'string', 'description': 'The share code: base64url of the UTF-8 canonical JSON, no padding; the part after #c=.'}, 'kind': {'type': ['string', 'null'], 'description': 'behaviour, scene, cartoon or character.'}, 'link': {'type': 'string', 'description': 'The link to give the person.'}, 'error': {'$ref': '#/$defs/problem'}, 'links': {'type': 'object', 'description': 'Every page that opens it: blocks, studio, create.'}, 'notes': {'type': 'array', 'items': {'type': 'string'}}, 'errors': {'type': 'array', 'items': {'$ref': '#/$defs/problem'}, 'description': 'The errors, in order: the first 50 at most (error_count says how many there are).'}, 'length': {'type': 'integer', 'description': "The link's length in characters."}, 'warnings': {'type': 'array', 'items': {'$ref': '#/$defs/problem'}, 'description': 'The warnings, in order: the first 50 at most (warning_count says how many there are).'}, 'error_count': {'type': 'integer', 'description': 'How many errors the checks found.'}, 'warning_count': {'type': 'integer', 'description': 'How many warnings the checks found.'}}}
Eingabeschema
{'type': 'object', 'properties': {'pack': {'type': 'object', 'description': 'A whole pack: the manifest (pack, id, type, version, name, author, license, remixable, derived_from, content_hash) and its content. The format: https://jabbertoon.com/docs/packs/'}, 'cartoon': {'type': 'object', 'description': 'A saved cartoon file: {"cast": {"<id>": {"name", "look": {"template", "style", "shape", "colors"}, "at": {"x", "y", "h", "facing"}}}, "places"?, "program"}, where program is a kind "cartoon" program. list_characters returns a whole one (cartoon_example).'}, 'program': {'type': 'object', 'description': 'A block program: {"v": 1, "kind": "behaviour" | "scene" | "cartoon", "scripts": [...]}, as get_move returns. A move is kind "behaviour". The language: https://jabbertoon.com/docs/language/'}, 'character': {'type': 'object', 'description': 'A character of your own, as share_link takes it: {"name": "...", "content": {...}}, the content of a character pack (tree, legs, kind, height, footprint, ...), or a whole character pack. Its tree is checked part by part. The format: https://jabbertoon.com/docs/packs/'}}, 'maxProperties': 1, 'minProperties': 1, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', '$defs': {'problem': {'type': 'object', 'required': ['code', 'where', 'says', 'fix'], 'properties': {'fix': {'type': ['string', 'null']}, 'code': {'type': 'string'}, 'says': {'type': 'string'}, 'where': {'type': ['string', 'null']}}}}, 'required': ['ok', 'url'], 'properties': {'ok': {'type': 'boolean', 'description': 'True when there are no errors.'}, 'url': {'type': 'string', 'description': 'The page that describes this format.'}, 'kind': {'type': ['string', 'null'], 'description': "The program's kind (behaviour, scene, cartoon), character, or the pack's type."}, 'error': {'$ref': '#/$defs/problem'}, 'notes': {'type': 'array', 'items': {'type': 'string'}}, 'errors': {'type': 'array', 'items': {'$ref': '#/$defs/problem'}, 'description': 'The errors, in order: the first 50 at most (error_count says how many there are).'}, 'checked': {'type': 'string', 'description': 'What was checked: program, character, pack or cartoon.'}, 'warnings': {'type': 'array', 'items': {'$ref': '#/$defs/problem'}, 'description': 'The warnings, in order: the first 50 at most (warning_count says how many there are).'}, 'error_count': {'type': 'integer', 'description': 'How many errors the checks found.'}, 'warning_count': {'type': 'integer', 'description': 'How many warnings the checks found.'}}}
Letzte Tool-Änderungen
Ähnliche MCP-Server
GripForge
Generates, rigs, animates, analyzes, and packages game characters, weapons, armor, effects, environments, and engine-ready assets.
MiOffice — AI-Powered Workspace Studio
Provides browser-based tools for processing PDFs, images, video, and audio, including generation, enhancement, conversion, transc…
BlitzReels Video Editor
Creates and edits short-form videos, including timelines, captions, transitions, AI-generated visuals, music, voiceovers, sound e…
Morpha
Enables creating, animating, and exporting layered short-form video projects.
Colour Memory
Provides historical color archive research, color analysis, accessibility checks, cultural context, and brand palette and asset g…
spriteship
Generates and manages 2D game characters, assets, animations, tilesets, UI packs, maps, and engine-ready exports for multiple gam…
switch
Enables management and exploration of an account-scoped library of AI-generated images and videos.
Xenition
Creates and manages documents, spreadsheets, presentations, apps, diagrams, media, automations, notes, tasks, and workspace knowl…