无需 MCP 服务器:在 Claude Project 中用 Python 指令让 Claude 生成 draw.io 图解链接
AI 应用MCP 服务交互助手【免费下载链接】drawio-mcp项目地址https://gitcode.com/gh_mirrors/dr/drawio-mcp点击查看免费下载本指南讲解 drawio-mcp 仓库中一条「零安装」的替代集成路线把项目指令Project Instructions粘贴进 Claude.ai 的 Project 设置让 Claude 用 Python 代码执行的方式生成压缩编码的 draw.io 打开链接并以 HTML artifact 交付。读完本文你将掌握这套方案的安装步骤、核心压缩/编码原理、三种图格式Mermaid / XML / CSV的模板以及避免 base64 链接损坏的两条红线规则并了解仓库源码shared/mx-xml.js、shared/normalize-model.js是如何用同一套 XML 约定做服务端校验的。方案概览为什么可以完全不装 MCP仓库根目录 README.md 列出了四种把 draw.io 接入 AI 助手的方式MCP App Server对话内联渲染、MCP Tool Server浏览器打开、Assistant Plugins生成.drawio文件以及本文要讲的第四种——Project Instructions无需 MCP。它不需要安装任何 MCP 服务器也不要求桌面应用只需把指令文本粘贴进 Claude Project 的设置里即可生效。根据 project-instructions/README.md这套方案的核心优势是无需安装粘贴指令后在 Claude.ai 中立即生效无需桌面应用完全在浏览器中完成易于使用只需向 Claude Project 添加指令隐私友好生成的 URL 使用 hash 片段#create...承载数据数据始终留在浏览器端不会发送到任何服务器。从仓库结构看project-instructions/目录是整个仓库中唯一「不依赖任何运行时、纯提示词驱动」的方案project-instructions/AGENTS.md 与README.md说明原理而真正要被粘贴进 Claude Project 的是 project-instructions/claude-project-instructions.txt约 170 行完整指令。根目录 AGENTS.md 还特别说明了一个仓库约定每个子目录的CLAUDE.md只通过AGENTS.md导入同目录的AGENTS.md作为单一事实来源本目录的project-instructions/CLAUDE.md同样如此——阅读本文时请以project-instructions/下的三份文件为准。安装向 Claude Project 粘贴两条指令安装过程只有三步全程不涉及命令行打开你的 Claude Project 设置Settings将 project-instructions/claude-project-instructions.txt 的完整内容添加到项目指令Project Instructions中同时将 shared/xml-reference.md 的内容一并加入——这是 XML 生成参考覆盖边路由edge routing、容器containers、图层layers、标签tags、元数据metadata、暗色模式dark mode等主题。完成后直接在 Project 里请 Claude 创建图表它就会生成可点击的 draw.io URL。shared/xml-reference.md是仓库内所有交付方式MCP App Server、MCP Tool Server、Claude Code 插件、Project Instructions共用的「单一事实来源」见根 AGENTS.md 中 Shared References 一节因此它与claude-project-instructions.txt配套使用能让 Claude 生成的 XML 同时满足渲染正确与后续布局正确两个要求。工作原理四步流水线整套流程是一条固定流水线来自 project-instructions/AGENTS.mdClaude 生成图代码Mermaid、XML 或 CSV 三选一Claude 执行一段 Python 代码对图代码进行压缩与编码脚本输出一个完整的 HTML 页面其中以可点击按钮的形式内嵌了最终 URLClaude 将 HTML 作为 artifact 呈现给用户用户点击按钮即可在 draw.io 中打开。关键点在于Claude 从不直接生成最终 URL 文本。URL 由 Python 脚本在运行时构造并嵌入 HTMLClaude 只负责把脚本输出原样呈现为 artifact从而绕开了大模型逐 token 复述长字符串的环节。在动手之前Claude 需要先决定用哪种格式来写图格式适用场景Mermaid流程图、时序图、ER 图、甘特图、状态图、类图CSV层级数据组织结构图、从表格批量导入XML复杂布局、精确定位、自定义样式、图标与形状核心脚本压缩、编码与 HTML 输出claude-project-instructions.txt提供了完整的 Python 脚本。它将图代码经 URL 编码、raw-deflate 压缩、base64 编码后打包进#createhash 片段并输出一个带按钮的 HTML 页面import json, zlib, base64 from urllib.parse import quote # Set these variables: diagram_type mermaid # mermaid, xml, or csv diagram_code graph TD A[Start] -- B[End] # Generate compressed URL encoded quote(diagram_code, safe) c zlib.compressobj(9, zlib.DEFLATED, -15) raw_deflate c.compress(encoded.encode(utf-8)) c.flush() data base64.b64encode(raw_deflate).decode() payload json.dumps({type: diagram_type, compressed: True, data: data}) url fhttps://app.diagrams.net/?pv0grid0#create{quote(payload, safe)} # Output as HTML page print(f!DOCTYPE html html head meta charsetutf-8 style body {{ font-family: -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif; display: flex; justify-content: center; align-items: center; min-height: 100vh; margin: 0; background: #f8f9fa; }} .card {{ text-align: center; background: white; border-radius: 12px; padding: 40px; box-shadow: 0 2px 8px rgba(0,0,0,0.1); }} .card h2 {{ margin: 0 0 8px; color: #1a1a1a; }} .card p {{ margin: 0 0 24px; color: #666; }} .btn {{ display: inline-block; padding: 14px 32px; background: #4285f4; color: white; text-decoration: none; border-radius: 8px; font-size: 16px; font-weight: 500; transition: background 0.2s; }} .btn:hover {{ background: #3367d6; }} /style /head body div classcard h2Diagram Ready/h2 pClick below to open your diagram in draw.io/p a classbtn href{url} target_blank relnoopener noreferrer Open in draw.io /a /div /body /html)脚本中的两个可调变量是diagram_type取mermaid、xml或csv与diagram_code对应的图源代码字符串。编码链路分四段每一段都对应一个明确目的quote(diagram_code, safe)先对图代码做百分号编码URL 编码。safe表示所有字符都被编码保证后续压缩面对的是干净的 ASCII 字节流zlib.compressobj(9, zlib.DEFLATED, -15)创建压缩对象。9是最高压缩级别-15是关键——负号表示raw deflate不带 zlib 头这正是 draw.io 打开链接所期望的格式c.compress(...) c.flush()完成整段压缩base64.b64encode(...).decode()把压缩后的二进制转为 base64 文本使其可以安全地放进 URLjson.dumps({type: ..., compressed: True, data: ...})打包成 payload再经quote(payload, safe)编码后拼到https://app.diagrams.net/?pv0grid0#create之后。需要说明的一点原始指令文本中该字典写作compressed: trueJSON 风格的字面量Python 中应写作Truejson.dumps序列化后输出仍是 JSON 标准的true上文已按可运行版本给出。#create这个 hash 片段正是本方案隐私友好的根源——它只存在于浏览器地址栏的 fragment 中点击链接时不会作为查询参数发往服务器。仓库内另一处也使用了完全相同的交付形态根 AGENTS.md 记录MCP App Server 的create_diagram在遇到不支持 MCP Apps 内联渲染的普通客户端时会额外返回一个app.diagrams.net/#create文本链接作为兜底说明这套「hash 携带压缩图数据」的机制是整个仓库共用的打开方式。HTML 模板本身也值得注意f...中的{{/}}是 f-string 对花括号的转义写法{url}在运行时被替换为真正的链接。卡片页用#4285f4蓝色按钮承载链接并带target_blank relnoopener noreferrer在点击后于新标签页打开 draw.io。为什么必须用 HTML artifact 交付链接这条设计不是偏好而是必要。claude-project-instructions.txt用「CRITICAL」级别明确警告生成的 URL 包含压缩后的 base64 数据。LLM 在逐 token 复述 base64 字符串时会静默损坏它——哪怕只改了一个字符整个链接就会失效。base64 字符串没有任何自然的纠错或人类可读语义模型在文本层复制它时极易出错且无法察觉。解决方法是让 URL完全不经过 Claude 的文本生成Python 脚本输出完整的 HTML 页面链接已在脚本内部拼好Claude 只是把脚本输出呈现为 artifact——链接因此「保证正确」。project-instructions/README.md 的 Why HTML Output 一节同样强调这一点并把机制概括为「URL 从不经过 Claude 的文本生成Claude 仅呈现脚本输出」。三种格式的示例模板指令文件为每种格式各给了一个可直接套用的模板。Mermaid流程图带判断分支graph TD A[Start] -- B{Decision} B --|Yes| C[Action] B --|No| D[End]XMLdraw.io 原生格式。注意根元素mxGraphModel adaptiveColorsauto以及id0根单元、id1默认图层这两个必须存在的结构单元mxGraphModel adaptiveColorsauto root mxCell id0/ mxCell id1 parent0/ mxCell id2 valueBox stylerounded1;fillColor#d5e8d4; vertex1 parent1 mxGeometry x100 y100 width120 height60 asgeometry/ /mxCell /root /mxGraphModelCSV层级数据如组织结构图。#开头的行是元指令# label指定节点文本模板、# style指定默认样式、# connect指定父子连线规则、# layout: auto请求自动布局# label: %name% # style: rounded1;whiteSpacewrap;html1; # connect: {from:manager,to:name,invert:true} # layout: auto name,manager CEO, CTO,CEO CFO,CEO生成流程与两条红线规则指令文件给出了 Claude 应遵循的四步流程收到图表请求后先判断最适合的格式生成图代码执行 Python 代码创建 URL将脚本输出创建为 HTML artifact——这就是用户可点击的链接。红线一XML 必须良构Well-Formedness绝不允许在输出中出现任何 XML 注释!-- --。注释被严格禁止——它们浪费 token、可能引发解析错误对图 XML 毫无意义属性值中的特殊字符必须转义amp;、lt;、gt;、quot;。这条规则在仓库源码中有对应的工程化实现。shared/mx-xml.js 中的escapeXml第 67–77 行正是按此约定编码→amp;、→lt;、→gt;、→quot;并把换行\n、回车\r、制表符\t分别写成字符引用#xa;、#xd;、#x9;XML 属性规范化会把字面换行读回为空格所以换行必须用字符引用形式。解析侧unescapeXml则反向解码且「未知实体保持原样」确保任何意外内容都不会破坏文档。这印证了指令中对转义规则的严格要求并非空谈而是服务端解析/写回管线的既定契约。红线二绝不在对话中复述 URL绝不要在聊天回复中打出、重打或复述生成的 URL正确流程执行 Python 脚本 → 脚本输出带正确链接的完整 HTML 页面 → 将 HTML 作为 artifact 呈现其中的链接由脚本生成保证正确→ 在聊天消息里只告诉用户点击 artifact 中的按钮不要把脚本输出里的 URL 复制进回复文本——artifact 本身就是链接的交付机制。源码级佐证仓库如何用同一套约定做服务端保障虽然 Project Instructions 方案本身不调用任何服务器但仓库的共享代码恰好为这套约定提供了「服务端版本」的背书理解它们可以加深对指令背后原因的认识。归一化normalize管线。shared/normalize-model.js 的注释解释了指令中「把边放在parent1图层上」这一写法渲染正确为何需要一次额外的归一化步骤draw.io 编辑器的模型要求一条边归属其两个端点最近的公共祖先容器坐标也位于该容器坐标系中而 LLM 直接写出的 XML 把所有边都放在图层上渲染没问题但 ELK 布局读取边坐标时会在错误的坐标系里计算导致连线「跳出」容器对应 issue jgraph/drawio-mcp#64。因此 App Server 与 Tool Server 在每次处理 XML 前都会调用normalizeDiagram该文件的第 53–59 行把边重新归位到最近公共祖先、为缺失 geometry 的边补上relative1几何、并把容器撑大到能包住越界的子节点——且该过程幂等已经合规的图会原样返回。mcp-tool-server/test/normalize-model.test.js 用一组夹具验证了这条规则同一容器内的边移到该容器如alb → ecs的边归到vpc、跨越容器边界的边保持在图层、最近公共祖先优先于最外层容器、自环归到终端的父容器。单一事实来源。除了xml-reference.mdshared/mermaid-reference.md 覆盖 draw.io Mermaid 解析器支持的 28 种图类型与复杂流程图的 ELK 布局开关config: layout: elkfrontmattershared/style-reference.md 则给出全部形状、样式属性、色板与 HTML 标签的速查。Project Instructions 的用户虽然只需要粘贴claude-project-instructions.txt与xml-reference.md但当需要精确定位、行业图标或暗色模式时这些共享参考提供了与 MCP 方案完全一致的语法依据——仓库根 AGENTS.md 明确要求修改图生成指引时只改这些文件改动会自动传播到所有交付方式。适用场景与限制这套方案最适合「快速上手、零安装」的场景只要有一个 Claude.ai 账号并能创建 Project粘贴两条指令即可用。它完全在浏览器内工作生成的链接因为使用#createhash 片段而不会把图数据发往服务器隐私性优于需要服务端中转的方案。同时也应明确其边界以下均以仓库实际文档为准它只在 Claude.ai Project 环境中生效产出物是可点击的链接而非对话内联渲染的图内联渲染需要 MCP App ServerMermaid 与 XML、CSV 三种格式都支持但 CSV 依赖 draw.io 的服务端转换Tool Server 文档中标注为「可能偶尔失败或不可用」建议组织结构图优先用 MermaidXML 若需自动布局ELK或 libavoid 避障布线则要走仓库其他方案MCP 服务器或 draw.io Desktop CLI 的--layout参数Project Instructions 本身不包含布局传递。掌握这套方案后你既可以把「生成 draw.io 链接」的能力一键注入任何 Claude Project也能在阅读 MCP 方案源码时更容易理解#createURL、XML 良构与边归位规则这些贯穿整个仓库的核心约定。赞分享AI 应用MCP 服务交互助手【免费下载链接】drawio-mcp项目地址https://gitcode.com/gh_mirrors/dr/drawio-mcp点击查看免费下载相关推荐基于 Claude Project 指令生成 draw.io 图表drawio-mcp 无 MCP 服务器方案实战指南基于 Claude Project 指令生成 draw.io 图表drawio mcp 无 MCP 服务器方案实战指南 本文导读 drawio mcp 仓库AI 应用MCP 服务交互助手Telepresence MCP Claude 命令详解在 Claude Desktop 中管理 MCP 服务器配置Telepresence MCP Claude 命令详解在 Claude Desktop 中管理 MCP 服务器配置 telepresence mcp cla云原生开发工具微服务网络连接真实 Host用 python-sdk 的 mcp run 命令将 MCP 服务器接入 Claude Desktop、Claude Code、Cursor 与 VS Code连接真实 Host用 python sdk 的 mcp run 命令将 MCP 服务器接入 Claude Desktop、Claude Code、Cursor人工智能MCP 服务MCP Clients上一篇终极指南ngx-admin骨架屏如何提升加载性能与用户体验下一篇Gin-Vue-Admin前端包体积优化指南5个实用的构建产物分析技巧创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

