Flint, developed by Microsoft Research, is an open‑source intermediate visualization language designed to help AI agents and people produce expressive, polished charts from compact, human‑editable specifications. The project includes the flint‑chart library and the flint‑chart‑mcp server, enabling agents to create, validate, and render charts directly inside chat or coding environments.
The problem Flint addresses
Creating a high‑quality chart requires many design choices—how to parse dates, whether scales should start at zero, how to format values, how much room labels need, and which colors improve readability. Modern visualization libraries (Vega‑Lite, Apache ECharts, Chart.js) expose these controls, but brief specs that rely on defaults can produce uninspiring or misleading charts, while verbose, hand‑tuned configurations are fragile and error‑prone. This tension grows when large language models (LLMs) and agents generate visualizations: handling low‑level details leads to brittle code that is hard to inspect and fix.
How Flint works
Flint uses a compact two‑part specification: the data specification declares semantic types and optional metadata for fields, and the chart specification names the chart type and maps fields to visual channels (x, y, color, size, facet). From these high‑level inputs, the Flint compiler derives the necessary low‑level settings:
- parsing and temporal interpretation
- scales and aggregations
- axes and formatting
- color scales and cell sizing
- layout, spacing, and label configuration
The compiler emits a backend‑native specification that can be rendered by Vega‑Lite, ECharts, or Chart.js. Because the intermediate representation is independent of any single rendering library, the same Flint spec can target multiple backends without rewriting the chart intent.
Benefits for AI‑assisted visualization
Semantic types are often easier for models to infer than a full set of low‑level visualization parameters. Field names, value patterns, and common data knowledge help agents recognize whether a column is a date, price, percentage, country, ranking, or correlation. Once meanings are explicit, the compiler takes care of many design decisions that otherwise would appear as brittle, library‑specific code.
Evaluation results
In Microsoft Research’s study, Flint was compared with DirectVL, a baseline where models directly generate full Vega‑Lite specifications in an LLM self‑evaluation pipeline. Using testing data from Tidy Tuesdays, Flint achieved higher overall LLM‑judge scores across three models: with GPT‑5.1 Flint scored 16.27 vs. 15.91 for DirectVL; with GPT‑5‑mini 16.16 vs. 15.60; and with GPT‑4.1 15.91 vs. 15.34. The paper notes that Flint has been adopted to power Data Formulator, a Microsoft Research project for AI‑assisted data analysis and visualization.
Tools and integration
Flint is available as open source and includes resources to get started:
- Project site and documentation: https://microsoft.github.io/flint-chart/
- GitHub repository: https://github.com/microsoft/flint-chart
- Flint MCP server documentation: https://microsoft.github.io/flint-chart/#/mcp
The flint‑chart‑mcp server implements a Model Context Protocol (MCP) that lets agents embed data inline or read configured local files, and open an interactive chart view so users can inspect and refine results directly from AI clients.
Outlook
Flint points toward a shared semantic layer for visualization where people and AI agents express compact chart intent while a compiler handles careful, backend‑specific low‑level decisions. The project is open for the community to explore and extend.



