AI 에이전트가 사람이 편집하기 쉬운 간단한 사양을 바탕으로 다양한 렌더링 백엔드에서 표현력이 풍부하고 상호작용이 가능한 고품질 차트를 생성할 수 있도록 지원합니다.
다른 이름 microsoft/flint-chart, flint-chart-mcp
- 스타
- 4,577
- Tools
- —
- 다운로드, 30일
- —
- 최신 버전
- —
- 마지막 커밋
- 2026년 11월 10일
- 라이선스
- MIT
Flint MCP란?
Flint은(는) MCP server입니다. AI 에이전트가 사람이 편집하기 쉬운 간단한 사양을 바탕으로 다양한 렌더링 백엔드에서 표현력이 풍부하고 상호작용이 가능한 고품질 차트를 생성할 수 있도록 지원합니다.
프로젝트 README에서 생성된 요약
Flint MCP server 정보
Flint는 AI 에이전트가 간단한 사양을 사용하여 고품질의 인터랙티브 차트를 생성할 수 있도록 설계된 시각화 언어입니다. Claude, Cursor, VS Code의 GitHub Copilot과 같은 클라이언트와 통합되는 MCP server로 작동합니다. 사용자는 npx를 사용하여 로컬에 설정하거나 호스팅된 HTTP 서버에 연결할 수 있습니다. 이 시스템을 통해 에이전트는 대화 과정에서 인터랙티브 시각화, 정적 PNG 또는 SVG 파일, 또는 백엔드 네이티브 사양을 직접 생성할 수 있습니다.
이 플랫폼은 Vega-Lite, ECharts, Chart.js, Plotly, 그리고 네이티브 Excel 차트를 포함한 5가지의 서로 다른 렌더링 백엔드에 걸쳐 52가지의 다양한 차트 유형을 지원합니다. 시맨틱 타입을 사용하여 스케일, 축 및 포맷팅을 자동으로 처리함으로써 생성 과정을 단순화합니다. 개발자는 flint-chart npm 라이브러리를 사용하여 이러한 차트를 React 또는 vanilla JavaScript 애플리케이션에 임베드할 수 있으며, 14가지 프리셋 테마와 23가지 인터랙션 프리셋을 활용하여 시각적 일관성을 유지할 수 있습니다.
활용 사례
- 1인터랙티브 금융 차트 생성에이전트에게 주식 데이터를 가져오고 호버 효과가 포함된 특정 전문 스타일로 표시하도록 요청합니다.
- 2React 기반 데이터 대시보드 구축Flint 라이브러리를 웹 애플리케이션에 통합하여 데이터 객체로부터 복잡한 차트를 렌더링합니다.
- 3편집 가능한 Excel 보고서 생성에이전트를 사용하여 스프레드시트 소프트웨어에서 직접 사용할 수 있는 차트 템플릿을 생성합니다.
- 4일관된 브랜드 테마 적용단일 테마 사양을 사용하여 여러 다양한 차트 유형에 통일된 시각적 정체성을 적용합니다.
프로젝트의 README를 바탕으로 작성되었습니다. 모든 활용 사례는 해당 내용의 인용문과 대조하여 확인합니다.
Flint MCP 설치 방법
형식 확인: 2026년 11월 10일Cursor에 추가Goose에 추가Claude Code에 Flint MCP 설치
$ claude mcp add flint-chart -- npx -y flint-chart-mcpCursor에 Flint MCP 설치
~/.cursor/mcp.json
{
"mcpServers": {
"flint-chart": {
"command": "npx",
"args": [
"-y",
"flint-chart-mcp"
]
}
}
}VS Code에 Flint MCP 설치
.vscode/mcp.json
{
"servers": {
"flint-chart": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"flint-chart-mcp"
]
}
}
}VS Code CLI에 Flint MCP 설치
$ code --add-mcp '{"name":"flint-chart","type":"stdio","command":"npx","args":["-y","flint-chart-mcp"]}'Claude Desktop에 Flint MCP 설치
claude_desktop_config.json
{
"mcpServers": {
"flint-chart": {
"command": "npx",
"args": [
"-y",
"flint-chart-mcp"
]
}
}
}Codex에 Flint MCP 설치
$ codex mcp add flint-chart -- npx -y flint-chart-mcpCodex config.toml에 Flint MCP 설치
~/.codex/config.toml
[mcp_servers.flint-chart] command = "npx" args = ["-y", "flint-chart-mcp"]
Gemini CLI에 Flint MCP 설치
$ gemini mcp add -s user flint-chart npx -- -y flint-chart-mcpGemini settings.json에 Flint MCP 설치
~/.gemini/settings.json
{
"mcpServers": {
"flint-chart": {
"command": "npx",
"args": [
"-y",
"flint-chart-mcp"
]
}
}
}자동 검사
2026년 11월 12일에 실행됨전체 보고서 →자동 검사를 통과했습니다. 이는 보안 감사가 아닙니다. 코드를 직접 읽고 서버에 필요한 최소한의 권한만 부여하십시오. 검사 방식
- 소스 저장소 연결 및 접근 가능통과
- 오픈 소스 라이선스 (OSI)통과
- 최근 1년 내 커밋 또는 릴리스통과
- 패키지 이름이 인기 패키지와 유사하지 않음통과
- 원격 엔드포인트가 HTTPS 사용검사되지 않음
- 파괴적인 도구에 라벨 표시됨검사되지 않음
- 모델에 대한 숨겨진 지침 없음통과
- 패키지 및 해당 종속성에 중요한 보안 권고 없음검사되지 않음
README
GitHub에서 보기Project site · 中文主页 · MCP server
Flint is a visualization language that lets AI agents reliably create expressive, good-looking and interactive charts from simple, human-editable chart specs. It is available as an MCP server for everyday use with your agent, and as an npm library for building interactive applications.
Flint supports 52 chart types across 5 rendering backends — Vega-Lite, ECharts, Chart.js, Plotly, and native Excel charts — through one unified interface, with 14 themes and 23 interaction presets. To create bespoke visualizations, design custom themes in the Theme Lab and build advanced interactions with the Flint API.
https://github.com/user-attachments/assets/c1cda0fa-3ea7-41af-b3fd-a127bc83d641
Updates
- October 19, 2026 — Flint 1.0 introduces Flint Interactive: interaction presets, semantic events, and an interaction API that connects charts to your app. (changelog)
- August 12, 2026 — Flint 0.5.1 extends visual themes to the Plotly backend and adds Vega-Lite Calendar Heatmap.
- August 5, 2026 — Flint 0.5.0 introduces formal visual themes with preset themes, custom ThemeSpec authoring, and preset inheritance. (v0.5.0)
- July 24, 2026 — Flint 0.4.0 adds 38 Plotly chart types and 18 native, editable Excel chart templates. (v0.4.0)
See the changelog for every release.
Get started
In your agent app (MCP server)
Chart right in the conversation with any MCP client, such as GitHub Copilot in VS Code, Claude, Claude Code, Codex, or Cursor.
⚡ Quick start: paste this setup request into your agent and let it configure Flint for the current project. For manual setup, see the MCP server guide.
Help me set up Flint as an MCP server named "flint"!
1. Add it to my client config, using whichever option my client supports:
- a local (stdio) server: npx -y flint-chart-mcp
- the hosted server over HTTP: https://flint.data-formulator.ai/mcp
2. Verify the setup by listing the available Flint chart types.
3. Show me a fun first chart: how many moons each planet has, in a Flint theme you like.
Then ask your agent for a chart, for example:
Go to Yahoo Finance, find today's percentage change for the Magnificent Seven
tech stocks, and compare their performance with Flint in Economist style.
Let me hover to read each stock's change.
The agent can open an interactive chart right in the conversation, return a static PNG or SVG, or produce a backend-native spec.
Build with your coding agent
Are you a developer building agent apps? Use
flint-chart, Flint's npm library,
to bring charts into your apps, dashboards, and data stories:
npm install flint-chart
The library compiles Flint specs into backend-native chart specs and provides React and vanilla JavaScript APIs for embedding interactive charts.
A Flint spec describes the data, semantic types, and field mappings, with
optional theme and interaction settings. In React, pass it to <FlintChart>
to embed an interactive chart:
import type { ChartAssemblyInput } from 'flint-chart';
import { FlintChart } from 'flint-chart/react';
const spec: ChartAssemblyInput = {
data: { values: [
{ Month: '2026-01', Users: 1200 },
{ Month: '2026-02', Users: 1800 },
] },
semantic_types: { Month: 'YearMonth', Users: 'Quantity' },
chart_spec: {
chartType: 'Line Chart',
encodings: { x: 'Month', y: 'Users' },
},
theme_spec: 'economist',
interaction_spec: { interactions: [{ type: 'inspect-index' }] },
};
<FlintChart spec={spec} />
You can copy the following instruction to your coding agent to build a chart with Flint, then adapt it to your data and app:
Read Flint's chart authoring and interaction skills:
https://github.com/microsoft/flint-chart/blob/main/agent-skills/flint-chart-author/SKILL.md
https://github.com/microsoft/flint-chart/blob/main/agent-skills/flint-interaction-author/SKILL.md
Use these skills to add a chart to this app.
Install flint-chart and the renderer dependencies needed for this project.
Plot monthly users by region from our data in Economist style.
Let readers hover to compare regions at each month, and add a region selector
that updates the chart.
Integrate it with the app's existing layout and verify it works.
The agent can also generate backend-native specs or editable Excel charts for reports and documents. See the API reference, interaction API, and live editor for the underlying APIs and examples.
How it works
A Flint spec consists of the data, semantic types, the chart spec, and optional theme and interaction specs. Instead of relying on complex user-side logic to glue them together, the compiler resolves each part against the others and composes a complete backend-native spec.
1. Describe data with semantic types
Fields are described with semantic types such as Rank, YearMonth, Delta,
or Temperature, along with their domains and units. The compiler uses them to
infer parsing, scales, axes, formatting, and colors — a short Flint spec becomes
a complete backend spec.
2. Build charts once, render on any backend
Charts are defined with high-level chart types and encodings. The compiler adapts sizing, spacing, labels, and legends to the data, for example as it gets denser, and the same spec renders across Vega-Lite, ECharts, Chart.js, and Plotly, or as native Excel charts. See the API reference and the gallery.
3. Unify the look with a theme spec
Geometry, typography, and color are reusable formal specs that apply across a whole chart library, independent of the data and chart type. Pick one of 14 preset themes, such as the New York Times, the Economist, Swiss, or McKinsey, or inherit one and override only what belongs to your brand:
theme_spec: { extends: 'economist', id: 'our-brand', ink: { series: { single: '#6b3fa0' } } }
Compare every preset in the theme explorer, design your own in the Theme Lab, and see the theme guide for the full reference.
4. Add interactions with an interaction spec
Flint provides 23 interaction presets and a programming API for building interactive charts into applications. The compiler resolves user interaction events into semantic information, so your app only answers with high-level chart updates:
import { FlintChart } from 'flint-chart/react';
<FlintChart
spec={{ ...input, interaction_spec: { interactions: [{ type: 'brush-x' }] } }}
onChange={({ phase, state }) => {
if (phase === 'commit') table.filter(state.selected);
}}
/>
Try the presets in the interaction gallery, see bespoke ones in advanced interactions, and read the interaction spec and programming API.
Documentation
- Project site — gallery, live editor, themes, and interactions
- API reference and backend references for Vega-Lite, ECharts, Chart.js, Plotly, and Excel
- Theme guide, interaction spec, and interaction programming API
- MCP server guide and agent skills
- Paper on arXiv
A Python port is in preview as source in packages/flint-py; its package is not yet released.
Contributing
Contributions are welcome — especially new chart templates and rendering backends. See CONTRIBUTING and the development guide.
git clone https://github.com/microsoft/flint-chart
cd flint-chart
npm install # workspaces: packages/flint-js, packages/flint-mcp, site
npm run typecheck # typecheck flint-chart and flint-chart-mcp
npm run test # Vitest for both packages
npm run build # build both packages
npm run site # project site, gallery, and editor at http://localhost:5274/
Node 18+ is required. The site aliases flint-chart to packages/flint-js/src,
so library edits hot-reload without rebuilding.
flint-chart/
├── packages/
│ ├── flint-js/ npm package `flint-chart` (TypeScript)
│ │ └── src/
│ │ ├── core/ semantics, themes, layout, decisions, shared types
│ │ ├── chart-types/ shared chart definitions and template metadata
│ │ ├── interactive/ interaction presets and runtime
│ │ ├── react/ the `<FlintChart>` React component
│ │ ├── vegalite/ Vega-Lite backend
│ │ ├── echarts/ ECharts backend
│ │ ├── chartjs/ Chart.js backend
│ │ ├── plotly/ Plotly backend
│ │ ├── excel/ native Excel backend
│ │ └── test-data/ fixtures and stress-test generators
│ ├── flint-mcp/ MCP server `flint-chart-mcp`, MCP App UI, and tests
│ └── flint-py/ Python port preview
├── site/ Vite + React project site, gallery, editor, and docs
├── agent-skills/ chart, theme, and interaction authoring skills for agents
├── docs/ user, API, backend, and architecture documentation
└── design-docs/ design proposals and implementation research
This project has adopted the Microsoft Open Source Code of Conduct. See SECURITY.md to report vulnerabilities.
Community
Contributors
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 © Microsoft Corporation
Flint MCP 질문
Flint MCP를 Claude Code에 추가하려면 어떻게 하나요?
터미널에서 claude mcp add flint-chart -- npx -y flint-chart-mcp를 실행합니다. 모든 프로젝트에서 사용할 수 있게 하려면 --scope user를 추가합니다.
Flint MCP를 Cursor에 추가하려면 어떻게 하나요?
~/.cursor/mcp.json를 열고 mcpServers 아래에 서버를 추가합니다. 위 설치 섹션에 표시된 Cursor 구성을 사용합니다.
차트의 외관을 사용자 정의할 수 있나요?
네, Economist 또는 New York Times와 같은 14가지 프리셋 테마 중에서 선택하거나 Theme Lab을 사용하여 직접 커스텀 테마를 디자인할 수 있습니다.
Flint는 인터랙티브 차트를 지원하나요?
네, 23가지 인터랙션 프리셋과 프로그래밍 API를 제공하여 브러싱(brushing)이나 셀렉터(selector)와 같은 상호작용 요소를 차트에 구축할 수 있습니다.