Pylint missing-final-newline(C0304)详解:基于 POSIX 规范的“文件末尾缺换行”检查

Pylint missing-final-newline(C0304)详解:基于 POSIX 规范的“文件末尾缺换行”检查

静态分析代码质量Lint开发工具 【免费下载链接】pylint Its not just a linter that annoys you! 项目地址: https://gitcode.com/gh_mirrors/pyl/pylint 点击查看 免费下载 导读 missing-final-newline(消息编号 C0304)是 Pylint 内置 for…

2026/10/12 1:30:49 阅读更多 →
Leaf 框架演进全解:从 CHANGELOG 到源码的版本脉络与技术要点

Leaf 框架演进全解:从 CHANGELOG 到源码的版本脉络与技术要点

机器学习深度学习 【免费下载链接】leaf Open Machine Intelligence Framework for Hackers. (GPU/CPU) 项目地址: https://gitcode.com/gh_mirrors/le/leaf 点击查看 免费下载 本文以 Leaf(Rust 编写的开源机器学习框架)仓库中的 CHANGELOG…

2026/10/12 1:30:49 阅读更多 →
OCI Image Format 规范深度解析:镜像格式标准的构成、运行工作流与在 Swarm Classic 中的落地实践

OCI Image Format 规范深度解析:镜像格式标准的构成、运行工作流与在 Swarm Classic 中的落地实践

