@casoon/chartlet-mcp (英语)
A 类 示范背景协议 围绕图表编译器的服务器. AI助理提出图表规格;图表验证和编译 确定为静态,可访问的SVG或HTML.
- 没有语言模型运行在服务器内部. 每个答案来自编译器或来自 对您输入的数据进行计算.
- 数据从未更改: 数值读取为已写入, 无值为四舍五入、 排序、 汇总或 落在你身后。 在图表需要不同形状的地方,工具都这么说.
- 没有发明的洞察力:
chartlet_explain返回时计算事实并标注事实. - 相同的规格和选项总是产生相同的字节,记录在出处 与SHA -256散列.
它需要Node.js 22.12 或更新 和谈论stdio.
安装
克劳德代码
claude mcp add --env CHARTLET_MCP_ROOT="$PWD" chartlet -- npx -y @casoon/chartlet-mcp
或在一个项目中 .mcp.json数字 :
{
"mcpServers": {
"chartlet": {
"command": "npx",
"args": ["-y", "@casoon/chartlet-mcp"],
"env": { "CHARTLET_MCP_ROOT": "/path/to/project" }
}
}
}
CHARTLET_MCP_ROOT 是唯一的目录 chartlet_render 可写入(参见
安全问题) (中文(简体) ). 保留它, 服务器从不写入文件; 它返回图表 .
克劳德桌面
单位 claude_desktop_config.json数字 :
{
"mcpServers": {
"chartlet": {
"command": "npx",
"args": ["-y", "@casoon/chartlet-mcp"]
}
}
}
无 CHARTLET_MCP_ROOT 服务器拒绝 outputPath 返回图表内容; 添加
"env": { "CHARTLET_MCP_ROOT": "/path/to/charts" } 让它写在那里.
工具
| 工具 | 对 | 任何改变 |
|---|---|---|
chartlet_inspect_data | 取 CSV(RFC 4180,标题行)或行对象数组. 返回行数;每列推断类型(数字、整数、日期、布尔、字符串)、缺失值、分数/最大值、第一/最后数和时间顺序、字符串的不同数;以及适合的图表类型(栏、时间、倍数、范围栏、条纹、日历、散出、盒形图、树图、瀑布、桑基、存活、时间表等),并附有列使用和理由. | 没有 |
chartlet_validate_spec | 用编译器渲染规格并丢弃输出。 回返 ok,错误为 codeJSON指针 path 财务报告和审定财务报表 message和所有警告 advice: true (单位:千美元) help 页:1 canvas_too_small 财务报告和审定财务报表 text_truncated: 字段和校正通过渲染来检查, 如 JSON Patch 提议从未被应用过 . | 没有 |
chartlet_render | 渲染器 SVG 或 HTML (format, (中文(简体) ), variant数字 : desktop, (中文(简体) ), mobile, (中文(简体) ), print 或者说 social, (中文(简体) ), idPrefix, (中文(简体) ), table, (中文(简体) ), theme: 捆绑的主题或 {theme, tokens} 颜色; 没有颜色, a chartlet.theme.json 内 CHARTLET_MCP_ROOT 应用和结果并显示主题名称,或者一个注释说使用了默认外观)。 返回内容、警告、 CSP styleHashes 和来源 manifest; 与 outputPath,然后返回路径和字节大小。 在显示 MCP Apps 的客户端中,图表也出现在聊天中(下级) (中文(简体) ). | 写作 outputPath |
chartlet_explain | 返回可用的描述图表生成、图表类型,以及每个序列或层的计数、缺失值、分数、最大值、第一和最后值及其标签或时间——计算,而不是解释。 对于一个图表, structure 以读取顺序给出其元素的计数及其数据表格的每一行. | 没有 |
chartlet_inspect | 检查 chartlet inspect 在结构模型、流程图或类图上不渲染(可读性预算图是一个 diagram_over_budget 提示),省去代码 disable. 回归 findings,每个带 code, (中文(简体) ), severity (单位:千美元)gap: 缺少说明字段; hint值得一看,可能是有意的,JSON指针 path, (中文(简体) ), message 财务报告和审定财务报表 hint。 。 。 . | 没有 |
chartlet_check_coverage | 将重新绘制的图表与其来源清单进行比较(source: 节点,边缘 from编号 :to组合 members选项 ids; 高尔夫球队; mappings 明确身份和合并; detail数字 : faithful, (中文(简体) ), balanced, (中文(简体) ), simplified) (中文(简体) ). 回返 kept, (中文(简体) ), changed, (中文(简体) ), merged, (中文(简体) ), ambiguous, (中文(简体) ), missing 财务报告和审定财务报表 added 和数,a report 以显示用户。 边缘按终点和方向相匹配,重复的标签模棱两可,细节提示只按预期标记缺失元素. 用于流,状态,建筑,类,树,网络和序列图. | 没有 |
chartlet_theme_from_brand | 将品牌值从网站或样式指南中读取(paper, (中文(简体) ), ink, (中文(简体) ), muted, (中文(简体) ), accent, (中文(简体) ), link选项 dark, (中文(简体) ), fonts)变为一个光和暗的主题文件,以及一个收件:每个角色都有输入和输出,每一个对比度调整与其配对和比例,得出暗值标记为暗,列出的字体没有应用(图书还没有字体设置). 与 write,写 chartlet.theme.json 财务报告和审定财务报表 chartlet.theme.dark.json 下级 CHARTLET_MCP_ROOT 不替换已有文件, 除非 overwrite。没有网络访问. | 将文件写入到 write |
chartlet_diagram_starter | 对于 sequence, (中文(简体) ), flow, (中文(简体) ), state, (中文(简体) ), architecture, (中文(简体) ), tree 或者说 classes:一个有效的起始规格,每个元素可以随每个形状而得到的种类被绘制出来,并在ID,布局和取向上作注释. 对于 architecture, (中文(简体) ), template context, (中文(简体) ), containers 或者说 deployment 给一个抽象层次的起始点 question 它的答案和它的答案 level。 。 。 . | 没有 |
chartlet_chart_starter | 对于 waterfall, (中文(简体) ), waffle, (中文(简体) ), funnel, (中文(简体) ), radar, (中文(简体) ), polar, (中文(简体) ), mosaic, (中文(简体) ), heatmap, (中文(简体) ), parliament, (中文(简体) ), treemap, (中文(简体) ), sankey, (中文(简体) ), survival, (中文(简体) ), scatter, (中文(简体) ), timeline, (中文(简体) ), cycle, (中文(简体) ), forest, (中文(简体) ), violin, (中文(简体) ), prisma 或者说 instances:关于类型需要和拒绝的有效的起始规格和注释. | 没有 |
资源: chartlet://schema 规格为JSON Schema; chartlet://guide/types
映射要显示的类型及其字段, 不绘制和常见错误
(根据计划类型而建,故每类都覆盖); ui://chartlet/figure 页:1
chartlet_render 用于MCP Apps.
提示, 由支持它们的客户端显示为斜线命令 : diagram (对a的说明)
- 绘制图表, chart (数据为导出图表,从 chartlet_inspect_data和
redraw (从文本、图像或文件取出的现有图表,以覆盖报告为结尾)和
revise (修改现有规格:新值、品牌、大小预设、添加或
页:1 每个都推断出常规默认,并声明它们,只询问数据丢失或
两次读取会改变意义,保持给定的数据和关系,验证到 ok
(在同一个错误上的大多数三轮,然后是诊断和部分说明),使,
并说,当一个桌子或一个句子 服务更好。 结果是可编辑的 JSON, 渲染的
和留下的警告. eval/tasks.json 是一个小的评价集(图表、图表、,
(d) 其参考解决方案的验证和渲染.
一个典型的会议: chartlet_inspect_data 在用户的桌子上,从建议中起草一个规格,
chartlet_validate_spec 直至 ok 警告是可接受的, chartlet_render 带有 outputPath, (中文(简体) ),
财务报告和审定财务报表 chartlet_explain 当图表需要用文字描述时.
对于软件图,从 chartlet_diagram_starter 而不是一张表格:
图表本身,所以规格只说明什么是相连的.
聊天时
chartlet_render 宣布视图 ui://chartlet/figure (单位:千美元)text/html;profile=mcp-app, (中文(简体) ),
MCP 应用程序) (中文(简体) ). 显示 MCP Apps 的客户端
在对话框中显示图表:在 a 中带有标题、来源和数据表格的数字
披露,与编译器制作 HTML 配置文件一样。 风景本身没什么
没有加载图表脚本;其唯一的脚本是连接客户端的桥接,它接收结果,
报告风景的高度 并传递行动.
- 主题: 当规格设置为无时
theme,服务器使图亮而暗, 和视图显示匹配客户端主题的,当客户端切换时切换. A 类theme在规格中获胜。 没有客户端的主题,视图会保持光线. - 宽度:带有一个规格
mobile视图时通过容器查询进行布局切换 是狭义的. - 动作, 键盘可以达到 : “ 下载 SVG ” 和 “ 下载 HTML ” 将文件交给客户端
(单位:千美元)
ui/download-file; 仅在客户端支持下载时显示),"Copy规格" 拷贝JSON。 没有动作更改数据或调用工具 . - 样式和 CSP: 视图资源带有共享图表样式表一次, 以及数字
与
styles: "external"因此,大多数图表没有<style>他们自己的。 图表 带有已声明颜色或mobile布局仍带小内线<style>,该 mCP Apps 的默认政策允许(内置样式和脚本,网络中无内容). 这个 资源声明没有域:它不装入任何域,也没有连接.styleHashes结果 用于您嵌入内容的页面,而不是视图. - 查看数据在结果中行走
_meta,模型不读,并且只读到 声明MCP Apps支持的客户端. 其他客户——克洛德代码,剧本,检查员—— 获得与以前相同的结果:structuredContent。 。 。 .
使用开网- mcp
chartlet_inspect_data 取打开网格的行对象不变:
开网格和开网格的JSON exportRows(…, { format: "json" }) 均为
以字段名称键入的对象。 opengrid的线条注解符合: 十进制为字符串, 如
"250.00" 并读作数字、日期和时间戳作为日期, null 作为缺失;
非无限浮体"Infinity")不作为数字.
典型流程:过滤并排序网格到您想要的视图,选择行,通过
选择到 chartlet_inspect_data,根据建议构建规格(数字为
JSON号码,检查一下 chartlet_validate_spec,并用 chartlet_render。 。 。 .
两台服务器互不相通,互不相识. 图表为静态输出:a 在图表中单击不会过滤网格,而改变网格不会更新图表—— 这是有意的.
安全问题
- 文件只写在下面
CHARTLET_MCP_ROOT,客户端中已有目录集 配置 。 没有它outputPath已禁用,工具说明如何启用。 这个 工作目录中, 客户端将启动服务器 . outputPath必须是相对CHARTLET_MCP_ROOT。绝对路径,任意..部分, 符号链接,指向目录以外的链接(在真实路径上选中),以及现有的链接 符号链接作为目标被拒绝。 缺少目录被创建; 已有文件为 覆写. 文件系统根的根被拒绝 .- 没有网络访问,没有外壳,除了软件包自己的图案和视图之外,其他文件也没有读取.
chartlet_inspect_data仅以平分符号识别数字(-1234.5, (中文(简体) ),1e3(三);1,234保留a 弦而不是被猜测。 四位数整数仅在列名时计为年份 包含"年份"或"圣战者"或数值严格增加.
发展
cd packages/chartlet-mcp && npm install && npm test
软件包取决于所发布的 @casoon/chartlet尝试与改变
编译器,将依赖性指向暂停(npm install ../chartlet之后
cd packages/chartlet && npm run build:wasm),并发布前切换回. npm test 财务报告和审定财务报表 npm pack 复制
schema/chartlet.schema.json 首先从寄存器输入软件包.
npm test 包含 test/view.e2e.test.mjs,打开 Chromium (Playwright) 视图
在默认 MCP Apps CSP 下的沙盒内播放协议的客户端
一个真正的 chartlet_render 结果,并在两个主题中运行轴。 它需要一个剧作家
铬( C)npx playwright install chromium) (中文(简体) ).
许可证
麻省理工学院