← WebMCP Directory

Tool tree

mcp.kitemir.jp

Media & PersonalTools verified
Website
Barge In
Explore capabilities
    canvas_describeAction

    Report the current state of the canvas: what is drawn, how much, and who drew it. **It also reports anything the user drew themselves since you last called it**, so call it again before you draw and before you answer, for as long as the conversation continues.

    View tool JSON
    {
      "name": "canvas_describe",
      "kind": "act",
      "impl": "imperative",
      "description": "Report the current state of the canvas: what is drawn, how much, and who drew it. **It also reports anything the user drew themselves since you last called it**, so call it again before you draw and before you answer, for as long as the conversation continues.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "required": []
      },
      "page": "/canvas/"
    }
    canvas_replanAction

    Declare how the user's interruption changes what you are making. **Required after canvas_describe reports an interruption — every drawing tool stays refused until you call this.** The new plan must absorb what the user drew, not merely tolerate it. ⚠️ **Write all three fields in ENGLISH**, whatever language the conversation is in — this page shows them on the canvas, and the canvas is in English.

    View tool JSON
    {
      "name": "canvas_replan",
      "kind": "act",
      "impl": "imperative",
      "description": "Declare how the user's interruption changes what you are making. **Required after canvas_describe reports an interruption — every drawing tool stays refused until you call this.** The new plan must absorb what the user drew, not merely tolerate it. ⚠️ **Write all three fields in ENGLISH**, whatever language the conversation is in — this page shows them on the canvas, and the canvas is in English.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "observed": {
            "type": "string",
            "description": "IN ENGLISH. What the user added, as you see it. e.g. \"two red wheels under the lion\""
          },
          "new_plan": {
            "type": "string",
            "description": "IN ENGLISH. What the whole picture will now become. e.g. \"a lion riding a wheeled car\""
          },
          "abandoning": {
            "type": "string",
            "description": "IN ENGLISH. The part of your earlier plan you are giving up. e.g. \"the four legs\""
          }
        },
        "required": [
          "observed",
          "new_plan",
          "abandoning"
        ]
      },
      "page": "/canvas/"
    }
    canvas_batchAction

    Draw many shapes in ONE call. shapes is an array; each item is {"kind":"stroke"|"circle"|"rect"|"text"} plus that shape's own fields, using the same names as the single-shape tools. ⚠️ **This is the normal way to draw** — every call costs the user seconds of waiting, so 30 shapes in one call beats 30 calls. They are laid down over a few seconds, and if the user draws meanwhile the rest is dropped — so send one part at a time (the mane, then the face), not a whole picture at once.

    View tool JSON
    {
      "name": "canvas_batch",
      "kind": "act",
      "impl": "imperative",
      "description": "Draw many shapes in ONE call. shapes is an array; each item is {\"kind\":\"stroke\"|\"circle\"|\"rect\"|\"text\"} plus that shape's own fields, using the same names as the single-shape tools. ⚠️ **This is the normal way to draw** — every call costs the user seconds of waiting, so 30 shapes in one call beats 30 calls. They are laid down over a few seconds, and if the user draws meanwhile the rest is dropped — so send one part at a time (the mane, then the face), not a whole picture at once.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "shapes": {
            "type": "array",
            "description": "Up to 80 shapes, drawn in order. Each needs \"kind\" plus that kind's fields",
            "items": {
              "type": "object"
            }
          }
        },
        "required": [
          "shapes"
        ]
      },
      "page": "/canvas/"
    }
    canvas_strokeAction

    Draw ONE polyline. ⚠️ Drawing more than one? Use canvas_batch and send them together. points is [[x,y],[x,y],...] where x and y are relative coordinates in 0-1. ⚠️ **Pass every point in one call. Do not call once per segment.** For a curve, list many points and send them together. Example: draw 6 whiskers in one call, not six. Each call costs a few seconds, so the number of calls is the wait the user sees.

    View tool JSON
    {
      "name": "canvas_stroke",
      "kind": "act",
      "impl": "imperative",
      "description": "Draw ONE polyline. ⚠️ Drawing more than one? Use canvas_batch and send them together. points is [[x,y],[x,y],...] where x and y are relative coordinates in 0-1. ⚠️ **Pass every point in one call. Do not call once per segment.** For a curve, list many points and send them together. Example: draw 6 whiskers in one call, not six. Each call costs a few seconds, so the number of calls is the wait the user sees.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "points": {
            "type": "array",
            "description": "[[x,y],...] every value in 0-1",
            "items": {
              "type": "array",
              "items": {
                "type": "number"
              }
            }
          },
          "color": {
            "type": "string",
            "description": "CSS colour. Defaults to the current colour"
          },
          "width": {
            "type": "number",
            "description": "Line width in px. Optional"
          }
        },
        "required": [
          "points"
        ]
      },
      "page": "/canvas/"
    }
    canvas_circleAction

    Draw ONE circle. cx,cy are the centre in relative coordinates (0-1); r is the radius as a fraction of the width. ⚠️ Drawing several? Use canvas_batch instead.

    View tool JSON
    {
      "name": "canvas_circle",
      "kind": "act",
      "impl": "imperative",
      "description": "Draw ONE circle. cx,cy are the centre in relative coordinates (0-1); r is the radius as a fraction of the width. ⚠️ Drawing several? Use canvas_batch instead.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "cx": {
            "type": "number",
            "description": "centre x, 0-1"
          },
          "cy": {
            "type": "number",
            "description": "centre y, 0-1"
          },
          "r": {
            "type": "number",
            "description": "radius, 0-1"
          },
          "color": {
            "type": "string",
            "description": "CSS colour"
          },
          "width": {
            "type": "number",
            "description": "line width"
          },
          "fill": {
            "type": "boolean",
            "description": "fill it in"
          }
        },
        "required": [
          "cx",
          "cy",
          "r"
        ]
      },
      "page": "/canvas/"
    }
    canvas_rectAction

    Draw ONE rectangle. x,y are the top-left corner in relative coordinates; w,h are width and height as fractions. ⚠️ Drawing several? Use canvas_batch instead.

    View tool JSON
    {
      "name": "canvas_rect",
      "kind": "act",
      "impl": "imperative",
      "description": "Draw ONE rectangle. x,y are the top-left corner in relative coordinates; w,h are width and height as fractions. ⚠️ Drawing several? Use canvas_batch instead.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "x": {
            "type": "number",
            "description": "top-left x, 0-1"
          },
          "y": {
            "type": "number",
            "description": "top-left y, 0-1"
          },
          "w": {
            "type": "number",
            "description": "width, 0-1"
          },
          "h": {
            "type": "number",
            "description": "height, 0-1"
          },
          "color": {
            "type": "string",
            "description": "CSS colour"
          },
          "width": {
            "type": "number",
            "description": "line width"
          },
          "fill": {
            "type": "boolean",
            "description": "fill it in"
          }
        },
        "required": [
          "x",
          "y",
          "w",
          "h"
        ]
      },
      "page": "/canvas/"
    }
    canvas_textAction

    Place text. x,y are the left edge and vertical middle of the text, in relative coordinates. size is the height as a fraction (0.06 is a normal size). Write the text in English unless the user asked otherwise. Several at once? Use canvas_batch.

    View tool JSON
    {
      "name": "canvas_text",
      "kind": "act",
      "impl": "imperative",
      "description": "Place text. x,y are the left edge and vertical middle of the text, in relative coordinates. size is the height as a fraction (0.06 is a normal size). Write the text in English unless the user asked otherwise. Several at once? Use canvas_batch.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "x": {
            "type": "number",
            "description": "x, 0-1"
          },
          "y": {
            "type": "number",
            "description": "y, 0-1"
          },
          "text": {
            "type": "string",
            "description": "the text to place"
          },
          "size": {
            "type": "number",
            "description": "text height, 0-1"
          },
          "color": {
            "type": "string",
            "description": "CSS colour"
          }
        },
        "required": [
          "x",
          "y",
          "text"
        ]
      },
      "page": "/canvas/"
    }
    canvas_undoAction

    Undo the most recently drawn item. It may be something the user drew, so do not call it repeatedly without saying so.

    View tool JSON
    {
      "name": "canvas_undo",
      "kind": "act",
      "impl": "imperative",
      "description": "Undo the most recently drawn item. It may be something the user drew, so do not call it repeatedly without saying so.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "required": []
      },
      "page": "/canvas/"
    }
    canvas_clearAction

    Erase the whole canvas. ⚠️ This also erases what the user drew. Only call it when the user has clearly asked for it.

    View tool JSON
    {
      "name": "canvas_clear",
      "kind": "act",
      "impl": "imperative",
      "description": "Erase the whole canvas. ⚠️ This also erases what the user drew. Only call it when the user has clearly asked for it.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "required": []
      },
      "page": "/canvas/"
    }