Docs · MCP for agents

Charts, spoken over MCP

An AI graph maker in the literal sense: connect an assistant — Claude, ChatGPT, Cursor, Codex, or anything that speaks the Model Context Protocol — to this project and it gains five shared tools. The local server adds render_card, for six tools in total. Describe the data; get back a validated spec, an embed snippet, or a finished image.


Two ways to connect

One link, no install

AI connector Live

One address, any MCP client — nothing to download, nothing to configure:

https://meikucharts.com/mcp
  1. Add a remote MCP server in your AI client — Claude and ChatGPT: Settings → Connectors; Cursor, VS Code, Windsurf, Codex: their MCP settings
  2. Paste the URL
  3. Sign in with Google, then ask for a chart. Free includes 10 visualizations/month, shared by charts and tables.

Sign in to the AI connector with the same Google account linked to your Pro key for Pro limits. Free SVG images carry a meikucharts.com mark. Over the AI connector, render_chart answers with SVG — PNG still comes from the local MCP below.

Local MCP · Pro

Run it locally

Pro includes local MCP access. Activate your Pro key in your account, then download meiku-charts-mcp.zip. Install Node.js 20 or later and follow the local MCP configuration steps. Compare the plans.

The local MCP runs on your machine over stdio. PNG images and cards use your installed Chrome or Edge; it does not download a separate browser. For another Chromium-based browser, set MEIKU_BROWSER_PATH to its executable. SVG works without a browser.

Put your Pro key in MEIKU_LICENSE_KEY in the MCP client’s settings, then restart the client. The server reads the key at start; restart the client after changing it. The license check runs on the first use after each start, then once a day. After a successful check, it works offline for up to 7 days.

Pro covers up to 3 computers (Team: 20). To free places, remove MEIKU_LICENSE_KEY from computers you no longer use, then choose “Release all computers…” in your account.

After you renew a lapsed subscription, the local MCP picks it up within an hour; restarting does not speed this up. If you buy again and receive a new Pro key, enter it in your account first to move your websites and site key, then update MEIKU_LICENSE_KEY and restart the client. If you rotate the key in Polar, update it on every computer and restart each client. Until then, the tools may say the key “wasn’t accepted” or the subscription “isn’t active”. See local MCP messages and help for the exact responses.


The five shared tools

prepare_visualization

Start with your data and what you want to show. Your assistant gets a complete table or chart, a paste-ready embed and an explanation of the useful features it selected. Long tables get search and sticky headings. Explicit settings and supplied caveats stay intact.

prepare_visualization({
  "data": {
    "columns": ["Product", "Monthly cost", "Support"],
    "rows": [["A", 20, "yes"], ["B", 40, "partial"]]
  },
  "title": "Plan comparison"
})

A ready result can be shown immediately. Optional questions, such as adding a source, do not block it. A needs_input result identifies a required correction and contains no embed. Ambiguous numbers stay as text; missing observations never become invented zeros. For rich note cells or an existing visualization, pass the complete spec instead of data.

For numeric data, set intent to compare, trend, share or point. Use share only for parts of one total. Current visual labels can round or abbreviate numbers; the response warns when exact source values need accompanying text. Paste structured data rather than raw CSV so empty cells and decimal separators stay unambiguous.

create_chart

Spec in, embed snippet out. The spec is validated by the engine's own parser first, so what the agent gets is a validated spec — and a bad spec returns the structured {path, message, hint} errors, which agents are notably good at fixing on the second try.

create_chart({
  "type": "column",
  "theme": "editorial",
  "data": {
    "labels": ["Q1", "Q2", "Q3", "Q4"],
    "series": [{ "name": "Revenue", "values": [48, 52, 47, 61] }]
  }
})
// -> a validated, paste-ready <live-chart> embed snippet

For a table warning with its own explanation, keep the column as text and pass { "text": "Limited claim", "kind": "warn", "note": "Full explanation" } as the cell. The ! button opens the full plain-text note (up to 4000 Unicode characters). noteText and detail are not supported. Check that the returned normalized spec contains your note before pasting the embed. You can paste the complete table spec into the table maker and download JSON to preserve the typed cells and layout.

suggest_chart

Raw rows in, a recommendation out: the tool looks at the shape of the data — how many series, how many points, whole numbers or not — and answers with a chart type, the reason, and a ready-made spec you can pass straight to the other tools.

list_themes

The ten looks — five themes, each in light and dark — with enough description for an agent to pick one that fits the page it is writing into. Kept in sync with the engine's theme registry by a drift test.

render_chart

The whole pipeline in one call: spec in, finished image out, delivered into the conversation. The AI connector renders SVG — pure computation, no browser involved at all. The local MCP renders PNG too, through a headless browser at 2x; hosted PNG is planned.

render_chart({
  ...the same spec fields...
  "format": "svg"   // hosted renders SVG; the local MCP adds "png"
})
// -> the finished image, straight into the conversation

The sixth tool: local cards

render_card

The local MCP also renders infographic cards with render_card, using your installed Chrome or Edge. This tool is available only on the local server, alongside the five shared tools above.


Limits worth knowing

AI connector includes 10 visualizations/month on Free, 500 on Pro and 5,000 on Team. Charts and tables share one allowance per account, reset on the 1st of each month (UTC). AI connector charts can show up to 1,000 points on Free and 5,000 points on Pro and Team.

Creating an embed, preparing a visualization with a ready result or rendering a chart each uses one visualization. Suggestions and theme listings do not use the allowance. Only successful results count. You receive a warning at 80%. Creating and then rendering the same chart are separate uses.

Separate input and rendering safeguards also apply: at most 10,000 values per call, at most 10,000 drawn dots for a dotplot, and PNGs capped at 16.8 million pixels. These safeguards do not increase your plan's cloud point limit or monthly allowance. Respect any response asking you to slow down. Errors arrive in the same structured shape as everywhere else.

The connector renders SVG; the local MCP also renders PNG. Read the fair-use rules and license conditions.