@slickfast/mcp
v0.7.37
Published
Deterministic chart and dashboard engine for AI agents. JSON in, PNG or SVG out in milliseconds, no browser. Same data, same bytes. Local MCP is free.
Maintainers
Readme
SlickFast — charts and dashboards as images, no browser
A deterministic chart engine for AI agents and apps. JSON in, SVG or PNG out in milliseconds. The same data always gives the same image, byte for byte. Send the picture anywhere: chat, email, Slack, READMEs, PDFs, e-ink screens.
npx -y @slickfast/mcp # local MCP server — free, no key⚡ Live: SlickFast's own project stats, updating on a schedule. The same trick works in your README:
What people use it for
- AI agents that need to show a chart — Claude, Cursor, any MCP client
- Live chart images in READMEs and emails that update when the data does
- Whole dashboards in one call, as one image
- Alerts and reports with the graph included
- E-ink and wall screens (TRMNL)
- Scientific plots — real log axes, survival (Kaplan–Meier), volcano, Q–Q, Bland–Altman
Why it's different
- No browser. One small process, milliseconds per chart, runs anywhere — even a Raspberry Pi.
- Deterministic. Same input, same bytes: cacheable, testable, and verifiable by fingerprint.
- Cheap for agents. A few dozen tokens of JSON instead of plotting code that fails and retries.
- Loud errors. A bad option lists the valid ones, so agents fix it on the next try.
- Local by default. Nothing leaves your machine until you ask to share or publish.
render_chart({ type: "bar", data: { labels: ["Q1","Q2","Q3"], series: [{ values: [12,19,8] }] } })
→ PNG or SVG, on your machine47 chart types plus 8 scientific types, and dashboards that tile any of them into
one image. Browse them with gallery; ask describe_type for any type's exact shape.
Install
Or add it to your MCP config and restart:
{
"mcpServers": {
"slickfast": {
"command": "npx",
"args": ["-y", "@slickfast/mcp"]
}
}
}- Claude Desktop — Settings → Developer → Edit Config
- Claude Code —
claude mcp add slickfast -- npx -y @slickfast/mcp - Cursor — Settings → MCP, or
~/.cursor/mcp.json - claude.ai — Connectors → add custom →
https://mcp.slickfast.com
Needs Node 18+. Then just ask: "get me started", "show me what SlickFast can do", or "make a dashboard of…".
Free vs. key
| | No key | Free key | Paid | |---|---|---|---| | Draw charts and dashboards on your machine | ✅ forever | ✅ | ✅ | | Public chart URLs, live charts that update | — | ✅ 250 renders/mo | more | | Publish a Page (shareable web document) | — | 5 live, 7 days, watermark | permanent |
Get a free key at slickfast.com — email only, no card. Add it to the
config as "env": { "SLICKFAST_API_KEY": "SF-…" }.
Three ways to use it
| | How | Key? |
|---|---|---|
| Local MCP | npx -y @slickfast/mcp | No |
| Hosted MCP | https://mcp.slickfast.com/mcp | Free or paid key for sharing |
| HTTP API | https://api.slickfast.com | Free or paid key |
Tools
render_chart(spec)— a chart or dashboard as PNG (default) or SVG. Dashboards:type: "dashboard"withtiles: [{ chart, span }].describe_type(type)— the exact data shape, a minimal example, and gotchas for any chart type.gallery()— example charts and boards.list_palettes()— color palettes with a swatch preview.share_chart(spec)— a public, optionally live chart URL (free key).read_chart(url)— get the exact spec behind any SlickFast chart URL.render_page(pagespec)/publish_page(pagespec)— a whole designed web page (hero, text, charts) as local HTML, or published at a URL (free key).describe_pagespec()— the page format.my_pages()— pages you've published (needs key).push_to_trmnl(spec, webhook_url)— send a chart to a TRMNL e-ink display.get_started()/news()— onboarding, and what's new.mcp_status()— version and whether a key is set.report_issue(summary)— drafts a GitHub issue or email for you to send. Nothing is sent automatically.
Pages and the JSON behind them
Every published chart and Page has its exact spec one step away: add .json to the URL.
People open the page; agents read the JSON. Each page shows a fingerprint (hash) of its spec,
so anyone can check the picture matches the data. Hosted URLs are unlisted, not private —
anyone with the link can open them (Privacy).
To keep a Page on your machine, ask for a local Page (render_page with outputPath) and keep
the JSON beside the HTML. To put it online, ask to publish it.
Seeing the picture
- Prefer
format: "svg"where the chat shows artifacts (claude.ai, Claude Desktop). format: "png"depends on the client showing MCP images, which varies.- If numbers came back but no picture appeared, the chart rendered — the client just didn't display it. Use SVG,
outputPath, orshare_chartfor a URL.
License
AGPL-3.0-only. Free to use. Closed commercial products that embed or self-host SlickFast without AGPL need a commercial license, from $99/year: slickfast.com/license.html · [email protected]. The hosted API and hosted MCP are priced separately (pricing).
Feedback
GitHub issues · [email protected] · or say "report this as a SlickFast issue".
Developing locally
cd apps/mcp
npm install
node test-client.mjsPoint a client at a checkout: "command": "node", "args": ["…/apps/mcp/server.mjs"].
