Labsco
MCP SERVER

Semiotic

by nteract

Render charts to SVG, get schema-checked props, and have the right chart type recommended for your data — all as tool calls.

Diagrams & Charts
Summary
Render evidence is the part other chart tools do not give you.

An SVG that renders is not the same as a chart that drew your data. Getting mark counts, resolved axis domains and an empty flag back with the image means an agent can tell an empty chart from a working one without a human looking at it. The recommendation tools work the other way round — hand over sample rows and get ranked chart types with reasons, caveats and ready-to-use props.

What it is

The MCP server that ships with Semiotic, a React data-visualisation library. It exists so an AI assistant writes chart code that works the first time: schemas are machine-readable, rendering happens server-side, and bad configurations come back with diagnostics rather than a blank canvas.

What you get
  • A chart rendered to static SVG, answered with a render-evidence block — mark counts by scene type, resolved axis domains, an empty flag, annotation count and accessible name — so the agent can confirm data marks actually drew — `renderChart`
  • The prop schema for one component, or the whole schema-backed catalogue, with renderable components marked — `getSchema`
  • Chart recommendations from sample rows or from capabilities, plus stream-oriented, dashboard and audience-literacy variants — `suggestChart`, `suggestCharts`, `suggestStreamCharts`, `suggestDashboard`, `suggestStretchCharts`
  • Configuration checked for empty data, bad dimensions, missing accessors and wrong data shape, returning a readable report with fixes — `diagnoseConfig`
  • A requested chart checked against the dataset with ranked alternatives when it does not fit — `repairChartConfig`
  • A statistical summary and chart-aware context for answering questions about a chart — `interrogateChart`
  • Theme presets applied, and a pre-filled GitHub issue URL generated — `applyTheme`, `reportIssue`
  • A ChatGPT Apps widget with fit, zoom, hover and render-evidence controls — `renderInteractiveChart`
  • Resources to read directly, including `semiotic://schema`, `semiotic://schema/{component}`, `semiotic://behavior-contracts`, `semiotic://system-prompt` and `semiotic://examples`, plus the `build-semiotic-chart` and `debug-semiotic-chart` prompts
Requirements

No API keys and no authentication. The README runs it under the name `semiotic-mcp`, which npm does not have; the published package is `semiotic` 3.9.1. It runs locally over stdio, and HTTP mode is `--http --port 3001`, bound to 127.0.0.1 unless you deliberately change the host; since 3.7.2 it is stateless, so it autoscales without sticky sessions. A Cloud Run deployment wrapper is included, with `MCP_ALLOWED_HOSTS` for host-header allowlisting.