Skip to main content
Glama

Jabbertoon cartoon studio

Tell Jabbertoon something is wrong

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"}.

Input Schema

NameRequiredDescriptionDefault
osNoSet by the jabbertoon tool: win32, darwin or linux.
codeNoThe error code it gave, e.g. op_unknown.
itemNoWhat it is about: a move, character or look (c4c:beh:bow, dog, crayon), or a page.
kindYesWhat kind of problem it is (hard_step: a step that was hard to get right).
noteNoWhat was wrong, in a sentence or two. No cartoon, names or personal details.
toolNoThe tool whose answer was wrong, e.g. validate.
whereNoWhere it pointed, e.g. scripts[0].body[2].
cli_versionNoSet by the jabbertoon tool.
hard_becauseNoFor kind hard_step: what made the step hard (an error's words, a field that was unclear, a size that was hard to guess). Optional. No cartoon, names or personal details.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • addedInput schema / properties / hard_because
      Added value: +{
      +  "description": "For kind hard_step: what made the step hard (an error's words, a field that was unclear, a size that was hard to guess). Optional. No cartoon, names or personal details.",
      +  "maxLength": 500,
      +  "type": "string"
      +}
    • changedInput schema / properties / kind / description
      Previous value: -"What kind of problem it is."New value: +"What kind of problem it is (hard_step: a step that was hard to get right)."
    • changedInput schema / properties / kind / enum
      Previous value: -[
      -  "wrong_answer",
      -  "validator_wrong",
      -  "move_looks_wrong",
      -  "link_does_not_open",
      -  "docs_wrong",
      -  "missing",
      -  "other"
      -]New value: +[
      +  "wrong_answer",
      +  "validator_wrong",
      +  "move_looks_wrong",
      +  "link_does_not_open",
      +  "docs_wrong",
      +  "missing",
      +  "hard_step",
      +  "other"
      +]
  2. Changed10 schema fields changed
    • addedInput schema / properties / cli_version
      Added value: +{
      +  "description": "Set by the jabbertoon tool.",
      +  "maxLength": 40,
      +  "type": "string"
      +}
    • addedInput schema / properties / code
      Added value: +{
      +  "description": "The error code it gave, e.g. op_unknown.",
      +  "maxLength": 64,
      +  "type": "string"
      +}
    • changedInput schema / properties / item / description
      Previous value: -"What it is about: a move, character or look (c4c:beh:bow, dog, crayon), a tool name, or a jabbertoon.com page."New value: +"What it is about: a move, character or look (c4c:beh:bow, dog, crayon), or a page."
    • changedInput schema / properties / note / description
      Previous value: -"What was wrong, in a sentence or two. No personal details."New value: +"What was wrong, in a sentence or two. No cartoon, names or personal details."
    • changedInput schema / properties / note / maxLength
      Previous value: -1000New value: +500
    • addedInput schema / properties / os
      Added value: +{
      +  "description": "Set by the jabbertoon tool: win32, darwin or linux.",
      +  "maxLength": 40,
      +  "type": "string"
      +}
    • removedInput schema / properties / request
      Removed value: -{
      -  "description": "The tool call that produced the problem, as {\"tool\": \"...\", \"arguments\": {...}}. It is kept with the report, cut to 4,000 characters.",
      -  "type": "object"
      -}
    • addedInput schema / properties / tool
      Added value: +{
      +  "description": "The tool whose answer was wrong, e.g. validate.",
      +  "maxLength": 64,
      +  "type": "string"
      +}
    • addedInput schema / properties / where
      Added value: +{
      +  "description": "Where it pointed, e.g. scripts[0].body[2].",
      +  "maxLength": 200,
      +  "type": "string"
      +}
    • changedOutput schema / (root)
      Previous value: -{
      -  "$defs": {
      -    "problem": {
      -      "properties": {
      -        "code": {
      -          "type": "string"
      -        },
      -        "fix": {
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "says": {
      -          "type": "string"
      -        },
      -        "where": {
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        }
      -      },
      -      "required": [
      -        "code",
      -        "where",
      -        "says",
      -        "fix"
      -      ],
      -      "type": "object"
      -    }
      -  },
      -  "properties": {
      -    "error": {
      -      "$ref": "#/$defs/problem"
      -    },
      -    "notes": {
      -      "items": {
      -        "type": "string"
      -      },
      -      "type": "array"
      -    },
      -    "ok": {
      -      "type": "boolean"
      -    },
      -    "removed": {
      -      "description": "What was taken out of the report before it was saved (an email address, for example).",
      -      "items": {
      -        "type": "string"
      -      },
      -      "type": "array"
      -    },
      -    "report_id": {
      -      "type": "string"
      -    },
      -    "says": {
      -      "type": "string"
      -    },
      -    "status": {
      -      "description": "received",
      -      "type": "string"
      -    },
      -    "url": {
      -      "description": "The page about Jabbertoon's tools for AI assistants.",
      -      "type": "string"
      -    }
      -  },
      -  "required": [
      -    "ok",
      -    "url"
      -  ],
      -  "type": "object"
      -}New value: +null
  3. First observed

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare the write/non-idempotent profile; the description adds the crucial facts that the payload is persisted and read by a human, and imposes an explicit privacy prohibition ('Never put the cartoon, a name, an address or anything about the person you help in it'). That is exactly the behavioral context an agent cannot get from structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the purpose, then conditions, persistence, privacy rule and an example — every block earns its place. The first sentence is a long run-on with stacked clauses and a redundant parenthetical on hard_because, which slightly hurts readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 9 parameters, no output schema and a privacy-sensitive payload, the description covers what to send, what must be excluded, and that a human will read it. It does not say what the tool returns or whether submission is acknowledged, which is the only real gap given no output schema exists.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3; the description goes further by grouping the fields that get saved (kind, tool, code, where, item, note, hard_because) and by giving a worked example payload with realistic values. It adds moderate meaning over the schema but does not explain os/cli_version or the item vs where distinction.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Tells the people who make Jabbertoon something is wrong') and enumerates the concrete problem categories it handles, making it immediately distinguishable from read-only siblings like validate, get_move or list_moves. An agent can tell what this tool is for without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear triggering conditions ('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') and explicitly carves out the hard_step sub-case. It also contrasts the tool with siblings ('Unlike the other tools, it keeps what you send'), though it never states when *not* to file a report.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources