Infographic Agent Kit
Emits an async Figma Plugin API function body (via the fp_figma_script tool) that builds the planned infographic frame as native Figma objects — native text, rectangles and ellipses, with every connector, axis and ribbon rendered as a real vector. The generated script can create one page per run so the source document is never touched, and it refuses to run inside documents listed in readOnlyDocuments. Script emission is blocked when the audit fails.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Infographic Agent KitCan you turn this JSON into an SVG infographic with the default theme?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Infographic Agent Kit
A backend-agnostic compiler that turns structured data into editable infographic frames. Claude, Codex, OMP or any other host shares one set of semantics and one visual contract.
input JSON ──▶ fp-ir/1 ──▶ fp-plan/1 ──▶ backend ──▶ audit
facts absolute svg | figma-plugin
checksum coordinatesfp-plan/1 is fully resolved: every coordinate, colour and wrapped text line is decided
before a backend is chosen. Two hosts therefore cannot drift.
Why a theme pack
The renderer contains no colour, size, radius or gap. Everything comes from a pack
validated against schemas/theme.schema.json, and every field carries provenance:
"canvas.safe": {"status": "measured", "source": "out-vitalik", "note": "rect x=112 width=1696"},
"color.accent": {"status": "measured", "source": "fp-contract", "note": "FP Color System variables"}measured means it was read off a real artefact. unverified means the pack cannot
argue from it. fp doctor lists them. This is what caught the original pack inventing a
palette and mis-stating every type size.
A different team ships themes/<their-pack>.json and changes no code.
Related MCP server: infographic-mcp
Backends
Backend | Use |
| CI, review and hosts without a design tool. Same geometry, diffable text. |
| An async Figma Plugin API function body. Any bridge that can execute plugin code can run it: the OMP figma-bridge, a dev plugin, or an equivalent. |
The Figma backend creates native text, rectangles and ellipses, and emits every
connector, axis and ribbon as a real vector. It refuses to run inside a document listed
in readOnlyDocuments, and it can create one page per run so a source file is never
touched.
The production pipeline
content in ──▶ 1 read fp_brief shape, candidates + costs, search queries
──▶ 2 research web search open the results, record what was observed
──▶ 3 direction fp_direction references become decisions on pack surfaces
──▶ 4 build fp_plan ▸ fp_svg ▸ fp_figma_scriptStage 2 is an open-web search. fp_direction warns when every reference is internal,
because a direction assembled only from our own file reproduces the last frame.
Direction before composition
A frame that should look different records why. direction carries a statement, the
references actually observed (source, date, observation, transform), and decisions that
each name a pack surface they move. fp_direction refuses a reference that is only a
brand name and a decision the renderer cannot express; the accepted direction travels into
program.meta.direction. Process in docs/DIRECTION.md.
Two ways in
// free composition — the usual path for an editorial frame
{ "title": "...", "blocks": [
{ "kind": "cards", "columns": 2, "items": [ { "eyebrow": "Neutrality", "title": "...", "body": "...", "note": "..." } ] },
{ "kind": "panel", "blocks": [ { "kind": "text", "text": "..." } ] }
] }
// one grammar, when the frame really is one chart
{ "title": "...", "intent": "compare", "content": [ { "id": "base", "Network": "Base", "Revenue": 4820000 } ] }Blocks: text, columns, cards, panel, kpi, steps, chart, divider, spacer.
chart embeds any of the twenty grammars inside a layout, so composition and charting are
not separate products.
Grammars
45 grammars, covering the full diagram-design taxonomy plus the chart types the FOUR
PILLARS reports actually use:
family | grammars |
table / grid |
|
cartesian |
|
radial |
|
sequential |
|
graph |
|
entity |
|
lanes |
|
banded |
|
board |
|
shape |
|
flow / map / causal |
|
composition |
|
examples/library.json and examples/grammars.json hold a worked specimen for each, and
a test fails if a declared grammar has no renderer, no registry entry or no specimen.
Use
npm install && npm test
node dist/src/cli.js doctor # pack provenance report
node dist/src/cli.js svg input.json --out frame.svg # offline proof
node dist/src/cli.js library examples/library.json --outDir /tmp/lib
node dist/src/cli.js script input.json \
--page "2026-09-11 · run" --protect "FP Infographic" # Figma Plugin API bodyMCP over stdio: node dist/src/server.js exposes fp_themes, fp_templates,
fp_doctor, fp_plan, fp_audit, fp_svg, fp_figma_script.
fp_figma_script refuses to emit a script when the audit fails.
Rules that are enforced, not documented
Content is clamped inside the pack's safe zone.
No text below the pack minimum.
Frame height follows content.
A value must be printed or positionally encoded, or the run fails fidelity.
An accent must be authorised by the brief or the pack; the pattern is chosen by data shape (
mono,pair,categorical,sequential,diverging,ordered), never by hex.Competing hues cannot exceed the pack's categorical ceiling.
Reads parallelise; writes are serialized through one agent.
This server cannot be deployed
Maintenance
Related MCP Connectors
Create, validate, edit, export (markdown/svg/png/mermaid), and search JSON Canvas files.
Create, inspect, manage, and render charts and data visualizations as SVG/PNG or interactive embeds.
- mcpOAuthcom.slickfast
Render 47 chart types and tiled dashboards as PNG/SVG. Deterministic, no headless browser.
Generate design systems: OKLCH color palettes, fluid type scales, spacing, shape and icon tokens.
Related MCP Servers
- AlicenseAqualityAmaintenanceDesign contract layer for AI agents. Scans Figma, code, Storybook, and token files, reconciles conflicts, and serves a single machine-readable source of truth so every agent gets the same authoritative design rules before it builds. Local-first.648419Apache 2.0
- FlicenseAqualityDmaintenanceRenders infographics from DSL syntax into PNG images using AntV Infographic. Supports various templates, image customization, and multiple transport modes (stdio, HTTP, SSE).11-

Clipkitofficial
AlicenseAqualityBmaintenanceAuthor, validate, preview, and render motion-graphics videos from a single JSON document (Clipkit Protocol). 16 tools with in-chat PNG previews, captions, templated promos, and hand-off to a free browser editor by link.1616Apache 2.0- AlicenseNot gradedqualityCmaintenanceValidates and self-heals broken Mermaid diagrams, providing a stdio JSON-RPC server with validate and repair tools for AI agents.MIT