AI 에이전트용 차트 언어와 MCP 서버, Vega-Lite·ECharts 변환 파이프라인
Flint는 인간 친화적 차트 사양을 자동으로 컴파일해 Vega-Lite·ECharts·Chart.js용 완성 스펙과 인터랙티브 뷰를 생성하는 TypeScript 라이브러리와 MCP 서버이다.
TL;DR
Flint는 데이터 필드에 대한 시맨틱 타입과 간결한 chart_spec을 입력으로 받아 컴파일러가 스케일, 축, 레이아웃 등 시각화 세부를 자동 산출해 Vega-Lite, ECharts, Chart.js용 네이티브 스펙과 렌더링을 생성하는 도구 집합이다. 이 도구는 하나의 상위 사양으로 다수의 백엔드로 변환할 수 있고 MCP 서버를 통해 에이전트가 대화 내에서 인터랙티브 차트 뷰를 열어 검증·편집·이미지 출력을 수행할 수 있게 한다. 결과적으로 에이전트 기반 차트 생성과 프런트엔드 렌더러 전환 비용을 줄여 프로토타이핑과 챗 기반 시각화 워크플로를 단축하지만 구체적인 런타임 제약이나 버전 호환성은 문서와 데모 환경에서 확인해야 한다.
주요 기능
- Flint는 70개가 넘는 시맨틱 타입을 사용해 각 데이터 필드의 의미를 명시하고 이 정보를 바탕으로 스케일과 축 설정을 자동으로 유도한다. 시맨틱 타입을 입력하면 컴파일러가 적합한 스케일 유형과 표기법을 결정하므로 개발자나 에이전트가 축이나 색상 스케일을 세세히 조정할 필요가 줄어든다. 이 방식은 특히 다양한 도메인 데이터를 일관되게 시각화할 때 오류를 줄이고 재현성을 높인다.
- Flint의 자동 레이아웃 기능은 데이터 카디널리티, 차트 디자인, 캔버스 제약을 고려해 크기, 간격, 레이블, 마크 및 범례 배치를 조정한다. 입력에 baseSize나 인코딩만 주면 컴파일러가 최적화된 레이아웃 값을 산출해 렌더러별 표현 차이를 흡수한다. 결과적으로 같은 사양으로도 백엔드별로 보기 좋은 시각화를 얻기 쉬워진다.
- 하나의 입력으로 Vega-Lite, ECharts, Chart.js 등 여러 백엔드의 네이티브 스펙을 생성할 수 있어 렌더러 교체 시 입력 형식을 변경할 필요가 없다. README 예시와 API는 assembleVegaLite, assembleECharts, assembleChartjs 같은 함수 호출을 통해 백엔드를 바꾸는 방법을 그대로 보여준다. 이 다중 백엔드 지원은 프런트엔드 환경이나 퍼포먼스 요구에 따라 유연하게 렌더러를 선택할 수 있게 한다.
- flint-chart-mcp MCP 서버는 에이전트가 대화 내에서 차트를 생성·검증·렌더링하도록 통합된 도구를 제공한다. MCP 호출을 통해 에이전트는 데이터 행을 직접 삽입하거나 외부 JSON/CSV/TSV를 참조하면서 인터랙티브 차트 뷰를 열 수 있다. 이 구성은 챗 기반 워크플로에서 사용자가 차트를 즉시 보고 스펙을 편집하거나 이미지 출력으로 저장하는 흐름을 지원한다.
어떻게 동작하는가
Flint 입력은 데이터, 시맨틱 타입 맵, 차트 사양(chart_spec)으로 구성되며 컴파일러는 이 정보를 바탕으로 축 유형, 스케일 범위, 레이블, 마진 등 세부 레이아웃 결정을 자동으로 도출한다. 컴파일러는 도출된 설정을 Vega-Lite, ECharts, Chart.js의 네이티브 스펙 구조로 변환하므로 동일한 상위 사양으로 다양한 렌더러에서 일관된 결과를 얻을 수 있다. MCP 서버는 에이전트 호출을 받아 데이터 값을 삽입하거나 파일 URL을 읽어 인터랙티브 뷰를 열고 PNG/SVG 또는 네이티브 스펙 형태로 결과를 반환한다.
해결 문제
에이전트나 개발자가 백엔드별로 상세한 차트 구성(스케일, 축, 레이블, 간격)을 일일이 튜닝해야 하는 부담을 줄인다. Flint는 데이터 필드의 시맨틱 타입과 간결한 chart_spec을 입력으로 받아서 컴파일러가 최적화된 시각화 설정을 자동으로 산출하도록 한다. 이를 통해 에이전트는 간단한 인간 편집형 사양만 생성해도 각 백엔드에서 표현 가능한 완성된 차트를 얻을 수 있다.
차별점
- 시맨틱 타입 기반 설계가 핵심으로, 데이터 필드의 의미를 명시하면 컴파일러가 축·스케일·레이블 등의 세부 설정을 자동으로 유도한다. 이 접근은 단순 키-값 인코딩만으로는 얻기 어려운 도메인 적합한 시각화 구성을 보장한다. 문서에는 'Rank', 'Temperature', 'Price', 'Country' 같은 구체적 타입 목록이 언급되어 있다.
- 한 번의 상위 사양으로 Vega-Lite, ECharts, Chart.js 등 30개 이상의 차트 타입과 백엔드로 변환할 수 있어 렌더러 전환 비용이 낮다. README 예시는 assembleVegaLite, assembleECharts, assembleChartjs 같은 백엔드별 어셈블러를 통해 동일 입력으로 결과를 얻는 과정을 보여준다. 이 특성은 프론트엔드 요구에 따라 렌더러를 바꾸려는 프로젝트에서 유리하다.
- MCP 서버 통합으로 에이전트-대화형 워크플로를 직접 지원한다는 점이 돋보인다. MCP를 통해 에이전트는 대화 내에서 차트 템플릿을 선택하고 검증한 뒤 인터랙티브 뷰를 열어 사용자가 즉시 시각화를 확인하도록 한다. 이 흐름은 챗 기반 분석 또는 코드-대화 통합 환경에서 차트 생성 피드백 루프를 단축한다.
사용 사례
- 챗 기반 에이전트가 사용자 질의에 따라 즉시 차트를 생성하고 인터랙티브로 편집하는 워크플로에 적용할 수 있다. MCP 서버를 사용하면 에이전트가 대화 문맥에서 데이터 행을 삽입하거나 외부 파일을 참조해 바로 차트를 렌더링하므로 반복적인 요청-응답에서 시각화 피드백이 빠르게 이루어진다. 이 시나리오는 보고서 초안 작성이나 데이터 요약에서 유용하다.
- 프런트엔드 애플리케이션이나 대시보드에서 동일한 상위 사양을 여러 렌더러로 빠르게 전환해야 할 때 활용할 수 있다. Flint는 하나의 입력으로 Vega-Lite, ECharts, Chart.js 네이티브 스펙을 생성하므로 렌더러에 따른 구현 비용을 줄이고 테스트를 단순화한다. 이로 인해 라이브러리 선택이나 브라우저 호환성 제약에 따른 재작성 노력을 최소화할 수 있다.
- 데이터 분석 초기 단계에서 프로토타이핑 용도로 간단한 사양을 빠르게 시각화해 가설을 검증하는 데 적합하다. 시맨틱 타입과 자동 레이아웃은 다양한 카디널리티와 속성의 데이터에 대해 일관된 기본 표현을 제공하므로 시각화 초안 작성 시간이 단축된다. 또한 생성된 네이티브 스펙을 수동으로 미세 조정해 최종 플롯을 완성할 수 있다.
시작하기
라이브러리 사용은 npm 설치로 시작하며 README에 제시된 예제에서 assembleVegaLite 또는 assembleECharts 같은 함수를 호출해 바로 네이티브 스펙을 생성할 수 있다. 에이전트 통합이 필요한 경우 npx를 사용해 flint-chart-mcp를 실행하면 MCP 서버가 기동되어 대화형 차트 뷰를 열 수 있다. 추가 예제와 API 참조는 프로젝트 사이트의 라이브 에디터와 문서 페이지에서 확인할 수 있다.
요구사항
- Node.js와 npm 환경이 필요하며 flint-chart는 JavaScript/TypeScript 패키지로 배포되어 있다. README 설치 지침에 npm install flint-chart와 npx flint-chart-mcp 사용 예시가 포함되어 있으므로 표준 Node 기반 개발 환경에서 바로 사용할 수 있다. Python 포트는 저장소에 소스 미리보기로 존재하나 별도 패키지 배포는 아직 준비 단계이다.
- MCP 통합을 사용하려면 클라이언트가 Model Context Protocol을 지원해야 하며 MCP 클라이언트 설정과 서버 구성은 프로젝트 사이트의 MCP 가이드에 정리되어 있다. 인터랙티브 뷰를 사용하려면 MCP-capable 클라이언트가 필요하므로 해당 클라이언트 생태계와의 연동 작업이 사전 요구사항으로 등장한다. 프런트엔드 데모는 Vite + React로 구성되어 있어 동일 환경에서 데모를 실행하면 예제를 빠르게 확인할 수 있다.
이미지 분석


1.9k
Stars
94
Forks
+220
Trending
0
조회수
관련 토론
아직 관련 토론이 없습니다.
댓글
댓글을 작성하려면 로그인이 필요합니다.