原型 · 预览版:收录官方注册中心里的全部服务器,每 30 分钟同步一次。评价和账户功能将在后续阶段推出。
PopNx MCP为使用 AI 的人准备的 MCP 服务器 · 用大白话讲清楚

Blueprint Chart

作者:blueprint-chart版本 0.2.1i★ –i在你的电脑上运行
注册名称io.github.blueprint-chart/mcp

安装

概览

作者提供的说明(英文原文)

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

PopNx MCP 的三大支柱

这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。

它能帮你做什么

我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。

  • 连接方式: 在你的电脑上运行
  • 传输方式: stdio
  • 分类: 网页与浏览器

安装

选择你使用的 AI 应用,然后复制设置。

安装之前

  • 基础检查:1 项中通过 1 项
  • 在你的电脑上运行,拥有你的用户账户的权限(文件、网络、应用)。
  • 注册中心没有列出需要填写的密钥。

你需要

  • npm已安装 Node.js(用于 npx 命令)

你用的是哪个应用?

在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。

打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json

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

在终端中运行这条命令

claude mcp add blueprint-chart -- npx -y @blueprint-chart/mcp

在 Cursor 中打开

或者自己复制设置

粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json

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

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

在 VS Code 中打开

或者自己复制设置

粘贴到项目中的 .vscode/mcp.json

{
  "servers": {
    "blueprint-chart": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@blueprint-chart/mcp"
      ]
    }
  }
}

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。

你的选择通过 Cookie 保存在这台设备上,无需账户。

这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。

它能做什么

它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。

基础检查i

我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月7日

  • ✓ 通过

    作者与仓库一致

    注册名称已通过 GitHub 账户 blueprint-chart 验证,该账户拥有此仓库

  • … 尚未检查

    仍在维护

    我们还没有从 GitHub 读取这个仓库

  • … 尚未检查

    有许可证

    我们还没有从 GitHub 读取这个仓库

  • – 不适用

    端点有响应

    它在你的电脑上运行,没有互联网端点

  • – 不适用

    使用 OAuth 登录

    在你的电脑上运行,改用本地设置

  • … 尚未检查

    工具描述中没有隐藏指令

    它在你的电脑上运行;我们只能读取互联网端点的工具列表

与“网页与浏览器”中的其他服务器比较i

  • 星标数多于此分类中其他 879 个服务器的 0%
  • 发布到注册中心的时间比此分类中其他 879 个服务器的 33% 更新
  • 基础检查结果等于或优于此分类中其他 879 个服务器的 100%

与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。

常见问题

Blueprint Chart 安全吗?

它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。

它需要哪些密钥或代码?

注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。

它在我的电脑上运行还是在云端?

它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。

它还在维护吗?

GitHub 仓库最后更新于–,最新版本(0.2.1)于2个月前进入注册中心。

哪些应用可以使用它?

支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Node.js。

有什么可以替代它?

同一分类中有:Browser Use, Chrome DevTools MCP, MCP Server Browser

替代选择

同一分类中其他作者的服务器,按星标数排序。

如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i

Browser Use

作者:browser-use

Browser agents and stealth cloud browsers for AI: run web tasks, fill forms, extract data.

电脑或云端★ 120,087MIT17天前更新
安装

Chrome DevTools MCP

作者:ChromeDevTools

MCP server for Chrome DevTools

在你的电脑上运行★ 54,821Apache-2.015天前更新
安装

MCP Server Browser

作者:bytedance

MCP server for browser use access

在你的电脑上运行★ 39,550Apache-2.014个月前更新
安装

作者的 README

打开 README

按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。

Model Context Protocol server for authoring Blueprint Chart .bpc files with LLMs, grounded in real dataviz pedagogy with a tight parse + render feedback loop. An open, plain-text chart format an AI can write and any browser can render. Self-contained, no backend, no account required.

Status
CI checks
Latest version
Release date
Open issues
Websites
Smithery

The MCP exposes Blueprint Chart's dataviz handbook, DSL grammar reference, chart-type docs, and canonical samples as MCP resources, plus eleven deterministic tools: validate_dsl, inspect_dsl, recommend_chart_type, render, list_chart_types, describe_chart_type, get_example, get_grammar, export_chart, search_examples, and list_palettes. Your LLM writes the .bpc; the MCP grounds it in real dataviz pedagogy and gives it a tight feedback loop.

