MCP Directory

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

  1. 1Open Windsurf → Cascade → the hammer/MCP icon → Configure (or edit ~/.codeium/windsurf/mcp_config.json).
  2. 2Paste the Semiotic MCP Server config below.
  3. 3Fill in placeholder secrets, then save.
  4. 4Click Refresh in the MCP panel.
  5. 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

renderChart

Render 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.

renderInteractiveChart

Render 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.

getSchema

Return 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.

suggestChart

Legacy sample-row recommender. Pass { data: [{...}, ...] } with 1-5 sample objects plus optional broad intent/capability filters.

suggestCharts

Capability-based recommender for bounded row data. Returns ranked chart suggestions with scores, reasons, caveats, import paths, and ready-to-use props.

suggestStreamCharts

Recommend realtime charts from a stream schema, throughput, and retention hints.

suggestDashboard

Build a multi-panel dashboard suggestion that covers distinct analytical intents.

suggestStretchCharts

Recommend 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.

View repo Full Semiotic MCP Server page