关于 openflowkit-mcp
OpenFlowKit 是面向开发者和 Agent 的图表编辑器与命令行工具,采用统一文本格式,支持实时画布编辑、代码库映射和导出。其 MCP 服务可让 Agent 操作画布或图表文件。
主要功能
- 01实时画布绘制与编辑
- 02文本图表及格式转换
- 03GitHub 代码库架构映射
- 04支持十种图表类型
- 05导出图像、文档与动画
- 06命令行校验和 CI 工作流
适用场景
- 01让 Agent 绘制或修改架构图
- 02生成带代码行引用的 GitHub 代码库地图
- 03转换 Mermaid、Structurizr 或 D2 图表
- 04在 CI 中校验并跟踪架构图
MCP 相关
MCP 服务提供工具,可在实时画布或文件中创建、读取、编辑、设置样式、移动、截图和导出图表。它还提供代码库分析工具,用于发现架构并报告差异。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
29收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| dsl | string | 是 | 要验证的 OpenFlow DSL、Mermaid、Structurizr DSL 或 D2 源码。 |
详细介绍
OpenFlowKit
架构图可以手绘、编写为代码,也可以交给 Agent 绘制。
免费、开源、本地优先。粘贴 GitHub 仓库链接,即可生成架构图,每条连线都标注了对应的代码行。
为什么选择 OpenFlowKit
1. Agent 在你的画布上实时绘图
连接 Claude Code、Cursor 或任何 MCP 客户端,然后让它绘制图表。Agent 会读取页面、 绘图、调整样式并截图检查自己的成果,你可以在旁边实时观看。它所做的每项更改都只需一次撤销操作,就像你自己编辑一样。连接你的 Agent ↓
2. 文本和画布是同一张图
flowchart right
Client [blue] -> "API Gateway" [emerald] : HTTPS
"API Gateway" -> Queue [queue, amber]
Queue -> Worker
Worker -> Store [cylinder, red, bold]
打开代码面板(⌥C),将此内容粘贴到面板中,然后按 ⌘↵。在画布上拖动元素 或编辑文本;按 ⌘↵ 可根据文本重新生成画布,这只需一次撤销操作。粘贴 Mermaid、Structurizr 或 D2 内容,即可转换为图表。
在空白画布的输入框中输入 owner/repo,然后按 Map repo;也可以打开
app.openflowkit.com/#/map/github/<owner>/<repo>
(试用示例)。
浏览器会从 GitHub 读取仓库并绘制其组成部分。点击方框即可在原处展开,每条箭头都会列出其对应的 file:line,并链接到代码。无需密钥,也无需安装。对于私有仓库,可在页面上添加只读 GitHub 令牌,或绘制本地检出版本:npx openflowkit map . --html map.html
(私有仓库)。
4. 导出,包括动画
可导出为 PNG、SVG、PDF、JSON,或选择 Copy as Mermaid,用于 README。在上方文本中添加 animate 块即可指定步骤,随后应用会在浏览器中将其导出为动画 SVG、GIF、MP4 或 WebM。
animate build 6s loop {
step Client
step Client -> "API Gateway" : HTTPS
step Queue, Worker
step Store hold 2s
}
这个动画就是上方两个代码片段由应用导出的动画 SVG。GitHub 会像显示图片一样播放它。
十种图表类型,一种语言
每种图表都使用同一种简短、宽容的文本语法,并会针对每行报错,说明如何修复。
下面的每张图都是对应文档页面上的第一个示例,由 openflowkit CLI 渲染。
![]() 架构图 · 云图标、分组,以及包含多个视图的 C4 模型 | ![]() 序列图 · alt / opt / loop、注释、激活 |
![]() 流程图 · 形状、判断、分组 | ![]() ERD · 列、键、乌鸦脚基数 |
![]() 状态图 · 起始和结束、复合状态 | ![]() 类图 · 成员、构造型、关系 |
![]() 思维导图 · 缩进就是树结构 | ![]() Git 图 · 分支、合并、标签 |
![]() 图表 · 以文本编写数据,可在表格中编辑 | ![]() 线框图 · 手机、平板或桌面屏幕上的 35 种控件 |
这门语言有版本管理,并集中记录在一个文件中:src/dsl/grammar.md (文档)。代码面板、助手、MCP 工具和 CLI 使用的都是同一种文本。
快速开始
在浏览器中: app.openflowkit.com。无需安装,无需账户。
在终端中: npx openflowkit(Node 20.11+)。
在本地运行(Node 22.22+):
git clone https://github.com/openflowkit/openflowkit.git
cd openflowkit
npm install && npm run dev # http://localhost:3000
连接你的 Agent
OpenFlowKit 提供一组 Agent 工具。根据 Agent 的运行位置选择对应行:
| Agent 的运行位置…… | 连接方式 | 可以做什么 |
|---|---|---|
| 在你的电脑上:Claude Code、Cursor、VS Code、Claude Desktop、Windsurf | 下方的 MCP 服务 | 全部功能:在你打开的画布上绘图(每次更改对应一步撤销)、编辑仓库中的 .openflow.json 文件、映射代码库、截取屏幕截图 |
| 在聊天应用中:claude.ai、Claude Desktop、ChatGPT | 添加自定义连接器:https://mcp.openflowkit.com/mcp,选择 No sign-in | 在聊天中以卡片形式绘制图表,并提供 Open in OpenFlowKit。不会绘制在你打开的画布上 |
| 在浏览器中(实验性) | 无需安装:在支持 WebMCP 的 Agent 浏览器中打开图表 | 读取和编辑你打开的图表 |
对于 Claude Code,只需一行:
claude mcp add -s user openflowkit -- npx -y openflowkit mcp
对于 Codex:codex mcp add openflowkit -- npx -y openflowkit mcp。
对于 Claude Desktop、Windsurf 和任何其他 MCP 客户端:
{
"mcpServers": {
"openflowkit": { "command": "npx", "args": ["-y", "openflowkit", "mcp"] }
}
}
重启 Agent,然后在应用中点击 Connect agent,或打开
app.openflowkit.com/#/connect。该面板提供各客户端的操作步骤,
并会复制包含配对令牌的相同配置。如果没有打开应用,这些工具也会编辑仓库中的 .openflow.json 文件。
每个客户端的分步说明及故障修复方法:连接你的 Agent。
插件:Claude Code 和 Codex(一次安装即可配置服务和技能)
# Claude Code
claude plugin marketplace add openflowkit/openflowkit
claude plugin install openflowkit@openflowkit
# Codex: add the marketplace, then install OpenFlowKit from the Plugins Directory
codex plugin marketplace add openflowkit/openflowkit
该技能(skills/openflowkit/SKILL.md)会告知 Agent 何时使用图表有帮助、如何编写图表,以及如何将图表保存在代码旁边。能够读取网页的 Agent 可通过 https://app.openflowkit.com/llms.txt 获取相同文本。
MCP 服务会为你的 Agent 提供你在实时画布或文件上可用的操作。
| 它能做什么 | 使用的工具 |
|---|---|
| 绘制 文本或 Mermaid 图表,然后修改图表 | create_diagram、update_diagram、add_shape |
| 读取 每个页面、图表背后的文本,以及你选中的内容 | get_document、get_diagram、list_pages |
| 重新设置样式并移动 现有内容 | style、move、delete |
| 查看 自己的结果 | screenshot 会返回一张模型可以查看的真实图片 |
| 交付文件 | export:SVG、PNG、PDF、JSON 或动画 SVG |
| 读取你的代码仓库 | discover_architecture、drift_report、explain_element |
可以试着提出这些请求:
- “绘制这个代码仓库的架构图。”
- “把我选中的方框设为红色,并在 API 前面添加一个缓存。”
- “把我们 README 中的 Mermaid 转换成可编辑的图表。”
- “对比 architecture.ofk 和代码,告诉我有哪些偏差。”
你对画布所做的编辑是安全的:如果你移动、重新设置样式或重命名了内容,而 Agent 又根据文本重新生成图表,get_diagram 会提供保留每项编辑的文本,update_diagram 会报告它不得不舍弃的内容。Agent 每次修改都是一个撤销步骤,Connect 面板会显示最近的一次修改,并提供 Undo 按钮。
全部 29 个工具
16 个编辑器操作,也可用于文件:create_diagram、
update_diagram、get_diagram、list_diagrams、get_syntax、
search_icons、find_icons_for、move、style、delete、
add_shape、export、screenshot、fit_view、get_document、list_pages。
13 个文件和代码仓库操作:openflow_create、openflow_open、openflow_save、whoami、
server_info、validate_openflow_dsl、list_diagram_node_types、list_starter_templates、
get_starter_template、analyze_codebase、discover_architecture、drift_report、
explain_element。
参数和示例:MCP 服务文档。操作清单位于
src/agent/manifest.ts。需要 Node 20.11+。
改用自己的密钥: 按 ⌘J 打开助手。选择 Claude、OpenAI、Gemini、 Groq、Mistral、Cerebras、NVIDIA、OpenRouter、Ollama 或任何兼容 OpenAI 的端点(LM Studio…), 然后粘贴密钥。密钥会保留在此浏览器中,回复会以提案的形式显示,供你应用或忽略。
导入现有图表
粘贴到代码面板即可转换,并会如实列出无法保留的内容。直接将 Mermaid 粘贴到画布上,即可在原处绘制。
| 来源 | 转换内容 |
|---|---|
| Mermaid | flowchart / graph、sequenceDiagram、stateDiagram、erDiagram、classDiagram、mindmap、architecture、gitGraph |
| Structurizr DSL | 模型、视图和样式,转换为每个视图对应一个页面的 C4 工作区 |
| D2 | 形状、连接线和容器 |
导出时,Copy as Mermaid 会将流程图或时序图转换为 Mermaid 文本,可用于 README 或 wiki。Mermaid · 从 Structurizr 导入
在代码仓库和 CI 中使用
openflowkit CLI 可在任何终端或 CI 作业中运行与应用相同的引擎:
npx openflowkit render diagram.ofk -o diagram.svg # Mermaid, D2, Structurizr or DSL → SVG
npx openflowkit validate diagram.ofk --strict # exit 1 on an error
npx openflowkit convert flow.mmd -o flow.openflow.json
npx openflowkit discover . --out architecture.ofk # draft a C4 model of this repo
npx openflowkit drift . # exit 1 when the code moved on
将 architecture.ofk 与代码一同提交,drift 就能在 CI 中确保架构图保持准确。PR diagrams
Action 会在拉取请求中评论图表的变更情况:节点和连接线数量、文本差异,以及 .ofk 模型的偏差。
CLI · GitHub Action
导出与分享
| 格式 | 说明 |
|---|---|
| PNG | 1× 或 2×;浅色、深色或打印主题;可选透明背景 |
| SVG、PDF | 矢量格式,嵌入图标和 Inter 字体 |
| JSON | 整个文档中的每个页面;可在任何浏览器中打开 |
| 动画 SVG、GIF、MP4、WebM | 在浏览器中根据 animate 块或连接器顺序生成 |
| 复制为 Mermaid | 流程图和时序图 |
| 分享链接 | 只读链接,在浏览器中加密;或可编辑副本,代码位于链接中,不会上传任何内容 |
键盘
每个操作都有对应的按键,在应用中按 ? 可查看所有按键。
最先会用到的按键
| 按键 | 操作 |
|---|---|
| V R O T A | 选择、矩形、椭圆、文本、连接器 |
| ⌥C · ⌘↵ | 代码面板 · 根据文本生成 |
| ⌘J | AI 助手 |
| M | 在 Canvas 和 Map 之间切换 |
| ⌘F | 在画布上查找 |
| ⇧1 · ⇧2 | 适应全部内容 · 缩放至所选内容 |
| ⌘G · ⌘D | 组合 · 复制 |
| Enter | 编辑所选形状的标签 |
在 Windows 和 Linux 上,用 Ctrl 和 Alt 分别替代 ⌘ 和 ⌥。
工作原理
这张图也是 OpenFlowKit 文本:how-it-works.ofk,以动画 SVG 格式导出,并使用 pulse 预设。
你和你的 Agent 也可以直接在画布上绘图;每次编辑,无论是输入文本还是手动操作,都会作为同一文档上的一条命令执行。
画布上的任何帧都可以写回为规范文本,并且测试保证 format(format(x)) == format(x)。语言和文档代码采用纯 TypeScript 编写,不依赖 React、Pixi 或 DOM,因此同一个编译器可以在浏览器、MCP 服务和 CLI 中运行。完整介绍请参阅:ARCHITECTURE.md。
仓库结构
| 路径 | 内容 |
|---|---|
src/dsl/ | 语言:语法、解析器、图表类别、编译与序列化、仓库发现 |
src/opencanvas/ | 编辑器:文档模型与命令、Pixi 渲染器、导出器、React UI |
src/agent/ | Agent 调用的操作、桥接协议、操作清单 |
mcp-server/ | 已发布的 MCP 服务和 openflowkit CLI |
cli/ | npm 上的 openflowkit:CLI 的简称 |
plugin/、skills/ | Claude Code 和 Codex 插件,以及 Agent 技能 |
action/ | PR 图表 GitHub Action |
worker/ | 分享链接 Worker(仅存储密文) |
stats/ | 私有使用情况仪表板 Worker |
docs-site/ | 文档站点 |
自托管
docker build -t openflowkit . && docker run --rm -p 3045:3045 openflowkit # http://localhost:3045
该镜像是通过 nginx 提供的静态构建版本,使用与托管应用相同的响应头。内容安全策略、自有网络中的 AI 提供商以及分享链接,请参阅自托管。
隐私
你的图表会留在浏览器中。只有在你主动选择时,数据才会离开浏览器:使用你自己的密钥调用 AI 时,数据会发送给相应的提供方;创建分享链接时,会上传一份加密副本;生成代码库地图时,会从 GitHub 读取数据。 无需账户。我们会收集基本使用统计数据来改进 OpenFlowKit;你可以在 Settings 中关闭统计。点击主页上的 Download all diagrams,即可一次性备份所有内容;在任何浏览器中点击 Import 即可恢复。
常见问题
免费吗? 是的:采用 MIT 许可,可免费使用,也可自行托管。团队版 Pro 计划正在筹备中;应用内可以加入候补名单。
支持离线使用吗? 页面打开后,绘图、代码面板和导出功能都可以在页面中运行。AI、分享链接和代码库地图需要网络连接。若要完全离线使用,请自行托管。
支持哪些浏览器? 支持当前版本的桌面浏览器,且需支持 WebGL。自动化测试在 Chromium 中运行。
团队成员可以一起编辑吗? 目前不支持实时协作。只读链接是一个快照,可编辑链接会为每个人提供独立副本,而 .openflow.json 和 .ofk 文件可以直接放在 git 中使用。
更多信息:常见问题。
参与贡献
欢迎提交 Issue、创意和 PR。请先阅读 CONTRIBUTING.md,了解环境配置和检查流程;阅读 ARCHITECTURE.md,了解代码的组织方式。欢迎在 Discussions 中提问。查看各版本的变更:CHANGELOG.md。
如需报告安全问题,请按照 SECURITY.md 中的说明私下提交。本项目采用 MIT 许可,详见 LICENSE。
如果 OpenFlowKit 帮你保存了图表,请在 GitHub 上给它一个 ⭐。
这样其他人也能找到它。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。









