Blueprint Chart vs Semiotic

A side-by-side look at the Blueprint Chart and Semiotic MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.

Blueprint Chart logoBlueprint ChartData Visualization · Local subprocess (stdio)The open chart format an LLM writes and the browser renders — to interactive, accessible SVG.59GoodAuth: not declaredSemiotic logoSemioticData Visualization · Local subprocess (stdio)React data visualization MCP server with 30+ chart types. 5 tools: suggest charts for a dataset, render validated React configs to SVG, diagnose configuration anti-patterns, get component schemas, and report issues.71GreatAuth: no auth required

Verdict: choose Blueprint Chart for data visualization work as a local process; choose Semiotic for data visualization as a local process. You can also run both side by side in one mcpServers block.

Which MCP server should you choose?

Blueprint Chart logoChoose Blueprint Chart when

  • You need dedicated capabilities in the Data Visualization domain.
  • You prefer a local stdio subprocess transport.
  • You want tools like validate_dsl, inspect_dsl, recommend_chart_type.
Explore Blueprint Chart

Semiotic logoChoose Semiotic when

  • You need dedicated capabilities in the Data Visualization domain.
  • You prefer a local stdio subprocess transport.
  • Its auth model fits you: No auth required.
  • You want tools like renderChart, renderInteractiveChart, getSchema.
Explore Semiotic

Feature & specification comparison

Rows where the two servers differ are marked.

SpecBlueprint Chart logoBlueprint ChartSemiotic logoSemiotic
CategoryData VisualizationData Visualization
Quality signal59/100 · Good71/100 · Great
Install commandConfirmedConfirmed
TransportLocal subprocess (stdio)Local subprocess (stdio)
AuthNot declaredNo auth required
PricingNot declaredFree
Required env varsNone listedNone listed
Verified ownerCommunity listingCommunity listing
GitHub stars02,716
Directory activity 1 views 0 installs 0 upvotes 6 views 0 installs 0 upvotes
Tools1118

Tools & capabilities

Blueprint Chart tools 11

  • validate_dslParse and semantically validate a .bpc source. Returns { valid, errors[], warnings[] }. Errors include unknown chart types, unknown properties, and empty data blocks with nearest-neighbour suggestions.
  • inspect_dslParse a .bpc source and return a structured summary: chartType, scenes, data (rowCount, entryCount, labels, seriesNames, multiSeries), annotation/colorize/highlight/area-fill presence flags, series count.
  • recommend_chart_typeStart here before writing any .bpc. Takes column types, row count, and the user's goal (a prose sentence — it determines the chart family: comparison/ranking/part-to-whole/composition-over-time/trend/range). Returns ranked chart-type recommendations plus guidance.
  • renderRender a .bpc source to SVG (default), PNG, or HTML. With format:"png" the chart comes back as an inline IMAGE you and the user can both see — render, look at the result, fix issues, re-render. Always returns structured frame metadata. When MCP_PUBLIC_URL is set the response includes stateless `urls` ({png,svg,bpc}). Set modelVisible:false to drop the inline image from the response entirely, spending no image tokens (reach the image via `urls.png` or `save`). Pass `save:<path>` to write the output into MCP_FS_WRITE_DIR instead of returning it inline. Width/height are capped at 1600; PNGs are rasterized at 2× for retina sharpness.
  • list_chart_typesReference list of every chart type the renderer supports, with aliases and one-line summaries. To choose a type for a dataset, call recommend_chart_type instead.
  • describe_chart_typeReturn everything an LLM needs to write a .bpc for a given chart type — typically your second call, after recommend_chart_type. Input: { chartType: "bar-horizontal" } (or any canonical/alias name). Returns summary, when-to-use, when-NOT-to-use, full property list with enum choices, data-shape example, and a pointer to a canonical sample.
  • get_exampleReturn a canonical .bpc example. Pass { name } for a specific sample id, { chartType } for the first sample of that type, or no args for a starter sample.
  • search_examplesFind canonical .bpc examples by topic keywords and/or chart type. Returns ranked pointers { id, title, description, chartType } — call get_example with an id to fetch the full DSL.
  • list_palettesList every named colour palette with its label and hex colours, for use in `colorPalette = "<name>"`.
  • get_grammarReturn the .bpc DSL grammar as markdown. Pass { section: "chart" | "data" | "properties" | "scenes" | "annotations" } for a focused subset, or no args for the full grammar.
  • export_chartTurn a validated .bpc source into shareable URLs plus an inline visual preview of what was published. Returns { copyUrl, embedUrl, urls?, frame } and a PNG preview image block so you can confirm the chart looks right before sharing. copyUrl opens an editable copy in the editor; embedUrl is a read-only iframe target; urls.{png,svg,bpc} (when MCP_PUBLIC_URL is set) are stateless rendered-image/source links. Set modelVisible:false to drop the inline preview from the response entirely, spending no image tokens. Requires BLUEPRINT_CHART_EDITOR_URL; preview failures never block the export.

Semiotic tools 18

  • renderChartRender a Semiotic chart to static SVG. Supports the components returned by `getSchema` that are marked `[renderable]`. Pass `{ component: "LineChart", props: { data: [...], xAccessor: "x", yAccessor: "y" } }`. Returns SVG string plus a "Render evidence" JSON block (mark counts by scene type, resolv…
  • 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. Pass `{ component: "LineChart" }` to get its props, or omit `component` to list the complete schema-backed catalog. Components marked `[renderable]` are available through `renderChart`; realtime charts require a browser/live environment.
  • suggestChartSample-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 streaming charts from a schema (shape, key, throughput). Returns `{ suggestions, excluded, stretchSuggestions }`.
  • suggestStreamDashboardCompose a multi-panel dashboard from stream schemas and an audience layout policy.
  • suggestDashboardBuild a multi-panel dashboard suggestion that covers distinct analytical intents.
  • suggestStretchChartsRecommend audience-literacy stretch picks from an `AudienceProfile`.
  • repairChartConfigCheck whether a requested chart fits a dataset and return ranked alternatives when it does not.
  • interrogateChartReturn a statistical summary and chart-aware context for answering natural-language questions with optional annotations.
  • diagnoseConfigCheck a chart configuration for common problems — empty data, bad dimensions, missing accessors, wrong data shape, and more. Returns a human-readable diagnostic report with actionable fixes.
  • +6 more on the listing page

Ready-to-paste client configs

Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.

Blueprint Chart

mcpServers (Claude Desktop / Cursor)
{
  "mcpServers": {
    "blueprint-chart": {
      "command": "npx",
      "args": [
        "-y",
        "@blueprint-chart/mcp"
      ]
    }
  }
}

Semiotic

mcpServers (Claude Desktop / Cursor)
{
  "mcpServers": {
    "nteract-semiotic": {
      "command": "npx",
      "args": [
        "-y",
        "-p",
        "semiotic",
        "semiotic-mcp"
      ]
    }
  }
}

Frequently asked questions

Blueprint Chart is categorized under Data Visualization and uses a local stdio subprocess. Semiotic belongs to Data Visualization and uses a local stdio subprocess. Pick Blueprint Chart for data visualization work and Semiotic for data visualization.

Copy the mcpServers block from the config section on this page into your client's config (for example claude_desktop_config.json or ~/.cursor/mcp.json), then fully restart the client.

Blueprint Chart has no declared pricing — check the project's own site. Semiotic is listed as free. Auth: no auth required. If a server needs environment variables such as API keys, define them under the env key in your client's MCP config.

Yes. MCP clients support multiple servers: add blueprint-chart and nteract-semiotic as separate keys in the same mcpServers object, and your assistant will call tools from either one.

On AllMCPs, Blueprint Chart has a quality signal of 59/100 (Good) with 1 views, 0 installs and 0 GitHub stars. Semiotic has 71/100 (Great) with 6 views, 0 installs and 2,716 GitHub stars.