ChartQuery

com.chartqueryPublished by chartquery.comOfficial publisherv0.1.0Updated Nov 7, 2026

Generate chart images, diagrams, barcodes, QR codes and thermal labels on demand. PNG, SVG or PDF o…

VerifiedStreamable HTTPWeb executableDeveloper ToolsMedia & Design

Overview

AI-generated overview

ChartQuery MCP server that lets an assistant generate chart, diagram, barcode, QR code and thermal label images through the ChartQuery API.

What you can do
  • Render Chart.js charts, Mermaid/D2 diagrams, barcodes, styled QR codes and thermal label previews as PNG, SVG or PDF
  • Generate charts and diagrams from a plain-English description using AI-backed tools
  • Re-render or view previously saved charts, diagrams and labels by ID as images or embeddable HTML pages
  • Compile labels to printer commands and convert, parse or validate ZPL, EPL, TSC and similar languages
  • Check account credit balance and usage, and query engine health statistics
When to use it
Useful when an assistant needs to produce visual output — charts, diagrams, QR codes, barcodes or shipping/product labels — without local rendering libraries, or when working with thermal printer command languages.
Requirements
A ChartQuery API key, sent as the x-api-key header for the hosted endpoint or set in CHARTQUERY_API_KEY for the local package. The local npm package needs Node.js 20 or newer; the hosted endpoint at mcp.chartquery.com needs no install. OAuth is declared as required authentication.
Before you install
Every API call that hits the API consumes paid credits (3 to 10 per call depending on the tool), so usage costs money. The API key is a secret and should be passed via header or environment variable, not shared. Some render and view tools are public and need no key. The stats tool is not scoped to your account.

Installation

In SourceWeft

  1. Open ChartQuery in the dashboard and add it to a workspace.
  2. Connect the required credentials. They are stored privately and never shown on public pages.
  3. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/com.chartquery%2Fmcp/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config. The client completes OAuth sign-in on first connect.

{
  "mcpServers": {
    "chartquery": {
      "type": "http",
      "url": "https://mcp.chartquery.com/"
    }
  }
}

README

ChartQuery MCP Server

Official Model Context Protocol server for the ChartQuery chart and QR code API.

Generate chart images, diagrams, barcodes, QR codes and thermal labels on demand. PNG, SVG or PDF output.

It lets Claude, Cursor, VS Code, Windsurf and any MCP client call the API as tools. Runs over stdio (local) or Streamable HTTP (self-hosted).

Requirements

  • Node.js 20 or newer
  • a ChartQuery API key — sign up, then copy it from the dashboard

Hosted server (recommended)

ChartQuery runs this server for you at https://mcp.chartquery.com/ (Streamable HTTP). Send your API key in the x-api-key header; nothing to install.

sh
claude mcp add --transport http chartquery https://mcp.chartquery.com/ --header "x-api-key: YOUR_API_KEY"
json
{  "mcpServers": {    "chartquery": {      "url": "https://mcp.chartquery.com/",      "headers": {        "x-api-key": "YOUR_API_KEY"      }    }  }}

The hosted server and this package expose the same API; run the package locally when you want stdio, your own network egress, or to self-host it.

Run it locally

Claude Code

sh
claude mcp add chartquery --env CHARTQUERY_API_KEY=YOUR_API_KEY -- npx -y @chartquery/mcp

Claude Desktop, Cursor, Windsurf and other clients

Add the server to the client's MCP configuration (claude_desktop_config.json, .cursor/mcp.json…):

json
{  "mcpServers": {    "chartquery": {      "command": "npx",      "args": ["-y", "@chartquery/mcp"],      "env": {        "CHARTQUERY_API_KEY": "YOUR_API_KEY"      }    }  }}

VS Code

json
{  "servers": {    "chartquery": {      "type": "stdio",      "command": "npx",      "args": ["-y", "@chartquery/mcp"],      "env": {        "CHARTQUERY_API_KEY": "${input:chartquery-api-key}"      }    }  },  "inputs": [    {      "type": "promptString",      "id": "chartquery-api-key",      "description": "ChartQuery API key",      "password": true    }  ]}

Claude Desktop extension

Download the .mcpb bundle from the releases page and open it; Claude Desktop asks for your API key.

Docker

sh
docker build -t chartquery-mcp .docker run -i --rm -e CHARTQUERY_API_KEY=YOUR_API_KEY chartquery-mcp

Tools

