mcpField
X
x402-dataviz-mcp

x402-dataviz-mcp

Local
github.com/liminalpepeData & Analytics0Updated 13w ago

About x402-dataviz-mcp

x402-dataviz-mcp is an MCP server that turns structured data into bar, line, and area charts as SVG. It is for agents and applications that need chart output, with light and dark themes and no API key required.

Key features

  1. 01Render bar, line, and area charts
  2. 02Return charts as SVG
  3. 03Support light and dark themes
  4. 04Display multiple data series

Use cases

  1. 01Generate an SVG chart from structured data
  2. 02Create themed charts for reports
  3. 03Visualize multiple named data series

MCP support

Provides the `render_chart` tool to MCP clients. It accepts chart type, structured data, and an optional theme, then returns an SVG string.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"liminalpepe-x402-dataviz": {
"command": "npx",
"args": [
"-y",
"x402-dataviz-mcp"
]
}
}
}
Run commandnpx -y x402-dataviz-mcp

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npmx402-dataviz-mcp0.1.0

Tools

1

Saved tool list · updated 2w ago

ParameterTypeRequiredDescription
dataarrayYesNon-empty array of data points
typeenumYesChart type: bar, line, or areabar | line | area
themeenumNoOptional theme, defaults to "light"light | dark
titlestringNoOptional chart title

Details

From the project README

x402-dataviz-mcp

A free MCP (Model Context Protocol) server that renders bar, line, and area charts from structured data and returns clean, hand-designed SVG. No API key, no payment, no rate limit games — just an MCP tool any MCP client can call.

This is the open funnel twin of a paid, x402-gated HTTP API:

x402-dataviz-poc.theliminalguy.workers.dev — POST /chart, $0.01 USDC on Base per call via the x402 payment protocol, for production/high-volume or non-MCP (plain HTTP) use. Same renderer, same output, just billed per call instead of free-via-MCP.

Why this exists

The x402 Bazaar (~14,800 agent-payable APIs at time of writing) has zero coverage in "structured data → clean chart image." This MCP server is the free/local half of filling that gap — try it for nothing via MCP; reach for the paid HTTP endpoint when you need it at volume or outside an MCP client.

What it does

One tool, render_chart, takes a chart type + structured data points and returns a rendered SVG string. Rendering is hand-rolled (no headless browser, no native binaries, no heavy charting framework) — just string-built SVG, so it's fast with zero runtime dependency risk.

The design bar is the actual differentiator: a real categorical color palette (validated for colorblind-safety, not eyeballed), considered spacing, thin marks with rounded bar ends, 2px surface gaps between bars, ringed line markers, direct end-labels, and full light/dark theme support — not the default-blue/red/green look of a generic charting library.

Install & run

npx x402-dataviz-mcp

Or add it to an MCP client config (e.g. Claude Desktop's claude_desktop_config.json):

{
  "mcpServers": {
    "dataviz": {
      "command": "npx",
      "args": ["-y", "x402-dataviz-mcp"]
    }
  }
}

Tool: render_chart

Input:

{
  "type": "bar" | "line" | "area",
  "title": "optional string",
  "theme": "light" | "dark",       // defaults to "light"
  "data": [
    { "x": "Q1", "values": { "Revenue": 128000, "Cost": 84000 } },
    { "x": "Q2", "values": { "Revenue": 146500, "Cost": 91200 } }
  ]
}

values can hold one or more named series; series colors are assigned from a fixed, colorblind-validated order (never generated/cycled). A legend renders automatically for 2+ series; a single series needs no legend (the title already names it).

Output: an SVG string (as MCP tool text content) rendering the requested chart.

Local development

npm install
npm run dev      # runs src/index.ts directly on stdio via tsx
npm run build    # compiles to dist/ for the published npm package

When to use the paid HTTP twin instead

Use POST /chart on the paid Worker instead of this MCP server when:

  • You're calling from outside an MCP client (plain HTTP, any language).
  • You need production/high-volume use and want to pay per call rather than rely on a free tool being available indefinitely.
  • Your agent already speaks x402 (e.g. via x402-fetch / x402-axios) and can pay $0.01 USDC on Base per request.

Both routes call the exact same renderChart() function — output is byte-for-byte identical.

License

MIT

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.