microsoft

flint-chart: Create Polished Charts from Compact Specs

Flint turns semantic, human-editable chart specifications into polished visualizations for several charting backends. It is aimed at developers and AI-agent builders who want consistent chart creation without manually configuring every layout detail.

Stars
4.3k
Forks
245
Stars, last 8 days
+27

Our take

Health score

58/100

How it is scored
Activity
72
Community
47
Issues
58
Pull requests
53

+27 stars in the last 8 days

Overview

Flint is a TypeScript visualization library and intermediate chart language. A compact specification describes the data, its meaning, and the chart design; Flint uses that information to handle presentation decisions such as layout, labels, and legends, then compiles the result for supported charting libraries or Excel.

It is useful when charts need to be authored by AI agents or generated repeatedly without embedding backend-specific configuration in every request. The repository also includes an MCP server, allowing compatible agents to create, validate, and render charts through tools.

Key Features

  • Describes data with semantic types, including concepts such as price, temperature, and country.
  • Derives layout and presentation decisions from the data, chart design, and canvas constraints.
  • Compiles the same input for Vega-Lite, ECharts, Chart.js, Plotly, or native Excel charts.
  • Supports visual themes, including presets and custom theme specifications.
  • Provides an MCP server for agent-driven chart creation, validation, and rendering.
  • Includes a project site with a live editor, chart gallery, and documentation.

Use Cases

  • AI-agent developers can let an agent create and validate a chart during a chat or coding workflow using the MCP server.
  • Application developers can generate charts for multiple rendering backends from one shared input format.
  • Data analysts can turn structured data into themed charts without configuring every axis, label, and spacing option by hand.
  • Teams maintaining a consistent visual style can apply a theme across charts instead of repeating presentation settings in each chart specification.

Getting Started

Install the library or run the MCP server:

npm install flint-chart
npx -y flint-chart-mcp

See the README and project site for usage and setup details.

Alternatives

  • mcp-server-chart: It exposes AntV chart generation as an MCP tool, while flint-chart turns human-editable specifications into visualizations across multiple backends.
ProjectLanguageLicenseStarsStatus
flint-chartTypeScriptMIT4.3kNot checked yet
mcp-server-chartTypeScriptMIT4.4kActive

Considerations

  • The JavaScript/TypeScript packages require Node 18 or later.
  • The Python port is described as a source-only preview, and its package is not yet released.
  • The README notes that ThemeSpec currently affects Vega-Lite output, so theme behavior is not uniform across all listed backends.
  • The MCP server requires an MCP-capable client for agent-integrated use; the library can also be used directly.

Found this useful?

Share it with someone who would like flint-chart.

Comparisons