Whiteboard Animation
Turn any picture into a hand-drawn whiteboard animation video, from your AI assistant.
我该使用它吗
质量与安全性
基于对工具定义和协议合规性的自动分析。
上下文开销
这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 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"
]
}社区
证据