Skip to main content
Glama

sketchbord-mcp

俄语版本

一个 MCP 服务器,让 AI 代理在 Sketchbord 白板上可视化任务——并读回白板,包括人类在上面画的任何内容。

重点不是“画流程图”。代理将任务描述为若干部分——一个系统,画成柱子,柱子之间有带标签的箭头;一个清单;一个思维导图;一个漏斗;一个鱼骨图;一个序列图;一个路线图;一面便利贴墙;有时是一个流程——服务器将它们排版成一张海报,所以一眼就能看懂任务

一张图,而不是一棵页面树。 白板过去会不断增长下钻层级:一个有子块的块会自成一层,顶层几乎什么都不说,而真正解释内容的部分藏在两次点击之下,没人去看。一个 lanes 部分用一屏就说清楚了——各部分并排,每个部分内部做什么,以及它们之间传递什么,都写在箭头上。

有四件事让它不仅仅是一个绘图 API:

  • 内容决定结构,而不是任务类型。 没有白板模板:pick_form 将你拥有的内容的形状——顺序、层级、对比、循环、一组原因——映射到承载它的形式上,并说明每种形式在什么时候是错误的选择。两个任务的两块白板不应该看起来相似,一个重复相邻部分的部分,读者不得不白读两遍。

  • 它用整块白板来画。 来自白板自身目录的象形图(list_icons——由同一只手绘制,不是粘贴的图片),每个部分一种颜色,箭头说明沿它们传递的内容,以及勾勒所描述屏幕的卡片(ui:一个搜索字段、一个按钮、列表的三行)。一张每个元素都是带文字的矩形的图片,读者不得不阅读它。

  • 编辑是增量的。 使用 mode: mergevisualize_task 只重写你指定的部分——其他一切都保持原位,包括用户自己的便利贴和箭头。read_board 会将这些用户添加的内容报告回来(userMarks),因此代理可以对人类画的内容做出反应,例如将其转化为代码更改。

  • 它把画读回给你。 代理是盲画的:它永远不会知道它的图片变成了四个堆叠的要点列表,一半的箭头什么都没说,一个标题长成了一个句子。所以每次绘制都会回答这幅画可测量的是什么——仅此而已,因为一条规则(“白板应该有五个部分”)是一种无论任务如何都会重复的形状,这就是每块白板最终都相似的原因。备注是按任务接受或忽略的观察,没有值得备注的内容的白板根本不会得到任何备注。

工具

工具

作用

visualize_task

绘制的工具。 将任务作为部分——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。mode: replace 绘制整块白板;mode: merge 只重写你指定的部分,其余部分——以及用户自己的画——保持原位。checklist 绘制真实的、可点击的复选框,其勾选状态保存在文档中。newBoard: "<task>" 绘制到即时创建的白板上。返回一个 URL。

update_visual

那些不是部分重写的编辑:按 id 的 removeSections,或元素级 opsset_textset_noterecolorremoveadd_sticky)。

read_board

读回一个层级:部分(id、kind、title、texts)+ userMarks——用户添加了什么,手绘箭头连接了什么,便签位于哪个部分上。

pick_form

从内容形状到承载它的形式的映射,并说明每种形式不适合的情况。无副作用。

sketch_board

针对一个请求的几种不同构图——用于删减和混合的起点,绝不是用来填写的模板。无副作用。

list_icons

你可以放入 icon 的象形图 id。从连接的服务器获取,所以永远不会是过时的副本。无副作用。

create_board

创建一个空白板并返回其 id/URL(账户密钥)。

list_boards

列出可访问的白板及其 id 和 URL,最新的在前。

board_info

显示密钥能访问什么:一个绑定的白板,或一个可以创建白板的账户密钥。

Related MCP server: Excalidraw MCP Server

设置

你需要一个来自 sketchbord.ru 的 API 密钥(bord_sk_…):

  • 账户密钥(推荐)— 我的白板API 密钥 → 创建一个不选择白板的密钥。它可以为每个任务创建白板,并可以在你能编辑的任何白板上绘制。

  • 白板密钥 — 同一页面,选择了一个白板,或在白板内部:菜单(☰)→ «ИИ 集成»。绑定到一个白板,所以永远不需要 boardId

