Flint 图表语言

让 AI 代理用简洁可编辑规范可靠生成多后端精美图表。

Star 数
★ 4.4k
最近更新
25 天前
License
MIT
主语言
TypeScript

30 秒速览

运行形态
代码库 / SDKMCP 服务器命令行工具
可在哪里用
通用 · 跨平台Claude.ai
费用
免费,无需付费服务
上手难度
低 · 几分钟可跑通
开始前需要
Node.js 18+npm 或 npx用于 MCP 工作流的支持 MCP 的客户端Shell / 命令行网络访问本地文件系统MCP Server
典型场景
使用支持远程 HTTP MCP 的 Claude 用户,希望在对话中查找数据后直接生成并调整图表。
不适合
  • 需要稳定 Python 包的团队:Python 版本仅为源码预览,尚未发布
  • 必须完全离线运行的团队:托管 MCP 端点依赖网络
  • 已直接维护 Vega-Lite、ECharts 等原生图表的团队:需改用 Flint 语义输入模型

这个 Agent 能做什么,适合哪些场景?

Flint 是面向 AI 代理的可视化中间语言,使用高层语义规范表达数据字段和图表意图。仓库的 flint-chart TypeScript 库接收统一的 ChartAssemblyInput,并生成 Vega-Lite、ECharts、Chart.js、Plotly 或原生 Excel 输出。其 flint-chart-mcp 服务器让支持 MCP 的聊天或编码客户端创建、校验和渲染图表,并可返回交互式视图、PNG、SVG 或后端原生规范。布局、坐标轴、标签、图例和标记等细节由数据、图表设计及可选主题共同推导,用户仍可编辑紧凑的输入规范。项目既提供托管 HTTP MCP 端点,也支持本地运行;Python 端口目前仅为源码预览,尚未发布为软件包。

Flint 从 ChartAssemblyInput 读取内嵌于 data.values 的数据,或在 MCP 工作流中通过 data.url 读取本地 JSON、CSV、TSV 文件。输入通过 semantic_types 标注 Rank、Temperature、Price、Country 等 70 多种语义类型,并由 chart_spec 指定图表类型、编码和尺寸。assembleVegaLite、assembleECharts、assembleChartjs、assemblePlotly 和 assembleExcel 将同一输入编译成各目标后端的原生对象;theme_spec 可以选用十个内置预设,或继承预设并覆盖品牌相关设置。flint-chart-mcp 向代理提供选择模板、校验规范和渲染图表的工具,可打开交互式图表视图、返回静态 PNG/SVG,或产生后端原生规范。

  1. 使用支持远程 HTTP MCP 的 Claude 用户,希望在对话中查找数据后直接生成并调整图表。
  2. TypeScript 开发者需要以一种输入格式生成 Vega-Lite、ECharts、Chart.js 或 Plotly 配置。
  3. 分析团队希望把同一组数据导出为网页图表或可继续编辑的原生 Excel 图表。
  4. 设计系统团队需要定义一次 ThemeSpec,再把排版、颜色、图例和坐标轴规则应用到一套图表中。
  5. 处理大型本地数据集的用户,希望运行本地 MCP 服务器并从 JSON、CSV 或 TSV 文件读取数据。
  6. 数据产品开发者需要让图表尺寸、间距、标签和图例随数据基数及画布约束自动调整。

如何安装或部署这个 Agent?

运行环境要求 Node.js 18+。在 JavaScript/TypeScript 项目中安装库:

npm install flint-chart

本地启动面向代理和 MCP 客户端的服务器:

npx -y flint-chart-mcp

若要参与仓库开发,可安装工作区依赖并运行检查:

git clone https://github.com/microsoft/flint-chart
cd flint-chart
npm install
npm run typecheck
npm run test
npm run build
npm run site

演示站点运行于 http://localhost:5274/。源码没有说明需要 API 密钥;使用托管 MCP 服务需要网络连接,而本地文件数据需要服务器具备相应文件访问权限。

如何使用这个 Agent?

在 TypeScript 中传入数据、语义类型和图表规范:

import { assembleVegaLite } from 'flint-chart';

