Whiteboard Animation

Turn any picture into a hand-drawn whiteboard animation video, from your AI assistant.

我该使用它吗

质量与安全性

A
描述质量
93%
模式完整度
66%
命名质量
96%
投毒风险
100%
权限匹配度
100%
协议合规性
100%

基于对工具定义和协议合规性的自动分析。

上下文开销

~1,366token 数(工具定义)
~925 B典型响应大小
对注意力有中等影响(占 128k 上下文窗口的 1.07%)

这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。

安装

一键安装

将以下内容添加到你的 `claude_desktop_config.json` 文件中:

{
  "mcpServers": {
    "whiteboard-animation": {
      "url": "https://mcp.whiteboardanimation.ai/mcp"
    }
  }
}

远程端点

https://mcp.whiteboardanimation.ai/mcpstreamable-http

它能做什么

工具清单

工具(9)

🟢 只读🟡 写入🔴 删除⚪ 未知
🟢quote

What drawing one picture costs, in credits, and the quote_version to pass when creating it.

输入模式

{
  "type": "object",
  "properties": {},
  "required": []
}
🟢status

Call first. The signed-in workspace: its plan, credits left, drawings queued and running, and how many may queue.

输入模式

{
  "type": "object",
  "properties": {},
  "required": []
}
🟡create_upload(file_name, content_type, size)

Start uploading a picture: answers an upload_url to PUT the bytes to, with the given headers. Then call create_drawing with the upload_id. Not needed when the host attaches the picture to create_drawing itself.

输入模式

{
  "type": "object",
  "properties": {
    "file_name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 120
    },
    "content_type": {
      "enum": [
        "image/png",
        "image/jpeg",
        "image/webp"
      ],
      "type": "string"
    },
    "size": {
      "type": "integer",
      "minimum": 1,
      "maximum": 10485760
    }
  },
  "required": [
    "file_name",
    "content_type",
    "size"
  ]
}
🟡create_drawing(upload_id, image, quote_version, max_credits, title, ...)

Draw a picture as a whiteboard animation. Spends credits (see quote). Answers at once with the drawing_id; the drawing takes a few minutes, follow it with get_drawing.

输入模式

{
  "type": "object",
  "properties": {
    "upload_id": {
      "type": "string",
      "minLength": 1
    },
    "image": {
      "type": "object",
      "properties": {
        "download_url": {
          "type": "string",
          "format": "uri"
        },
        "file_id": {
          "type": "string"
        },
        "file_name": {
          "type": "string"
        }
      },
      "required": [
        "download_url"
      ]
    },
    "quote_version": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64
    },
    "max_credits": {
      "type": "number",
      "minimum": 0
    },
    "title": {
      "type": "string",
      "maxLength": 120
    },
    "settings": {
      "type": "object",
      "properties": {
        "line_duration": {
          "type": "number",
          "minimum": 1,
          "maximum": 600
        },
        "color_duration": {
          "type": "number",
          "minimum": 1,
          "maximum": 600
        },
        "hold": {
          "anyOf": [
            {
              "const": 0
            },
            {
              "const": 0.08
            },
            {
              "const": 0.16
            },
            {
              "const": 0.32
            }
          ]
        },
        "color_order": {
          "enum": [
            "subject",
            "natural",
            "regions"
          ],
          "type": "string"
        },
        "strategy": {
          "enum": [
            "baseline",
            "regions",
            "attention",
            "cohesion"
          ],
          "type": "string"
        },
        "brush": {
          "type": "object",
          "properties": {
            "seed": {
              "type": "integer"
            },
            "size": {
              "type": "number",
              "minimum": 0.1,
              "maximum": 8
            },
            "swing": {
              "type": "number",
              "minimum": 0,
              "maximum": 8
            }
          },
          "required": [
            "seed",
            "size",
            "swing"
          ]
        }
      },
      "required": []
    }
  },
  "required": []
}
🟢get_drawing(drawing_id)

A drawing by id: its status and progress, its preview page, and once done the export options render_link accepts for it.

输入模式

{
  "type": "object",
  "properties": {
    "drawing_id": {
      "type": "string"
    }
  },
  "required": [
    "drawing_id"
  ]
}
🟢list_drawings(limit)

The latest drawings in the library, newest first.

输入模式

{
  "type": "object",
  "properties": {
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50
    }
  },
  "required": []
}
🟢render_link(drawings)

One link that renders up to 20 of your drawings as files, each with its own choices (format, resolution, aspect, background, hand…; see get_drawing export_options). Opening it in a browser renders them one after another and saves each file to that browser’s downloads; drawings still being drawn are rendered once they finish. Follow it with wait_render.

输入模式

{
  "type": "object",
  "properties": {
    "drawings": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "drawing_id": {
            "type": "string",
            "minLength": 1
          },
          "format": {
            "enum": [
              "mp4",
              "webm",
              "png"
            ],
            "type": "string"
          },
          "resolution": {
            "enum": [
              "original",
              "720p",
              "1080p"
            ],
            "type": "string"
          },
          "aspect": {
            "enum": [
              "original",
              "16:9",
              "9:16",
              "1:1"
            ],
            "type": "string"
          },
          "background": {
            "enum": [
              "paper",
              "colour",
              "transparent",
              "layers"
            ],
            "type": "string"
          },
          "colour": {
            "type": "string",
            "pattern": "^#[0-9a-f]{6}$"
          },
          "skip": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            }
          },
          "timing": {
            "enum": [
              "keep",
              "trim"
            ],
            "type": "string"
          },
          "hand": {
            "type": "string",
            "pattern": "^[\\w-]{1,40}$"
          },
          "hand_size": {
            "type": "number",
            "minimum": 0.65,
            "maximum": 1.5
          },
          "hand_direction": {
            "enum": [
              "auto",
              "right",
              "bottom"
            ],
            "type": "string"
          },
          "hand_tilt": {
            "type": "integer",
            "minimum": -15,
            "maximum": 15
          },
          "trace": {
            "type": "boolean"
          }
        },
        "required": [
          "drawing_id"
        ]
      },
      "minItems": 1,
      "maxItems": 20
    }
  },
  "required": [
    "drawings"
  ]
}
🟢wait_render(render_id, states)

A render link’s files: each drawing’s state (pending, rendering, saved, failed) and, once saved, its file name and size in the browser’s downloads. Pass back the states of the last answer: it answers as soon as any of them moves on, or after about 50 seconds.

输入模式

{
  "type": "object",
  "properties": {
    "render_id": {
      "type": "string"
    },
    "states": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "render_id"
  ]
}
🟢wait_drawing(drawing_id, status, progress)

For the drawing card: answers get_drawing as soon as the drawing moves on from the status and progress the card last showed, or after about 50 seconds.

输入模式

{
  "type": "object",
  "properties": {
    "drawing_id": {
      "type": "string"
    },
    "status": {
      "type": "string"
    },
    "progress": {}
  },
  "required": [
    "drawing_id"
  ]
}

社区

评价此服务器

证据

最近观测

已验证未记录版本9 个工具