Skip to main content
Glama

ChartPNG

Chart.js configs in, PNG images out, by URL. Put charts where JavaScript can't run: emails, PDFs, Slack, Notion, Markdown and AI agent replies.

https://chartpng.dev/chart?c={"type":"bar","data":{"labels":["Mon","Tue","Wed"],"datasets":[{"label":"Signups","data":[12,19,7]}]}}

This repository holds the open parts of ChartPNG: the JavaScript client, the MCP server and the n8n workflow templates. The rendering API runs at chartpng.dev and is not in this repository. Free images carry a small watermark; Pro removes it (pricing).

Packages

Package

Folder

What it does

@chartpng/client

packages/chartpng

Builds signed chart URLs and fetches PNGs. No dependencies.

@chartpng/mcp

packages/chartpng-mcp

MCP server: AI agents draw charts with chart_url and render_chart.

npm install @chartpng/client
claude mcp add chartpng -- npx -y @chartpng/mcp

Each package's README has the options and the setup for other MCP clients.

Related MCP server: QuickChart MCP Server

n8n templates

Import any of these in n8n with Import from URL, using the link in the second column.

Template

Import URL

Daily chart in an email

https://chartpng.dev/templates/n8n/daily-chart-in-email.json

Google Sheets chart to Telegram

https://chartpng.dev/templates/n8n/google-sheets-chart-to-telegram.json

Postgres query to a chart in an email

https://chartpng.dev/templates/n8n/postgres-chart-to-email.json

Google Sheets rows to a chart URL

https://chartpng.dev/templates/n8n/sheets-rows-to-chart-url.json

Weekly Stripe revenue to Slack

https://chartpng.dev/templates/n8n/stripe-weekly-mrr-to-slack.json

Weekly chart to Slack

https://chartpng.dev/templates/n8n/weekly-chart-to-slack.json

Weekly KPI report to Slack

https://chartpng.dev/templates/n8n/weekly-kpi-report-to-slack.json

Guides for each one: https://chartpng.dev/guides/n8n

Docs

Questions and bugs: open an issue here or write to hola@chartpng.dev.

License

MIT

Available Tools

2 tools
chart_urlChart image URLA

Get a public PNG URL for a chart. Use it when the chart goes into an email, a Slack or chat message, a PDF or a Markdown document (as title). The data travels in the URL: anyone with the URL can see the chart and its data, so for confidential data use render_chart.

Inputs: config (required), width, height, background.

render_chartRender chart imageA

Render a chart and return the PNG image itself, to look at it or save it as a file. Takes configs up to 16 KB of JSON, larger than a URL allows.

Inputs: config (required), width, height, background.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4.2/5.0

    Scored across 2 tools

    Disambiguation5/5

    The two tools are clearly distinguished by output mode: chart_url returns a public link (with an explicit confidentiality caveat), while render_chart returns the PNG bytes for private/large configs. Descriptions make the selection criterion explicit, leaving little room for misselection.

    Naming Consistency3/5

    Names follow different patterns: chart_url is noun_noun while render_chart is verb_noun, so the pair does not read as a predictable family. Both are still readable and domain-relevant, but there is no consistent convention.

    Tool Count4/5

    Two tools is thin but justified for a narrowly scoped chart-image server, since each tool covers a genuinely distinct delivery mode (public URL vs inline image). It is slightly under typical range but no tool feels redundant.

    Completeness4/5

    The surface covers both realistic chart delivery paths (link for sharing, image for viewing/saving) and notes the size limit for URLs. Minor gaps like explicit format or size options exist, but agents can work around them.

    Maintenance

    ActivityMaintained
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers