AgentStack
MCP verified MIT Self-run

Flint Chart

mcp-microsoft-flint-chart Β· by microsoft

πŸͺ„ Flint is a visualization language that lets AI agents reliably create expressive, good-looking charts from simple, human-editable chart specs.

β€” No reviews yet
0 installs
13 views
0.0% view→install

Install

$ agentstack add mcp-microsoft-flint-chart

βœ“ scanned Β· βœ“ verified β€” works with Claude Code, Cursor, and more.

Security review

βœ“ Passed

No issues found. Passed automated security review. Β· v0.1.0 How review works β†’

  • βœ“ Prompt-injection patterns
  • βœ“ Secret / credential exfiltration
  • βœ“ Dangerous shell & filesystem operations
  • βœ“ Untrusted network calls
  • βœ“ Known-malicious package signatures

What it can access

  • βœ“ Network access No
  • βœ“ Filesystem access No
  • βœ“ Shell / process execution No
  • βœ“ Environment & secrets No
  • βœ“ Dynamic code execution No

From automated source analysis of v0.1.0. β€œUsed” means the capability is present in the source β€” more access means more to trust, not that it’s unsafe.

Are you the author of Flint Chart? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Flint: A Visualization Language for the AI Era

[](https://www.npmjs.com/package/flint-chart) [](https://www.npmjs.com/package/flint-chart-mcp) [](https://github.com/microsoft/flint-chart/actions/workflows/ci.yml) [](LICENSE)

Please visit: Flint Project Site | MCP Server Guide

Flint is a visualization intermediate language that lets AI agents create expressive, polished visualizations from simple, human-editable chart specs. Instead of asking agents or developers to tune verbose chart configuration details such as scales, axes, spacing, labels, and layout, the Flint compiler derives optimized chart settings from the data, semantic types, chart type, and encodings. The result is a compact chart specification that agents can produce reliably, people can edit directly, and multiple backends can render as native Vega-Lite, ECharts, or Chart.js specs.

This repo contains two main components:

  • flint-chart: a JavaScript/TypeScript library that compiles the same

Flint input into Vega-Lite, ECharts, or Chart.js specs.

  • flint-chart-mcp: an MCP server that lets agents create, validate, and

render charts directly from a chat or coding environment.

Features

  • Semantic chart specs. Flint captures what each field means using 70+

semantic types such as Rank, Temperature, Price, or Country.

  • Automatic layout. Flint adapts sizing, spacing, labels, marks, and legends

to the data cardinality, chart design, and canvas constraints.

  • Multiple backends. Compile one input to 30+ chart types across

Vega-Lite, ECharts, and Chart.js, with more to come soon.

  • Agent-ready chart authoring. The MCP server gives agents Flint tools and

chart guidance so they can choose a template, validate it, and open an interactive chart view in MCP-capable clients.

Flint turns compact chart specs into backend-native specs and rendered visualizations.

Install

# Use Flint in your JavaScript/TypeScript codebase
npm install flint-chart

# For agents and MCP clients
npx -y flint-chart-mcp

Python package: to be released. The current Python port is a source-only preview in this repo.

Use Flint As A Library

Every backend accepts the same ChartAssemblyInput and returns the target library's native spec object.

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 },
  },
});
// β†’ a ready-to-render Vega-Lite spec

Swap the backend without changing the input shape:

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

const echartsOption = assembleECharts(input);
const chartjsConfig = assembleChartjs(input);

See the [API reference](docs/api-reference.md), [backend references](docs/reference-vegalite.md), and live editor for more library examples.

Use Flint As An MCP Server

Install flint-chart-mcp as a Model Context Protocol server when you want an agent to create charts in the same conversation where the question starts. It can open an interactive chart view, return static PNG/SVG output, or produce backend-native chart specs.

For setup, start with the Flint MCP project page. It includes client configuration, usage examples, and links to deeper references.

MCP calls let agents embed rows directly as data.values, or read local JSON, CSV, or TSV files by data.url. For agent workflows without MCP, use the standalone [agent skill](agent-skills/flint-chart-author/SKILL.md).

Repository overview

flint-chart/
β”œβ”€β”€ packages/
β”‚   β”œβ”€β”€ flint-js/          npm package `flint-chart` (TypeScript)
β”‚   β”‚   └── src/
β”‚   β”‚       β”œβ”€β”€ core/      semantics, layout, decisions, shared types
β”‚   β”‚       β”œβ”€β”€ vegalite/  Vega-Lite backend
β”‚   β”‚       β”œβ”€β”€ echarts/   ECharts backend
β”‚   β”‚       β”œβ”€β”€ chartjs/   Chart.js backend
β”‚   β”‚       └── test-data/ fixtures + generators (drive tests and the gallery)
β”‚   β”œβ”€β”€ flint-py/          Python port preview (package to be released)
β”‚   └── flint-mcp/         npm package `flint-chart-mcp` (MCP render server)
β”œβ”€β”€ site/                  Vite + React demo: landing, gallery, editor, docs
β”œβ”€β”€ agent-skills/          fallback copy of the MCP-served agent skill
β”œβ”€β”€ shared/test-data/      JSON fixtures shared across JS + Python
└── docs/                  architecture and design documents

Documentation

The project site is the main entry point for examples, the live editor, and concept docs. For source-level references, start with the [API reference](docs/api-reference.md), the Flint MCP project page, or the [Development guide](docs/DEVELOPMENT.md).


Contributing

Contributions are welcome! See [.github/CONTRIBUTING.md](.github/CONTRIBUTING.md) and the [Development guide](docs/DEVELOPMENT.md).

git clone https://github.com/microsoft/flint-chart
cd flint-chart
npm install            # root workspaces: packages/flint-js + flint-mcp + site

npm run typecheck      # typecheck packages/flint-js + packages/flint-mcp
npm run test           # Vitest (packages/flint-js + packages/flint-mcp)
npm run build          # build packages/flint-js + packages/flint-mcp
npm run site           # demo site (gallery + editor) at http://localhost:5274/

Node 18+ is required. The demo site aliases flint-chart to packages/flint-js/src, so library edits hot-reload in the gallery and editor without rebuilding dist/.

We especially welcome contributions that add new [chart templates](docs/adding-a-chart-template.md) or new [rendering backends](docs/adding-a-backend.md).

This project has adopted the [Microsoft Open Source Code of Conduct](.github/CODEOFCONDUCT.md). See [SECURITY.md](.github/SECURITY.md) to report vulnerabilities.

Trademarks

This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow Microsoft's Trademark & Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos is subject to those third parties' policies.

License

[MIT](LICENSE) Β© Microsoft Corporation

Source & license

This open-source MCP server is cataloged on AgentStack and links to its original source β€” we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet β€” be the first.

Versions

  • v0.1.0 Imported from the upstream source.