配置你的 MCP 客户端

服务器通过 stdio 使用 MCP 通信。密钥就是全部配置——只有一个托管的 Sketchbord,服务器知道它在哪里。

Claude Code / Claude Desktop(.mcp.jsonclaude_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"]

环境

变量

必填

默认值

说明

BORD_API_KEY

bord_sk_… 密钥;决定可访问的看板和权限。通常你只需要设置这一个。

BORD_BOARD_ID

账户密钥的默认看板,这样 agent 就不必重复指定。

BORD_API_URL

https://sketchbord.ru/api

仅用于开发。对于任何非 localhost 主机,必须是 https://:服务器会退出,而不是以明文形式在网络上传输你的密钥。

BORD_TIMEOUT_MS

30000

请求超时,这样卡住的 API 不会挂起 agent 的回合。

BORD_LANG

en

API 返回错误时使用的语言(en / ru)。当你的 agent 与俄语使用者对话时,设置为 ru

两种密钥

  • 账户密钥(无看板)——代表你的账户操作,因此 agent 可以为每个任务创建看板create_board,或使用 newBoardvisualize_task),并可以在你有权编辑的任何看板上绘制。如果你希望它默认使用某个项目,请设置 BORD_BOARD_ID

  • 看板密钥——绑定到单个看板,从密钥中推断。

区块结构

每个区块都有一个稳定的 id(这正是增量编辑的基础)、一个 kind、一个 title,然后是它的类型所使用的字段:

  • itemsnote / tag / color / done / span / children)——列表、步骤、检查清单、树、思维导图、便签、卡片、时间线、指标、漏斗的层级(最宽在前)或金字塔的层级(顶端在前)、循环的步骤、维恩图的集合、鱼骨图的成因类别;

  • groups——lanes 海报的支柱(id / subtitle / icon / color,以及用于左侧边缘人员列的 bare)、看板列、4 个象限、proscons 的两侧(第一列赞成,第二列反对)、roadmap 的泳道;

  • links——仅 lanes:支柱之间的箭头(from / to 按泳道 id、位置或标题指定,label 表示沿其流动的内容,bothdashed);

  • nodes + edges——流程 / 状态,以及 sequence,其中节点是参与者,边是消息;

  • columns + rows——table;对于 roadmapcolumns 是时间段,每个条目的 span 指定其横条覆盖的时间段;

  • text——note 的段落、fishbone 头部的影响、venn 重叠区域的说明文字。

任何条目、组或区块都可以携带 icon(来自 list_icons 的 id;其他任何内容都会被丢弃,而不是绘制为占位符)。lanes 区块中的卡片可以携带 ui 而不是 children——field / button / row / chip——用于勾勒其所描述的界面。

widthnarrow / normal / wide——关于比例的提示,但在 lanes 上除外,它设置单个支柱的宽度。计划上的 accent 设置看板的颜色,因此两个看板不必看起来相同。

流程图节点类型: process(步骤)、decision(分支——使用带标签的边)、error(失败)、start/end(终端)。

Token 成本

此服务器发布的工具定义约为 21 KB(约 6 000 个 token),它们会在每次请求时驻留在 agent 的上下文中。其中大部分是 visualize_task 的 schema,这是 agent 无需往返即可填写的 DSL 的代价。其他一切都有意保持精简:关于选择哪种形式的详细指导位于 pick_formsketch_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_taskmode: merge)或 add_sticky 操作将决定反映回来——保持看板的其余部分不变。

替换计划并删除图例。

使用 mode: merge 和一个 plan 区块调用 visualize_task,然后使用 removeSections: ["legend"] 调用 update_visualplan 卡片会就地重绘;其他所有内容保持其位置。

开发

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

A
license - permissive license
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

View all related MCP servers

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.

View all MCP Connectors

Latest Blog Posts

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