renderChartLABSCO 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-promptandsemiotic://examples, plus thebuild-semiotic-chartanddebug-semiotic-chartprompts
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.
Setup effort
One command — npm install semiotic
USE CASES
Getting a chart right the first time
Read the component's prop schema, write the props against it, then render and check the evidence block confirms marks were drawn.
Deciding what chart your data even wants
Pass a few sample rows and get ranked suggestions with scores, reasons, caveats, import paths and usable props.
Fixing a chart that renders blank
Run the diagnostic for empty data, bad dimensions, missing accessors and wrong shape, and get a report with the fixes spelled out.
Building a dashboard rather than one chart
Ask for a multi-panel suggestion that covers distinct analytical intents, instead of five variations on the same view.
Answering a question about what a chart shows
Get a statistical summary with chart-aware context and optional annotations, so the answer cites the data rather than the picture.
13 tools
Listed in project docs. Your client may show a different list.
renderInteractiveChartgetSchemasuggestChartsuggestChartssuggestStreamChartssuggestDashboardsuggestStretchChartsrepairChartConfiginterrogateChartdiagnoseConfigreportIssueapplyThemeBEFORE YOU INSTALL
What to know first
Tools you get
13 tools named in the project's documentation.
Where it runs
The documented client runs the server on your machine.
INSTALLATION
Connect your client
Server setup
npm install semioticMCP Clients
Any MCP client
{
"mcpServers": {
"semiotic": {
"command": "npx",
"args": [
"-y",
"-p",
"semiotic",
"semiotic-mcp"
]
}
}
}