ToolDescription
barcodeGenerate a barcode image via GET. Output: SVG (default) or PNG. Supports 25+ formats: EAN-13, Code 128, ITF-14, GS1-128, postal codes and more.
chartRender a Chart.js image via GET. Pass the full chart object as URL-encoded JSON in query. Prefer format png for ChatGPT. POST sends the same object as a JSON body, not query.
chart_aiDescribe a chart in plain English via GET and get a rendered image back. Powered by AI.
chart_renderRender a previously saved chart by ID. Public, no API key required. Supports URL overrides for templates (?data1=, ?labels=, ?title=…).
chart_viewView a previously saved chart as an interactive HTML page. Public, no API key required. Iframe-embeddable.
diagramRender a diagram via GET. Use type (mermaid, d2, …), query (source code), and format=png for ChatGPT. POST uses diagram_type and diagram_source instead.
diagram_aiDescribe a diagram in plain English via GET and get a rendered image back. Powered by AI.
diagram_renderRender a previously saved diagram by ID. Public, no API key required. Supports ?format= and ?query= overrides.
diagram_viewView a previously saved diagram as an HTML page. Public, no API key required. Iframe-embeddable with inline SVG rendering.
labelPreview a thermal label via GET. Pass the same label object as a URL-encoded JSON string in query. Inside that JSON, text items use content and size (1-10), not text or fontSize. Prefer format=png fo…
label_compileCompile a label to printer commands (tsc, zpl, epl, …). POST width, language, and elements. Text uses content and size (1-10), not text or fontSize. No barcode element. Example: {"width":40,"height":…
label_convertConvert printer commands from one language to another. POST source, from, and to. from is the source language (tsc, zpl, epl, …). to is the target (tsc, zpl, escpos, …).
label_parseParse printer commands into structured elements. POST source and language (tsc, zpl, epl, …).
label_renderRender a previously saved label by ID. Public, no API key required. Supports ?format= override.
label_validateValidate printer commands. POST source (the raw commands) and language (tsc, zpl, epl, …).
label_viewView a previously saved label as an HTML page. Public, no API key required. Iframe-embeddable with inline SVG rendering.
qrcodeGenerate a styled QR code via GET. Output: SVG (default) or PNG. Supports dot styles, gradients, custom corners and all QR versions.
statsInfrastructure health for an engine or endpoint over the last hour. Not scoped to your account or tenant. Enabled per account: HTTP 403 means contact support to activate it.
usageReturn this account's Chartquery usage and credit balance. No body. Requires an API key.

Every tool that calls the API consumes credits. JSON results are returned as text; images are returned inline and other files (PDF…) as embedded resources, up to 4 MB.

Streamable HTTP

sh
npx @chartquery/mcp --http --port 3000

The endpoint is POST /mcp (stateless, JSON responses). Each client sends its own key in the x-api-key header (or Authorization: Bearer <key>); the server never uses a key of its own. It binds to 127.0.0.1 by default and rejects browser origins unless you allow them — put it behind TLS before exposing it.

createHttpHandler() is exported for Fetch-compatible runtimes (Cloudflare Workers, Deno, Bun):

ts
import { createHttpHandler } from "@chartquery/mcp";
export default { fetch: createHttpHandler({ allowedOrigins: [] }) };

Security

  • The API key is read from CHARTQUERY_API_KEY (stdio) or the request headers (HTTP) and removed from error messages.
  • Content fetched from websites is untrusted: the server instructions tell the model to treat it as data, not instructions.
  • See SECURITY.md to report a vulnerability.

Development

sh
npm installnpm testnpm run buildnpx @modelcontextprotocol/inspector node dist/stdio.js

Built on the SDK

The server uses the official Node.js SDK (@chartquery/sdk).

All ChartQuery SDKs

SDKPackageInstall
Node.js@chartquery/sdknpm install @chartquery/sdk
Pythonchartquerypip install chartquery
Gochartquery-gogo get github.com/chartquery/chartquery-go
.NETChartQuerydotnet add package ChartQuery
Rubychartquerygem install chartquery
PHPchartquery/sdkcomposer require chartquery/sdk
Javachartquery-javabuild from source, see its README
CLI@chartquery/clinpm install -g @chartquery/cli
MCP server@chartquery/mcpnpx -y @chartquery/mcp

License

MIT — see LICENSE.

Source: README.md at commit ff22f49

Tools

19

barcode

Barcode

Barcode. Generate a barcode image via GET. Output: SVG (default) or PNG. Supports 25+ formats: EAN-13, Code 128, ITF-14, GS1-128, postal codes and more. Credit cost: 3 credits per call.

Parametersdatarequireddesctypeunitcolorsharetitlefieldsformatheightmarginbar_gap+14 more

chart

Chart

Chart. Render a Chart.js image via GET. Pass the full chart object as URL-encoded JSON in query. Prefer format png for ChatGPT. POST sends the same object as a JSON body, not query. Credit cost: 5 credits per call.

Parametersqueryrequiredsharefieldsversion

chart_ai

Chart AI

Chart AI. Describe a chart in plain English via GET and get a rendered image back. Powered by AI. Credit cost: 10 credits per call.

Parameterssharetitlewidthfieldsformatheightlegendpromptrequiredraw_datasubtitlebackgrounddevice_pixel_ratio

chart_render

Chart Render

Chart Render. Render a previously saved chart by ID. Public, no API key required. Supports URL overrides for templates (?data1=, ?labels=, ?title=…).

Parametersidrequireddata1titlewidthfieldsformatheightlabels

chart_view

Chart View

Chart View. View a previously saved chart as an interactive HTML page. Public, no API key required. Iframe-embeddable.

Parametersidrequiredsharefields

diagram

Diagram

Diagram. Render a diagram via GET. Use type (mermaid, d2, …), query (source code), and format=png for ChatGPT. POST uses diagram_type and diagram_source instead. Credit cost: 5 credits per call.

Parameterstyperequiredqueryrequiredsharefieldsformat

diagram_ai

Diagram AI

Diagram AI. Describe a diagram in plain English via GET and get a rendered image back. Powered by AI. Credit cost: 10 credits per call.

Parameterssharefieldspromptrequireddiagram_typeoutput_format

diagram_render

Diagram Render

Diagram Render. Render a previously saved diagram by ID. Public, no API key required. Supports ?format= and ?query= overrides.

Parametersidrequiredquerysharefieldsformat

diagram_view

Diagram View

Diagram View. View a previously saved diagram as an HTML page. Public, no API key required. Iframe-embeddable with inline SVG rendering.

Parametersidrequiredsharefields

label

Label Preview

Label Preview. Preview a thermal label via GET. Pass the same label object as a URL-encoded JSON string in query. Inside that JSON, text items use content and size (1-10), not text or fontSize. Prefer format=png for ChatGPT. Credit cost: 3 credits per call.

Parametersqueryrequiredsharefieldsformat

label_compile

Label Compile

Label Compile. Compile a label to printer commands (tsc, zpl, epl, …). POST width, language, and elements. Text uses content and size (1-10), not text or fontSize. No barcode element. Example: {"width":40,"height":30,"unit":"mm","language":"zpl","element… Credit cost: 3 credits per call.

Parametersdpigapunitspeedwidthrequiredcopiesfieldsheightdensityprinterelementsrequiredlanguagerequired+1 more

label_convert

Label Convert

Label Convert. Convert printer commands from one language to another. POST source, from, and to. from is the source language (tsc, zpl, epl, …). to is the target (tsc, zpl, escpos, …). Credit cost: 5 credits per call.

Parameterstorequireddpifromrequiredspeedcopiesfieldssourcerequireddensity

label_parse

Label Parse

Label Parse. Parse printer commands into structured elements. POST source and language (tsc, zpl, epl, …). Credit cost: 1 credit per call.

Parametersfieldssourcerequiredlanguagerequired

label_render

Label Render

Label Render. Render a previously saved label by ID. Public, no API key required. Supports ?format= override.

Parametersidrequiredfieldsformat

label_validate

Label Validate

Label Validate. Validate printer commands. POST source (the raw commands) and language (tsc, zpl, epl, …). Credit cost: 1 credit per call.

Parametersfieldssourcerequiredlanguagerequired

label_view

Label View

Label View. View a previously saved label as an HTML page. Public, no API key required. Iframe-embeddable with inline SVG rendering.

Parametersidrequiredfields

qrcode

QR Code

QR Code. Generate a styled QR code via GET. Output: SVG (default) or PNG. Supports dot styles, gradients, custom corners and all QR versions. Credit cost: 3 credits per call.

Parametersdatarequireddescmaskmodesizeunitcolorshapesharetitlefieldsformat+8 more

stats

Stats

Stats. Infrastructure health for an engine or endpoint over the last hour. Not scoped to your account or tenant. Enabled per account: HTTP 403 means contact support to activate it.

Parameterspathengine

usage

Usage

Usage. Return this account's Chartquery usage and credit balance. No body. Requires an API key.

Takes no parameters.

Version history

1
  1. v0.1.0LatestNov 7, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listed15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts