# Blueprint Chart [Health: Active]

**Category:** 📊 Data Visualization  
**Repository:** https://github.com/blueprint-chart/mcp  
**GitHub Stars:** 0  
**npm Downloads (last month):** 1119  
**Views:** 2  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/blueprint-chart

## Description
The open chart format an LLM writes and the browser renders — to interactive, accessible SVG.

## Tools
Capabilities this server exposes over MCP:

- **validate_dsl** — Parse 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_dsl** — Parse 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_type** — Start 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.
- **render** — Render 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_types** — Reference 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_type** — Return 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_example** — Return 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_examples** — Find 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_palettes** — List every named colour palette with its label and hex colours, for use in `colorPalette = "<name>"`.
- **get_grammar** — Return 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_chart** — Turn 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.

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "blueprint-chart": {
    "command": "npx",
    "args": ["-y","@blueprint-chart/mcp"]
  }
}
```

## Documentation

## What the Blueprint Chart MCP server does

The Blueprint Chart MCP server helps an AI client author and evaluate Blueprint Chart `.bpc` files, an open plain-text format rendered by a browser as interactive charts. Its tools cover the full path from choosing a visualization to checking syntax, reviewing structure, producing an output, and exporting a shareable result.

The server exposes eleven deterministic tools. Validation returns a validity flag, errors, warnings, error codes, messages, and suggestions. Inspection summarizes chart structure, including chart type, scenes, series and row counts, highlights, and colorization. Chart-selection tools rank suitable types from column shape and row count, while discovery tools expose chart-type documentation, grammar, palettes, and canonical samples.

## How it works

An MCP client sends `.bpc` source or chart-discovery requests to the server. `validate_dsl` parses the source and reports structured diagnostics. `inspect_dsl` provides a compact description of the parsed chart. `render` produces SVG by default and can return PNG or HTML; PNG responses include an inline image and all render requests include structured frame metadata.

`get_example` retrieves a canonical sample by chart type or sample name. `search_examples` returns pointers that can be followed with `get_example`, and `get_grammar` supplies the complete DSL syntax reference. These discovery tools provide access to the same reference material exposed through the server's `bpc://` resources for clients that do not support MCP resources.

With `MCP_PUBLIC_URL`, render and export responses can include stateless PNG, SVG, and BPC URLs, with chart data carried in the URL. `export_chart` also returns an editable copy URL and a read-only iframe URL when the editor URL is configured. Preview failures do not prevent export.

## Setup and configuration

Run the package with `npx @blueprint-chart/mcp` for stdio, or add `--http` to serve HTTP/SSE on `127.0.0.1:4321`. The repository documents configurations for Claude Desktop, Claude Code, and Cursor-compatible stdio use. Claude Code can receive `BLUEPRINT_CHART_EDITOR_URL` and `BLUEPRINT_CHART_DOCS_URL` as environment variables.

`BLUEPRINT_CHART_EDITOR_URL` is required by `export_chart` to create editor-based links. `MCP_PUBLIC_URL` enables public stateless URLs in render and export responses. File output is disabled unless `MCP_FS_WRITE_DIR` names a writable sandbox directory. When enabled, `render` can save output beneath that directory and creates missing subdirectories. Avoid symlinks in the sandbox if filesystem isolation matters.

## Tools and capabilities

- Validate `.bpc` syntax with actionable diagnostics.
- Inspect chart structure and parsed properties.
- Recommend chart types from data shape and row count.
- Render SVG, PNG, or HTML, with optional inline previews.
- Export charts with editor, iframe, and optional stateless URLs.
- Browse chart types, grammar, palettes, guides, and examples.
- Search canonical examples by topic or chart type.

The Blueprint Chart MCP server also exposes resources for grammar, handbook topics, usage guides, chart-type documentation, samples, and DSL or API references. A documented `author_chart` prompt primes an end-to-end read, write, validate, render, and iteration workflow.

## Limitations and notes

Rendering dimensions are capped at 1600, and PNG output is rendered at 2× retina resolution. Inline images or previews can be suppressed with `modelVisible: false`. Shareable URLs are only included when `MCP_PUBLIC_URL` is set. Editor-based export links require `BLUEPRINT_CHART_EDITOR_URL`.

The server is self-contained and does not require an account or backend according to the project documentation. Disk writes require explicit configuration and are restricted by the sandbox's path handling, although symlinks can bypass lexical containment at operating-system resolution.

_Full upstream README: https://allmcps.com/mcp/blueprint-chart/readme_

