sketchbord-mcp
sketchbord-mcp
一个 MCP 服务器,让 AI 代理在 Sketchbord 白板上可视化任务——并读回白板,包括人类在上面画的任何内容。
重点不是“画流程图”。代理将任务描述为若干部分——一个系统,画成柱子,柱子之间有带标签的箭头;一个清单;一个思维导图;一个漏斗;一个鱼骨图;一个序列图;一个路线图;一面便利贴墙;有时是一个流程——服务器将它们排版成一张海报,所以一眼就能看懂任务。
一张图,而不是一棵页面树。 白板过去会不断增长下钻层级:一个有子块的块会自成一层,顶层几乎什么都不说,而真正解释内容的部分藏在两次点击之下,没人去看。一个 lanes 部分用一屏就说清楚了——各部分并排,每个部分内部做什么,以及它们之间传递什么,都写在箭头上。
有四件事让它不仅仅是一个绘图 API:
内容决定结构,而不是任务类型。 没有白板模板:
pick_form将你拥有的内容的形状——顺序、层级、对比、循环、一组原因——映射到承载它的形式上,并说明每种形式在什么时候是错误的选择。两个任务的两块白板不应该看起来相似,一个重复相邻部分的部分,读者不得不白读两遍。它用整块白板来画。 来自白板自身目录的象形图(
list_icons——由同一只手绘制,不是粘贴的图片),每个部分一种颜色,箭头说明沿它们传递的内容,以及勾勒所描述屏幕的卡片(ui:一个搜索字段、一个按钮、列表的三行)。一张每个元素都是带文字的矩形的图片,读者不得不阅读它。编辑是增量的。 使用
mode: merge的visualize_task只重写你指定的部分——其他一切都保持原位,包括用户自己的便利贴和箭头。read_board会将这些用户添加的内容报告回来(userMarks),因此代理可以对人类画的内容做出反应,例如将其转化为代码更改。它把画读回给你。 代理是盲画的:它永远不会知道它的图片变成了四个堆叠的要点列表,一半的箭头什么都没说,一个标题长成了一个句子。所以每次绘制都会回答这幅画可测量的是什么——仅此而已,因为一条规则(“白板应该有五个部分”)是一种无论任务如何都会重复的形状,这就是每块白板最终都相似的原因。备注是按任务接受或忽略的观察,没有值得备注的内容的白板根本不会得到任何备注。
工具
工具 | 作用 |
| 绘制的工具。 将任务作为部分——27 种形式:lanes(一个系统,画成柱子 + 带标签的箭头)/ process / glossary / note / list / steps / checklist / tree / mindmap / pyramid / venn / flow / states / cycle / sequence / funnel / timeline / roadmap / fishbone / table / quadrants / proscons / metrics / cards / stickies / kanban / legend。 |
| 那些不是部分重写的编辑:按 id 的 |
| 读回一个层级:部分(id、kind、title、texts)+ |
| 从内容形状到承载它的形式的映射,并说明每种形式不适合的情况。无副作用。 |
| 针对一个请求的几种不同构图——用于删减和混合的起点,绝不是用来填写的模板。无副作用。 |
| 你可以放入 |
| 创建一个空白板并返回其 id/URL(账户密钥)。 |
| 列出可访问的白板及其 id 和 URL,最新的在前。 |
| 显示密钥能访问什么:一个绑定的白板,或一个可以创建白板的账户密钥。 |
Related MCP server: Excalidraw MCP Server
设置
你需要一个来自 sketchbord.ru 的 API 密钥(bord_sk_…):
账户密钥(推荐)— 我的白板 → API 密钥 → 创建一个不选择白板的密钥。它可以为每个任务创建白板,并可以在你能编辑的任何白板上绘制。
白板密钥 — 同一页面,选择了一个白板,或在白板内部:菜单(☰)→ «ИИ 集成»。绑定到一个白板,所以永远不需要
boardId。
配置你的 MCP 客户端
服务器通过 stdio 使用 MCP 通信。密钥就是全部配置——只有一个托管的 Sketchbord,服务器知道它在哪里。
Claude Code / Claude Desktop(.mcp.json 或 claude_desktop_config.json):
{
"mcpServers": {
"sketchbord": {
"command": "npx",
"args": ["-y", "sketchbord-mcp"],
"env": {
"BORD_API_KEY": "bord_sk_xxx"
}
}
}
}或者,从克隆版本:
npm install
npm run build
# then "command": "node", "args": ["/path/to/sketchbord-mcp/dist/index.js"]环境
变量 | 必填 | 默认值 | 说明 |
| 是 | — |
|
| 否 | — | 账户密钥的默认看板,这样 agent 就不必重复指定。 |
| 否 |
| 仅用于开发。对于任何非 localhost 主机,必须是 |
| 否 |
| 请求超时,这样卡住的 API 不会挂起 agent 的回合。 |
| 否 |
| API 返回错误时使用的语言( |
两种密钥
账户密钥(无看板)——代表你的账户操作,因此 agent 可以为每个任务创建看板(
create_board,或使用newBoard的visualize_task),并可以在你有权编辑的任何看板上绘制。如果你希望它默认使用某个项目,请设置BORD_BOARD_ID。看板密钥——绑定到单个看板,从密钥中推断。
区块结构
每个区块都有一个稳定的 id(这正是增量编辑的基础)、一个 kind、一个 title,然后是它的类型所使用的字段:
items(note/tag/color/done/span/children)——列表、步骤、检查清单、树、思维导图、便签、卡片、时间线、指标、漏斗的层级(最宽在前)或金字塔的层级(顶端在前)、循环的步骤、维恩图的集合、鱼骨图的成因类别;groups——lanes海报的支柱(id/subtitle/icon/color,以及用于左侧边缘人员列的bare)、看板列、4 个象限、proscons的两侧(第一列赞成,第二列反对)、roadmap的泳道;links——仅lanes:支柱之间的箭头(from/to按泳道 id、位置或标题指定,label表示沿其流动的内容,both、dashed);nodes+edges——流程 / 状态,以及sequence,其中节点是参与者,边是消息;columns+rows——table;对于roadmap,columns是时间段,每个条目的span指定其横条覆盖的时间段;text——note的段落、fishbone头部的影响、venn重叠区域的说明文字。
任何条目、组或区块都可以携带 icon(来自 list_icons 的 id;其他任何内容都会被丢弃,而不是绘制为占位符)。lanes 区块中的卡片可以携带 ui 而不是 children——field / button / row / chip——用于勾勒其所描述的界面。
width 为 narrow / normal / wide——关于比例的提示,但在 lanes 上除外,它设置单个支柱的宽度。计划上的 accent 设置看板的颜色,因此两个看板不必看起来相同。
流程图节点类型: process(步骤)、decision(分支——使用带标签的边)、error(失败)、start/end(终端)。
Token 成本
此服务器发布的工具定义约为 21 KB(约 6 000 个 token),它们会在每次请求时驻留在 agent 的上下文中。其中大部分是 visualize_task 的 schema,这是 agent 无需往返即可填写的 DSL 的代价。其他一切都有意保持精简:关于选择哪种形式的详细指导位于 pick_form 和 sketch_board 中,在调用之前不产生任何成本,而 read_board 将其回答限制在 60 000 个字符以内,因此单个看板无法填满上下文窗口。
读取看板是一个信任边界
read_board 返回的是其他人编写的文本。服务器将其包裹在明确的
"不可信数据"分隔符中并限制其大小,因为该内容与你的指令处于同一上下文中到达模型——一张写着"忽略之前的指令"的便签是一次提示注入尝试,它应被理解为用户在白板上写的内容,而不是一条命令。
示例提示
在一块看板上解释服务是如何组成的:前端、API、workers、Postgres 和 S3。
一个 lanes 区块:每个部分一个支柱,每个功能一张卡片,每张卡片上有一个图标,支柱之间有携带"HTTP 请求"、"SQL"、"文件 URL"的 links。如果端到端路径值得详细说明,则在下方添加一个 process 条带;如果读者不在团队中,则添加一个 glossary 条带。前端卡片上的 ui 将"有一个搜索界面"变成一张搜索界面的图片。
绘制任务:将价格表从 CSV 导入目录。
没有固定的答案。agent 会询问读者需要了解什么,并为每个部分选择一种形式:导入每一步丢失的行是一个 funnel,数字放在 note 中;几个不相关的失败原因是 fishbone;代码中需要修改的内容是 tree;CSV、解析器和目录之间按什么顺序发生什么是 sequence。然后为工作添加一个 checklist——真正的复选框,由执行者勾选。
我在看板上画了一个箭头和一张便签——看一下并修复代码。
read_board 返回 userMarks,例如一张位于 flow 区块上的便签"这里需要重试!"以及一条连接两个块的手绘箭头。agent 据此采取行动,然后通过 visualize_task(mode: merge)或 add_sticky 操作将决定反映回来——保持看板的其余部分不变。
替换计划并删除图例。
使用 mode: merge 和一个 plan 区块调用 visualize_task,然后使用 removeSections: ["legend"] 调用 update_visual。plan 卡片会就地重绘;其他所有内容保持其位置。
开发
npm install
npm run build # tsc → dist/
npm run typecheck
BORD_API_KEY=bord_sk_… BORD_API_URL=http://localhost:4000 npm start许可证
MIT——参见 LICENSE。
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables AI agents to programmatically generate, edit, and view Excalidraw diagrams with real-time browser synchronization. It provides a suite of tools for adding shapes, text, and arrows to diagrams through natural language interactions.111,91798MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to programmatically control a live Excalidraw canvas with element-level CRUD operations and real-time synchronization. It supports iterative diagramming through scene descriptions, screenshots, and advanced layout tools for collaborative AI-human workflows.3,023MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to create and manage collaborative whiteboards with sticky notes, shapes, charts, and more, directly in Overboard Studio.MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to create and manipulate live visual diagrams on an Excalidraw canvas in real-time via MCP tools.1,91714BSD 3-Clause
Related MCP Connectors
Real-time collaborative whiteboard — AI agents and humans edit the same board live over MCP.
AI agent draws editable hand-drawn diagrams (flowchart, ER, architecture) via MCP, not static images
Persistent docs and memory for AI agents — read, write, organize & search a shared workspace.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/kizilov-dev/sketchbord-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server