云原生后端微服务 【免费下载链接】classicswarm Swarm Classic: a container clustering system. Not to be confused with Docker Swarm which is at https://github.com/docker/swarmkit 项目地址: https://gitcode.com/gh_mirrors/cl/classicswarm 点击查看 免费…

2026/10/12 1:30:49 阅读更多 →

最新新闻

【深度学习新浪潮】Meta Muse 智能体:它是什么?有哪些特点?为什么突然火了?

【深度学习新浪潮】Meta Muse 智能体:它是什么?有哪些特点?为什么突然火了?

1. 引言 近期,Meta Muse 智能体在 AI 领域引发广泛关注,开发者、创作者与科技从业者纷纷展开讨论。许多初次接触者不禁疑惑:这是 Meta 推出的又一款大模型?抑或仅是蹭热度的 AI 玩具? 事实并非如此。Meta Muse 是 Meta 在 AI 智能体方向的一次战略性布局,它并非简单的对…

2026/10/12 2:24:22 阅读更多 →
Spring-boot-3 -注解 yaml配置 -日志

Spring-boot-3 -注解 yaml配置 -日志

4、核心技能1. 常用注解SpringBoot 摒弃 XML 配置方式,改为全注解驱动1. 组件注册Configuration 自定义配置类、SpringBootConfiguration 用来标注SpringBoot主启动类的Bean 可以在自定义配置类面创建对象交给ioc容器,组件在容器中的名字为方法名、Scope…

2026/10/12 2:24:22 阅读更多 →
Neuroimage: 动态功能连接方法的重测信度比较

Neuroimage: 动态功能连接方法的重测信度比较

本篇文献发表在Neuroimage杂志。所发布内容旨在与大家分享学术新知,促进交流学习版权归原作者或原出处所有,感谢各位学者的辛勤付出与研究成果。1.引言大脑的功能组织具有丰富的时空结构,可以使用功能连接指标进行探测。功能连接被定义为两个…

2026/10/12 2:24:22 阅读更多 →
page_alloc __rmqueue

page_alloc __rmqueue

__rmqueue() 是伙伴系统分配路径的核心调度器。它在持有 zone->lock 的前提下,按照碎片化风险从低到高的顺序,依次尝试不同的分配策略,直到成功或彻底失败。核心作用与策略链它的本质是一个多级降级策略链:先尝试最“干净”的方…

2026/10/12 2:24:22 阅读更多 →
游戏引擎中物理步进与动画采样的同步机制解析

游戏引擎中物理步进与动画采样的同步机制解析

1. 这不是教科书,是我在三个项目里拆过七次引擎后写下的物理与动画系统手记“游戏引擎架构深度解析(三):物理与动画系统”——看到这个标题,你大概率正卡在某个角色落地时穿模、布料抖动像癫痫发作、或者刚加完一个新关…