const spec = assembleVegaLite({
  data: { values: myData },
  semantic_types: { weight: 'Quantity', mpg: 'Quantity', origin: 'Country' },
  chart_spec: {
    chartType: 'Scatter Plot',
    encodings: { x: { field: 'weight' }, y: { field: 'mpg' }, color: { field: 'origin' } },
    baseSize: { width: 400, height: 300 },
  },
});

若要更换输出后端而保持输入结构不变:

import { assembleECharts, assembleChartjs, assemblePlotly, assembleExcel } from 'flint-chart';

const echartsOption = assembleECharts(input);
const chartjsConfig = assembleChartjs(input);
const plotlyFigure = assemblePlotly(input);
const excelArtifact = assembleExcel(input);

也可以应用内置主题:

const themedSpec = assembleVegaLite({
  ...input,
  theme_spec: 'economist',
});

远程 MCP 客户端可连接以下 HTTP 地址,无需本地启动命令:

https://flint.data-formulator.ai/mcp

README 明确列出的远程客户端包括 Claude 的自定义连接器和 VS Code 中的 GitHub Copilot。大型数据集建议使用本地 MCP 服务器。

这个 Agent 有哪些优点和局限?

优点
  • 同一个 ChartAssemblyInput 可编译到五类后端,包括可编辑的原生 Excel 图表,减少多套图表配置之间的重复工作。
  • 70 多种语义类型与自动布局机制可以依据字段含义、数据基数和画布限制推导标签、间距、标记及图例。
  • 提供 TypeScript 库、托管 HTTP MCP、本地 MCP 服务器和非 MCP 的独立代理技能,多种接入方式降低部署绑定。
  • 主题系统支持十个预设及继承覆盖,可集中管理布局、字体、颜色、坐标轴和图例规则。
局限
  • 需要 Node.js 18+;Python 版本仍是未发布的软件包源码预览,Python 项目暂时不能依赖正式发行包。
  • README 的主题章节称 ThemeSpec 当前影响 Vega-Lite 输出,因此不同后端之间的主题一致性存在明确限制。
  • 采用 Flint 意味着引入其语义规范和 ChartAssemblyInput,已有直接维护 Vega-Lite、ECharts、Chart.js 或 Plotly 配置的系统需要迁移或适配。
  • MCP 体验要求兼容 MCP 的客户端;托管端点还依赖网络服务,本地大数据工作流则需要文件访问权限。

这个 Agent 与同类方案有什么区别?

与让代理直接编写冗长的 Vega-Lite、ECharts、Chart.js 或 Plotly 参数相比,Flint 增加了一层统一的语义规范,并自动推导比例尺、坐标轴、间距、标签和布局。优势是同一输入能够切换多个后端;代价是团队需要采用 Flint 的输入模型,而且 README 明确说明完整的主题影响目前限于 Vega-Lite 输出。

与相关度最高的同类 agent 并排比较关键指标。

Agent 源码审查 形态 / 费用 Star 最近更新 主语言 完整支持的平台
Flint 图表语言 当前 60 · 存在缺口 代码库 / SDK免费 ★ 4.4k 25 天前 TypeScript Claude.ai
World Monitor 全球态势监控 79 · 表现良好 网页应用免费 + 模型费 ★ 89k 今天 TypeScript —
智析 Agent 60 · 存在缺口 桌面应用免费 + 模型费 ★ 2.6k 10 天前 JavaScript OpenAI API
QuantDinger AI 量化交易系统 89 · 表现良好 自托管服务免费 + 模型费 ★ 13k 今天 Python Codex · Claude Code · OpenAI API

FollowAgents 如何评估这个 Agent?

FollowAgents 源码审查 · FARS-2.1
存在缺口
60/ 100 五分制 3.0 / 5
信任安全 10/29
可靠稳定 6/14
适用触发 12/18
规范维护 15/18
有效结果 12/13
证据核验 5/8
查看各维度的扣分理由
信任安全10 / 29 · 1.7/5

CI 明确采用只读 contents 权限,CodeQL 也按任务列出权限,但没有材料说明 MCP 运行时的最小权限边界,因此 least_privilege 仅给薄弱分。README 说明可内嵌数据、读取本地 JSON/CSV/TSV,并区分托管与本地 MCP,但未交代托管端的数据保留、传输、遥测、敏感数据政策或操作前确认机制;也没有撤销或恢复流程。外部效果大致列为打开交互视图及生成 PNG、SVG、原生规格或 Excel,但副作用边界不完整。定期 CodeQL、只读 CI 权限和依赖 overrides 构成较好的依赖安全证据,但未提供审计结果或锁文件材料,故未满分。Microsoft 官方组织、Microsoft Research、IDEAS Lab、版权和 MIT 文件提供了清晰且相互一致的来源归属,source_attribution 可满分。

