MCP Server Chart
OFFICIAL SERVERTurns data into chart images, diagrams and maps through AntV's rendering service
Pick, validate, repair and render Semiotic React charts, and audit them for accessibility
Official · nteract TypeScript Remote (hosted) · Streamable HTTPLocal · stdio, Streamable HTTP Developer toolsData and analytics
84 popularity score ★ 2.7k ↓ 9.6k/wk
Opens the app, which asks before it adds the server.
Its docs show no set-up for a particular client: add this address in your client the way it adds a remote MCP server.
https://semiotic-mcp-server-481507046413.us-west1.run.app/mcpOpens the app, which asks before it adds the server.
claude mcp add --transport http semiotic http://127.0.0.1:3001/mcp{
"mcpServers": {
"semiotic": {
"url": "http://127.0.0.1:3001/mcp"
}
}
}{
"servers": {
"semiotic": {
"type": "http",
"url": "http://127.0.0.1:3001/mcp"
}
}
}[mcp_servers.semiotic]
url = "http://127.0.0.1:3001/mcp"gemini mcp add --scope user --transport http semiotic http://127.0.0.1:3001/mcpOpens the app, which asks before it adds the server.
claude mcp add semiotic -- npx -y -p semiotic semiotic-mcp{
"mcpServers": {
"semiotic": {
"command": "npx",
"args": [
"-y",
"-p",
"semiotic",
"semiotic-mcp"
]
}
}
}{
"mcpServers": {
"semiotic": {
"command": "npx",
"args": [
"-y",
"-p",
"semiotic",
"semiotic-mcp"
]
}
}
}{
"servers": {
"semiotic": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"-p",
"semiotic",
"semiotic-mcp"
]
}
}
}[mcp_servers.semiotic]
command = "npx"
args = ["-y", "-p", "semiotic", "semiotic-mcp"]gemini mcp add --scope user semiotic npx -- -y -p semiotic semiotic-mcpMCP_TOOL_PROFILE |
Optional: Tool set: developer (24 tools) or public (5 workflow tools); --profile overrides it, and any other value stops startup. |
|---|---|
MCP_MAX_TOOL_OUTPUT_BYTES |
Optional: Largest tool response sent before an error is returned instead. |
MCP_MAX_RENDER_WORK_MS |
Optional: Time budget for render work. |
MCP_MAX_PNG_CONVERSION_MS |
Optional: Time budget for PNG conversion. |
| Set together: http | |
MCP_HOST |
Optional: HTTP mode: address to bind; --host overrides it. |
MCP_AUTH_TOKEN secret |
Optional: HTTP mode: token clients must send in the Authorization header. |
MCP_AUTH_SCHEME |
Optional: HTTP mode: scheme expected before MCP_AUTH_TOKEN. |
MCP_ALLOWED_HOSTS |
Optional: HTTP mode: comma-separated Host header allowlist. |
MCP_ALLOWED_ORIGINS |
Optional: HTTP mode: comma-separated Origin allowlist, needed by browser clients. |
MCP_MAX_BODY_BYTES |
Optional: HTTP mode: largest request body accepted. |
OPENAI_APPS_CHALLENGE_TOKEN secret |
Optional: HTTP mode: token served at /.well-known/openai-apps-challenge for ChatGPT Apps domain verification. |
Semiotic is a React data visualization library from the nteract project. Its npm package carries an MCP server, semiotic-mcp, so a coding assistant can look up, check and render Semiotic charts through tool calls instead of writing chart code unchecked.
In its default developer profile the server registers 24 tools. They cover prop schemas for any component, chart and dashboard recommendations from sample rows or stream schemas, anti-pattern diagnosis and repair of a chart configuration, and static rendering to SVG or PNG. There are also data summaries and grounding payloads so the assistant can answer questions about a chart, Chartability accessibility and mobile audits, and checks for misleading design. A further set audits an explicit artifact contract under a named policy and explains refusals. It also serves 13 resources (schemas, examples, behaviour contracts, a system prompt, task packets and a ChatGPT Apps widget template) and two prompts for building and debugging a chart.
Started with --profile public (or MCP_TOOL_PROFILE=public), it registers a smaller set of five workflow tools instead: createChart, improveChart, explainChart, auditChart and getChartSchema. Startup is strict. An unknown flag, a repeated flag or a profile name other than developer or public stops the server before it serves anything.
It runs locally with npx over stdio, or with --http for Streamable HTTP on port 3001 by default. The registry entry also lists a hosted Streamable HTTP endpoint on Google Cloud Run. No API key or account is needed.
| To run it yourself | Node.js 22.12+ |
|---|---|
| Runs on | macOS, Windows, Linux |
Suits developers building charts with Semiotic in React who want their coding assistant to check props against the real schema, catch configuration mistakes and see a rendered result before handing over code. Everything runs on the user's machine with no account, and every tool only reads its input and returns a result. It is of little use for projects on other chart libraries, since all schemas and recommendations are Semiotic's. Teams wanting a remote connector for ChatGPT can run HTTP mode behind a tunnel with a host allowlist and bearer token, or use the hosted endpoint if sending chart data to the maintainers' service is acceptable.
29 only read. A ? marks an optional parameter.
getSchemacomponent?: stringsuggestChartdata: arrayintent?: stringcapabilities?: objectsuggestChartsproposeChartVariantssuggestStreamChartssuggestStreamDashboardsuggestDashboardsuggestStretchChartsrepairChartConfigrenderChartcomponent: stringprops?: objectcontract?: objecttheme?: objectformat?: enuminterrogateChartgroundChartdiagnoseConfigauditAccessibilityevaluateChartauditMobileVisualizationreportIssueapplyThemerenderInteractiveChartsuggestTokenEncodingauditArtifactrecommendRepresentationrepairArtifactexplainRefusalcreateChartimproveChartexplainChartauditChartgetChartSchemasemiotic://build-infosemiotic://taskssemiotic://tasks/{taskId}semiotic://schemasemiotic://artifact-contract-schemasemiotic://schema-indexsemiotic://schema/{component}semiotic://componentssemiotic://surface-manifestsemiotic://behavior-contractssemiotic://system-promptsemiotic://examplesui://semiotic/chart-widget.htmlbuild-semiotic-chartdebug-semiotic-chart