Install

npx @blueprint-chart/mcp           # stdio (for Claude Desktop, Claude Code, Cursor)

npx @blueprint-chart/mcp --http # HTTP/SSE on 127.0.0.1:4321

Use with Claude Desktop

Add to claude_desktop_config.json:

{

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

Use with Claude Code

claude mcp add blueprint-chart \

-e BLUEPRINT_CHART_EDITOR_URL=https://blueprintchart.com \ -e BLUEPRINT_CHART_DOCS_URL=https://docs.blueprintchart.com \ -- npx -y @blueprint-chart/mcp

Tools

ToolPurpose
validate_dslParse .bpc; returns { valid, errors[], warnings[] } — each error has code, message, suggestion
inspect_dslParse and summarize: chartType, scenes, seriesCount, rowCount, hasHighlights, hasColorizes, etc.
recommend_chart_typeRank chart types for a given column shape and row count
renderRender to SVG (default), PNG, or HTML; with format:"png" returns an inline image both you and the user can see. Always returns structured frame metadata. When MCP_PUBLIC_URL is set, includes urls ({png,svg,bpc}) — stateless links where the chart data travels inside the URL. Set modelVisible:false to drop the inline image from the response entirely, spending no image tokens. Pass save: to write the output to disk (requires MCP_FS_WRITE_DIR; writes are confined to that directory). Width/height capped at 1600; PNG is 2× retina.
list_chart_typesList all renderable chart types (tool equivalent of bpc://handbook/choosing)
describe_chart_typeProperties, when-to-use, when-NOT-to-use, and data-shape for one chart type (tool equivalent of bpc://chart-types/{slug})
get_exampleFetch a canonical .bpc sample by chart type or sample name (tool equivalent of bpc://samples/{id})
search_examplesFind canonical examples by topic keywords and/or chart type (returns pointers; fetch full DSL with get_example)
get_grammarFull DSL syntax reference (tool equivalent of bpc://grammar)
list_palettesList named colour palettes with hex colours for colorPalette
export_chartValidate a .bpc and return shareable URLs plus an inline preview. Returns { copyUrl, embedUrl, urls?, frame } — copyUrl is editable in the editor, embedUrl is a read-only iframe target, urls.{png,svg,bpc} are stateless rendered/source links (when MCP_PUBLIC_URL is set). 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.

The discovery tools (list_chart_types, describe_chart_type, get_example, search_examples, get_grammar, list_palettes) let clients without MCP resource support access the same reference material that the bpc:// URIs expose.

Saving rendered output

The render tool can write its output to disk via save: . This is disabled by default. Set MCP_FS_WRITE_DIR to a directory to enable it — ideally an absolute path; a relative value is resolved from the server's working directory at startup. Every write lands inside that directory (a sandbox), so you never have to worry about where a client puts files: relative save paths are joined to it, an absolute path already inside it is used as-is, and any other absolute path is re-anchored under it (the leading slash is stripped and the rest joined on, so save: "/tmp/foo.png" becomes /tmp/foo.png). Only paths that still escape via ../ traversal are rejected. Missing subdirectories are created automatically. Containment is checked lexically (no realpath), so a symlink whose lexical path is inside the sandbox still passes the check and is then resolved by the OS at write time — if its target is outside the sandbox, the write reaches it. Avoid placing symlinks in the sandbox if isolation matters to you.

Add the -e flag to your claude mcp add command:

claude mcp add blueprint-chart \

-e MCP_FS_WRITE_DIR=/path/to/output \ -- npx -y @blueprint-chart/mcp

Resources

  • bpc://grammar — full DSL syntax reference
  • bpc://handbook/ — dataviz pedagogy (choosing, design-principles, color, typography, annotations, accessibility, ...)
  • bpc://guide/ — usage guides (scenes, palettes, data-transforms, ...)
  • bpc://chart-types/ — per-chart-type docs
  • bpc://samples/ — canonical .bpc examples
  • bpc://reference/dsl/ , bpc://reference/api/ — full reference

Prompts

  • author_chart — primes the LLM end-to-end (read → write → validate → render → iterate)

Examples

Quickstart with Claude

Once the MCP is connected, ask Claude to make a chart:

You: Make a horizontal bar chart of English letter frequencies — top 10, highlight E.

Claude: *(calls list_chart_types, get_example({ chartType: "bar-horizontal" }), writes the .bpc, calls validate_dsl to confirm it parses, calls render with format: 'png' and shows you the image and the source)*

Here's the chart:

![image]

`

chart bar-horizontal {

title = "E is the most frequent letter in English"

sort = descending

valueLabels = true

highlight "E"

data { "E" = 12.70; "T" = 9.06; "A" = 8.17; ... }

}

`

The MCP grounds Claude in real dataviz pedagogy (the handbook) before it writes a single line of DSL, then closes the loop with deterministic parse + render feedback.

What .bpc looks like
chart bar-vertical {

title = "E is the most frequent letter in English" description = "How often each letter appears in typical English text" source = "Lewand, Cryptological Mathematics" colorPalette = "London" sort = descending valueLabels = true highlight "E"

data { "E" = 12.70 "T" = 9.06 "A" = 8.17 "O" = 7.51 ... } }

Full grammar at bpc://grammar; 17 canonical samples at bpc://samples/ (letter-frequency, co2-emissions, quarterly-revenue, browser-market, temperature-anomaly, population-stacked-bar, ...).

validate_dsl — parse with structured diagnostics

Request:

{

"name": "validate_dsl", "arguments": { "source": "chart bar-vertical {\n title = \"oops\n}" } }

Response — valid is false; each entry in errors[] carries a code, human-readable message, and an actionable suggestion:

{

"valid": false, "errors": [ { "code": "E_PARSE", "message": "Expected \"\\\"\" but end of input found.", "suggestion": "Close the string literal on line 2." } ], "warnings": [] }

inspect_dsl — structured summary

Request:

{ "name": "inspect_dsl", "arguments": { "source": "<.bpc source>" } }

Response:

{

"ok": true, "data": { "chartType": "bar-vertical", "scenes": [{ "index": 1, "hasTransition": false }], "hasAnnotations": false, "hasColorizes": false, "hasHighlights": true, "hasAreaFills": false, "seriesCount": 0, "rowCount": 26 } }

recommend_chart_type — ranked suggestions

Request:

{

"name": "recommend_chart_type", "arguments": { "columnTypes": ["date", "number", "number", "number"], "rowCount": 24 } }

Response:

{

"ok": true, "data": { "recommendations": [ { "chartType": "line-multi", "label": "Multi-Line Chart", "fitness": "best", "reason": "1 date + 3 numeric columns — compare trends" }, { "chartType": "bar-multi", "label": "Grouped Bar Chart", "fitness": "alternative", "reason": "Can also show as grouped bars" } ] } }

render — SVG (default), PNG, or HTML

Request:

{

"name": "render", "arguments": { "source": "<.bpc source>", "format": "png", "width": 800, "height": 500 } }

Response:

{

"ok": true, "data": { "svg": " ... ", "png": " ", "mimeType": "image/png", "urls": { "png": "https://mcp.blueprintchart.com/render.png?bpc64=…", "svg": "https://mcp.blueprintchart.com/render.svg?bpc64=…", "bpc": "https://mcp.blueprintchart.com/render.bpc?bpc64=…" } } }

The urls field is only present when MCP_PUBLIC_URL is configured; every render and export_chart response then includes these stateless links, with the chart data travelling inside the URL (as bpc64, a URL-safe base64 encoding of the .bpc source) — no session, no server state required. Set modelVisible:false in the request to drop the inline image from the response entirely, spending no image tokens.

If rasterization fails (rare), errors[] is non-empty — each entry has a code ("E_RENDER") and a suggestion — and the response still includes the SVG that was successfully produced, so partial success is preserved.

Hosted render URLs

Embed a chart directly in a page:

<img src="https://<your-mcp-host>/render.png?bpc64=<bpc64value>&width=800&height=500" alt="My chart" width="800" height="500">

/render.bpc serves the raw .bpc source — it's "view source" for any chart URL, handy for sharing or reproducing a chart from its link alone.

Sources whose encoding exceeds 8 KB return 413 from the endpoints (and the tool omits urls, returning urlsOmitted: "source-too-large" instead) — use the inline PNG for very large charts.

Reading a resource
{ "uri": "bpc://handbook/choosing" }

Returns the full Markdown of the "Choosing the Right Chart" handbook page (same content as docs.blueprintchart.com).

{ "uri": "bpc://samples/letter-f

只显示了开头部分;其余内容请在仓库中阅读

问 PopNx