可靠稳定6 / 14 · 2.1/5

README、包脚本、CI 和测试对主要组件及构建流程基本一致,所给测试也覆盖稀疏数据、轴推断和 dodge 决策等具体边界。不过 README 一处称 0.5.1 已把主题扩展到 Plotly,后文又称 ThemeSpec 当前只影响 Vega-Lite,形成可指出的不一致,因此 self_consistency 未满分。Node 18+、npm 安装命令、工作区脚本和多 Node 版本 CI 足以支持一般依赖可用性判断,但缺少子包依赖清单、锁文件和离线或平台约束细节。没有提供用户可见错误消息、诊断格式或恢复建议的证据,failure_messages 为零。

适用触发12 / 18 · 3.3/5

材料清楚覆盖库调用、远程和本地 MCP、聊天或编码环境、大数据集、主题定制、多后端及 Excel 等受众和场景,因而 audience_and_scenarios 充分。后端范围、Python 仅源码预览、本地文件类型和主题适用范围有所说明,但主题范围叙述互相冲突,且未系统列出不支持的图表、数据规模或 MCP 能力边界。MCP 被描述为提供选模板、验证和渲染工具,却没有给出工具 schema、调用条件或拒绝条件,所以 trigger_precision 证据较薄。Node 版本、兼容客户端、远程端点、本地模式和开发命令提供了良好环境适配信息,但 README 未包含完整客户端配置且依赖外链,因此未满分。

规范维护15 / 18 · 4.2/5

README 的功能、安装、库用法、主题、MCP、仓库结构、开发和贡献路径组织清楚,information_architecture 可满分。安装命令简洁,并注明 Node 18+ 与大数据建议使用本地 MCP,但完整 MCP 客户端配置被放在外部项目页,故 install_notes 为 2。包名、组件名和 assemble API 在材料中稳定,但未提供兼容性或弃用政策,因此 naming_stability 未满分。存在多个具体代码示例、代理提示示例和测试案例,但没有 FAQ 或故障排查示例。已明确 Python 未发布和部分主题限制,但限制清单并不全面且主题陈述冲突。MIT 正文和 README 元数据一致,license 满分;日期化更新、语义版本、发布链接和 changelog 路径使 versioning_changelog 满分。官方组织、Microsoft Research、合作实验室、贡献指南、安全报告路径及 CI 更新路径共同明确维护责任,maintenance_responsibility 满分。

有效结果12 / 13 · 4.6/5

输出可直接用于 Vega-Lite、ECharts、Chart.js、Plotly、Excel,以及 PNG、SVG 和交互视图;输入规范可编辑、主题可继承覆盖,因而 output_usability 证据充分。以一个紧凑语义规范派生布局并生成多个后端原生结果,相比让代理硬编码每个后端参数有明确增量价值,marginal_value 可满分。MIT 授权、npm/npx 安装和共享输入形状降低采用成本,但托管服务的数据成本、网络依赖、渲染资源消耗、包体和运维负担未披露,所以 cost_benefit 未满分。

证据核验5 / 8 · 3.1/5

主要能力声明可关联到命名 API、仓库目录、脚本、CI 和针对具体算法行为的测试,因此具有较好的 claim_traceability;但没有提供核心实现文件、MCP 工具定义或生成结果快照,不能给满分。README 的组件声明受到 package.json、CI 和测试文件的多源支持,不过多后端、托管 MCP 和视觉质量等重要声明没有在所给材料中被独立交叉印证。事实、计划和建议通常有明确措辞,例如 Python 待发布及研究论文即将发布;然而 arXiv 徽章与“论文即将发布”以及 Plotly 主题范围的冲突削弱了事实与推断分离的完整性。