2026/10/12 2:24:22 阅读更多 →
产业与汇率全景分析深入分析多表格形成一篇文章

产业与汇率全景分析深入分析多表格形成一篇文章

产业与汇率全景深度分析:汇率是外生变量,产业是底层根基引言汇率从来不是孤立的数字,它是一国产业竞争力、贸易结构、资本流动、宏观政策、全球供需格局共同定价的结果;反过来,汇率波动又会重塑产业成本、订单、利润、…

2026/10/12 2:23:21 阅读更多 →

日新闻

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

在数码相机、高清显示屏与现代矢量图形技术高度发达的今天,画面可以做到绝对的锐利、平滑与无瑕。然而,当一张秋日手账插画或拍立得照片过于“平整无瑕”时,往往会散发出一种冰冷生硬的“数码塑料感(Digital Plasticity&#xff0…

2026/10/12 0:00:59 阅读更多 →
活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

在现代网页与移动端设计中,横排(Horizontal Layout)早已经成为了绝对的主流。然而,当我们翻开泛黄的线装古籍、宋版木刻诗集,或是欣赏一张茶道雅集的手写便签时,那种**自上而下纵向书写、自右向左逐列铺展&…

2026/10/12 0:00:59 阅读更多 →
周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

每到周日的晚上八点到十点,很多人心里都会悄悄亮起一盏警示灯。 在心理学上,这种现象有一个专门的称谓——“周日夜晚焦虑症(Sunday Scaries)”。明天又是周一,闹钟又要重新在七点响彻卧房;脑海里仿佛有一个…

2026/10/12 0:00:59 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/12 0:16:30 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/12 0:16:43 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 10:45:37 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:53 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:54 阅读更多 →