
How to add Semiotic MCP Server to Windsurf
Render charts, validate configs, and get chart recommendations from a React data-viz library via MCP. Paste the config into ~/.codeium/windsurf/mcp_config.json and restart Windsurf.
Last updated June 14, 2026 · 2.7k★ · stdio · no auth
Windsurf config for Semiotic MCP Server
npx semiotic-mcp{
"mcpServers": {
"semiotic-mcp-server": {
"command": "npx",
"args": [
"semiotic-mcp"
]
}
}
}Setup steps
- 1Open Windsurf → Cascade → the hammer/MCP icon → Configure (or edit ~/.codeium/windsurf/mcp_config.json).
- 2Paste the Semiotic MCP Server config below.
- 3Fill in placeholder secrets, then save.
- 4Click Refresh in the MCP panel.
- 5Semiotic MCP Server's tools become available to Cascade.
Before you start
- Node.js with npx available
- An MCP client (e.g. Claude Desktop, Cursor, Windsurf, Cline)
What Semiotic MCP Server can do in Windsurf
renderChartRender a Semiotic chart to static SVG. Supports components from getSchema marked [renderable], e.g. { component: "LineChart", props: { data: [...], xAccessor: "x", yAccessor: "y" } }. Returns the SVG string plus a "Render evidence" JSON block (mark counts by scene type, resolved axis domains, empty flag, annotation count, accessible name) so agents can verify the chart drew data marks, or validation errors with fix suggestions.
renderInteractiveChartRender a static-data chart as a ChatGPT Apps widget. Uses the same Semiotic server render path as renderChart, then hydrates an iframe UI with fit, zoom, data, hover, and render-evidence controls.
getSchemaReturn the prop schema for a specific component, e.g. { component: "LineChart" }, or omit component to list all 47 chart schemas. Components marked [renderable] are available through renderChart; realtime charts require a browser/live environment.
suggestChartLegacy sample-row recommender. Pass { data: [{...}, ...] } with 1-5 sample objects plus optional broad intent/capability filters.
suggestChartsCapability-based recommender for bounded row data. Returns ranked chart suggestions with scores, reasons, caveats, import paths, and ready-to-use props.
suggestStreamChartsRecommend realtime charts from a stream schema, throughput, and retention hints.
suggestDashboardBuild a multi-panel dashboard suggestion that covers distinct analytical intents.
suggestStretchChartsRecommend audience-literacy stretch picks from an AudienceProfile.
Security
No API keys or authentication required; the server runs locally via stdio. HTTP mode is read-only and stateless; for production HTTP deployments use MCP_ALLOWED_HOSTS for host-header allowlisting.
Semiotic MCP Server + Windsurf FAQ
Where is the Windsurf config file?
Windsurf reads MCP servers from ~/.codeium/windsurf/mcp_config.json. Paste the Semiotic MCP Server config there under the "mcpServers" key and restart the client.
Is Semiotic MCP Server safe to use with Windsurf?
No API keys or authentication required; the server runs locally via stdio. HTTP mode is read-only and stateless; for production HTTP deployments use MCP_ALLOWED_HOSTS for host-header allowlisting.
Does it require an API key or authentication?
No. The server runs locally via stdio with no API keys or authentication required.
How do I install and run it?
Add it to your MCP client config with command "npx" and args ["semiotic-mcp"]. It is distributed as the semiotic-mcp binary in the semiotic npm package and launched via npx.
Is there an HTTP transport?
Yes. Run `npx semiotic-mcp --http --port 3001` for inspectors, web clients, and ChatGPT Apps SDK experiments. Since 3.7.2 HTTP mode is stateless (a fresh read-only server per request) so it can autoscale on serverless hosts.