
Semiotic MCP Server: Setup for Claude, Cursor and Other Apps
Lets Claude, Cursor and other assistants choose, check and draw charts with the Semiotic React chart library.
Semiotic is a React chart library, and its MCP server ships inside the same package. The assistant can recommend a chart for your data, check the settings, and draw the result as an image. It runs on your computer with no account or API key.
The tools work on the data and settings you hand over. They do not read your files or change anything. A hosted copy also exists, so check that you are on the local setup if your data is private.
Good for
- React developers who want the assistant to build charts that actually render
- Analysts who want chart advice for a dataset
- Teams building dashboards, including live data
- Anyone who needs charts checked for accessibility and misleading design
Works in
14 should work
Tap an app to see how to set it up and any known problems.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports hosted MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports hosted MCP servers.
Install Semiotic MCP
Claude Code
- 1
Copy this prompt.
Add the Semiotic MCP server to Claude Code. Run this command: claude mcp add --transport http semiotic https://semiotic-mcp-server-481507046413.us-west1.run.app/mcp Then check that it loaded and tell me if I need to sign in or restart.
- 2
Paste it into Claude Code. It shows the change and asks before running it.
Read-only mode: Every tool is already read-only, so there is nothing to turn on.
Run the local server with the -p semiotic semiotic-mcp form shown, because the package has more than one program. The hosted option sends your chart data to a public server, so use the local one for private data. No account or API key is needed.
Built from the package data we hold. Not yet tested by us.
Tools
Recommends which chart fits your data
Looks at a set of data rows and returns ranked chart suggestions with reasons, caveats and ready-to-use settings. It uses fixed rules, not another AI.
Try: “Here is my sales table. Which chart type should I use?”
Read ·
suggestChartsPicks a chart from a few sample rows
Takes one to five sample rows and suggests a chart type, with optional filters for what you want to show.
Try: “Suggest a chart for these three sample rows.”
Read ·
suggestChartDraws a chart and returns it as an SVG image
Renders a Semiotic chart to static SVG from the component name and settings you give. It also reports what was drawn, so the assistant can check the chart is not empty, or returns errors with fix hints.
Try: “Render a line chart of monthly revenue from this data.”
Read ·
renderChartShows a chart in a ChatGPT widget with zoom and hover
Renders a static-data chart through the same path as the chart renderer, then shows it in an interactive widget for ChatGPT Apps.
Try: “Show this data as an interactive chart I can zoom.”
Read ·
renderInteractiveChartLists chart types and the settings each one accepts
Returns the settings schema for one chart component, or the full catalog when you name none.
Try: “What settings does the LineChart accept?”
Read ·
getSchemaChecks a chart setup for common mistakes
Reviews a chart configuration for problems such as empty data, bad sizes, missing fields or the wrong data shape, and returns fixes.
Try: “Why is my BarChart empty? Check this config.”
Read ·
diagnoseConfigChecks whether a chart fits your data and offers alternatives
Tests a requested chart against a dataset and returns ranked alternatives if it does not fit.
Try: “Will a pie chart work for this data, or what else should I use?”
Read ·
repairChartConfigSuggests variations of a chart you picked
Scores variants of a chosen chart type, including related charts for the same goal, and returns ready-to-use settings.
Try: “Show me three other ways to present this scatter plot.”
Read ·
proposeChartVariantsPlans a multi-chart dashboard
Builds a dashboard suggestion whose panels cover different questions about your data.
Try: “Plan a dashboard for this marketing data.”
Read ·
suggestDashboardRecommends charts for live streaming data
Takes a description of a data stream (shape, fields, speed) and recommends streaming charts.
Try: “What chart suits a sensor feed with 10 readings a second?”
Read ·
suggestStreamChartsPlans a dashboard for streaming data
Composes a multi-panel dashboard from stream descriptions and a layout policy for the audience.
Try: “Plan a live ops dashboard from these three streams.”
Read ·
suggestStreamDashboardSuggests more advanced charts for a skilled audience
Recommends picks that stretch past the usual charts, based on an audience profile of how chart-literate readers are.
Try: “Suggest a few less common charts for a data-savvy audience.”
Read ·
suggestStretchChartsRecommends icon or dot styles for showing risk and counts
Recommends a token or icon-based encoding for a reader task such as estimating probability, and warns about weak choices.
Try: “How should I show a 1 in 20 risk with dots?”
Read ·
suggestTokenEncodingSummarises a chart so questions about it can be answered
Returns a statistical summary and chart-aware context so the assistant can answer questions about the chart, with optional annotations.
Try: “What is the main trend in this chart?”
Read ·
interrogateChartDescribes a chart in words for non-visual readers
Builds a layered text description of a chart plus a navigation tree, so an assistant or screen reader can read it without seeing it.
Try: “Describe this chart for a screen-reader user.”
Read ·
groundChartLists chart themes or shows how to apply one
Lists named theme presets, or returns the code and CSS needed to use one, such as tufte.
Try: “Which chart themes are available, and how do I use tufte?”
Read ·
applyThemeChecks a chart setup for accessibility gaps
Statically grades a chart configuration against the Chartability accessibility framework. It does not test in a real browser.
Try: “Audit this chart config for accessibility.”
Read ·
auditAccessibilityRuns a quality check on a chart
Runs one pass over a chart: data checks, misleading-design checks and accessibility checks, and returns findings ranked by severity.
Try: “Evaluate this chart for quality and misleading design.”
Read ·
evaluateChartChecks whether a chart will work on a phone
Flags risks such as fixed widths, crowded marks, hover-only details and tiny touch targets. It is static analysis only.
Try: “Will this chart work on a phone screen?”
Read ·
auditMobileVisualizationChecks a chart against a stated purpose and evidence policy
Evaluates an artifact contract (purpose, claims, evidence, timing, review) under a named policy, without guessing missing facts.
Try: “Audit this chart contract under the strict policy.”
Read ·
auditArtifactCompares a chart with other ways to present the result
Compares chart and non-chart options against the data, claims, evidence and policy you supply.
Try: “Should this finding be a chart or a table?”
Read ·
recommendRepresentationProposes fixes to a chart contract
Suggests repairs to a chart contract and can fill missing identity fields. It never invents source, evidence, review or timing facts.
Try: “Propose repairs for this chart contract.”
Read ·
repairArtifactExplains why a chart should not be published yet
Explains which policy obligations block publication or action and what safe follow-up work remains.
Try: “Why was this chart refused, and what can I do?”
Read ·
explainRefusalBuilds a pre-filled GitHub bug report link
Returns a link you can open to file a bug or feature request. It builds the URL only and does not post anything.
Try: “Draft a bug report for this rendering problem.”
Read ·
reportIssue
Read from the source code
Permissions
low risk · 2 things to watch
Low risk
Every tool only computes on the data you pass in, so the main risk is sending private data to the hosted copy instead of the local one. Use the local setup for private data.
What it can do
- Read your data
- Create and change things
- Delete things
- Read-only modeHow to turn it on
Watch out for
Hosted option sends your data to a public server
The Hosted setup sends chart data to a server you do not control. Use the local npx setup for anything private. github.com
Local web mode is closed to browsers by default
The optional HTTP mode binds to 127.0.0.1 and rejects browser requests unless you allow an origin. Only open it wider if you need to, and set an auth token. github.com
Security advisories
No published security advisories as of Nov 1, 2026.
Technical details
| Turning on read-only | All tools are read-only by design; the source marks every tool readOnlyHint true. |
|---|---|
| Sign-in and keys | No credentials are needed for local use. |
Questions
Is this the official Semiotic MCP server?
Yes. It ships inside the Semiotic package from the nteract project, the same team that makes the chart library.
Does it need an API key?
No. The local setup needs only Node.js and no account. HTTP mode can optionally require a bearer token that you set yourself.
Can it change my files or data?
No. Every tool is marked read-only in the source and works only on the data and settings you give it.
Is there a hosted version?
Yes. The Semiotic maintainers (nteract) list a hosted address in their registry entry and deploy it with each release; it is shown in the install box. It sends your chart data to that server, so prefer the local setup for private data.
How many tools does it have?
24 tools in the default local setup. A smaller "public" profile with five tools is available through a startup option.
Do I need to use React?
The server renders charts to SVG for you, but the charts and their settings are Semiotic React components. It is most useful when you plan to use Semiotic in a React app.
How do I add it to Claude or Cursor?
Use the install box above. Pick the local npx option, and restart the app so it loads the tools.
Information
updated Nov 2, 2026
- Publisher
- Official
- Package
semiotic- Registry
- npm
- Endpoint
https://semiotic-mcp-server-481507046413.us-west1.run.app/mcp- Transport
- stdio, Streamable HTTP
- Auth
- None
- Version
- 3.13.3
- License
- Apache-2.0
- Last commit
- Oct 31, 2026
- Open issues
- 207
- Listed in
- Official MCP registry
Sources
Docs, issue trackers and discussions this page is built from. Issues, quotes and findings above link to their own source.
Show all 3Hide
- README.md · github.com
- mcp-server.ts · github.com
- MCP_DISTRIBUTION.md · github.com