风险与缓解建议
  • 源码中未见:执行前用户确认开启或自行加上执行前确认;先在沙箱或测试环境跑通,确认行为后再接入真实数据。
  • 源码中未见:敏感信息处理使用专用、低权限、可随时吊销的 API 密钥,不要复用生产凭据,也不要让密钥出现在日志里。
  • 源码中未见:回滚或恢复路径运行前先备份,或在 git 分支、快照上操作,确保改动可以撤销。
  • 托管 MCP 端点的数据保留、日志、遥测、传输保护和敏感数据处理政策未在所给材料中说明;处理非公开数据前应先核实。
  • MCP 可读取本地 JSON、CSV、TSV 文件,但未提供运行时文件访问范围、路径限制或每次读取前确认机制;建议在受限目录和最小权限环境中运行。
  • README 对 Plotly 是否支持 ThemeSpec 存在冲突,采用前应以该固定修订的实现和后端参考为准。
  • 没有证据展示 MCP 的用户可见错误消息、失败恢复、撤销机制或完整工具触发 schema。
  • 本评估仅基于所给静态文件,未执行安装、测试、渲染或安全扫描。
证据充分度:低 评估于 2026年8月14日 审查版本 34ef4516554b 评估后仓库已有新提交,评分可能未覆盖最新改动
查看完整评分方法 →

最近版本

来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。

  1. 0.5.1
    发布说明摘录
    flint-chart 0.5.1 Added - Plotly theme support — theme_spec now realizes onto Plotly figures. - Calendar Heatmap chart type for Vega-Lite. Titles - Headlines *and* decks are fitted instead of widening the graphic, with or without a theme. - Axis titles lie flat at the head of their own ruler; units are stated once. Grid and scales - Gridded axes round so the plot edge lands on a grid line, and the grid runs out to its number. - A chart is never left with no way to read a value — where nothing is printed, the grid returns. …
    在 GitHub 查看 ↗
  2. 0.5 Flint 0.5: ThemeSpec
    发布说明摘录
    Flint 0.5 introduces ThemeSpec, a formal specification for applying a coherent design system across an entire chart library. Instead of requiring creators or agents to reproduce design guidance chart by chart, a ThemeSpec participates directly in compilation and adapts to the chart's semantics, data, cardinality, and available space. A ThemeSpec shapes compilation in three stages. Using resolved semantic information, it: - governs layout constraints and dynamics, including density, spacing, sizing, and stretch limits; …
    在 GitHub 查看 ↗
  3. 0.4.0 Flint 0.4
    发布说明摘录
    Update 1: new plotly backend <img width="1240" height="829" alt="image" src="https://github.com/user-attachments/assets/a3514130-ad06-48e8-8458-9e828f6e50f2" /> Update 2: dynamic widget for chart type switch in the mcp server <img width="1090" height="466" alt="image" src="https://github.com/user-attachments/assets/3039761c-6d6c-456b-b6ab-66cf94c8069f" /> Update 3: Research paper Read it here, maybe also share and cite.. [https://arxiv.org/abs/2607.20775](https://arxiv.org/abs/2607.20775) Update 4: new Excel backend …
    在 GitHub 查看 ↗

常见问题

使用 Flint 是否需要付费服务或 API 密钥?
源码将项目标为 MIT 许可证,并未记录 API 密钥要求或托管 MCP 的收费信息。不能据此判断托管服务未来是否收费。
能否完全在本地运行?
可以。npx -y flint-chart-mcp 可启动本地 MCP 服务器,flint-chart 也可作为项目内的 TypeScript 库使用;首次通过 npm/npx 获取软件包通常需要网络。
能否直接读取本地数据文件?
MCP 调用可通过 data.url 读取本地 JSON、CSV 或 TSV 文件,服务器进程需要拥有相应文件权限;也可直接在 data.values 中嵌入数据行。
所有后端都支持同样的主题效果吗?
不能这样假设。仓库更新称 Plotly 已获得主题扩展,但主题使用章节同时明确写明 ThemeSpec 当前影响 Vega-Lite 输出,因此采用前应针对目标后端验证效果。
生成失败或规范有误时有什么保障?
MCP 服务器提供模板选择和规范校验能力,仓库也包含测试及属性校验;来源没有承诺自动修复所有无效数据或后端差异。
在 GitHub 查看 ↗ 安装 ↓

对比同类 Agent

用同一套 FARS 评审,横向比较这个 Agent 所属的短名单。

相关 Agents