@slickfast/mcp 0.7.5 → 0.7.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +42 -21
- package/dist/index.js +4 -2
- package/package.json +5 -1
package/README.md
CHANGED
|
@@ -1,30 +1,43 @@
|
|
|
1
1
|
# SlickFast — charts & dashboards for AI agents
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
**A tiny JSON spec in → a finished, retina-quality chart out. Milliseconds, a handful of
|
|
4
|
+
tokens, nothing leaves your machine.**
|
|
5
|
+
|
|
6
|
+
SlickFast is a **native SVG engine built for AI agents** — not a browser screenshotting a
|
|
7
|
+
webpage, not a plotting library an agent has to write code against. A pure
|
|
8
|
+
`spec → SVG → PNG` pipeline: **47 chart and information-design types** (bar, line, pie, KPI,
|
|
9
|
+
cards, funnel, gauge, heatmap, calendar, gantt, waterfall…), plus **entire multi-chart
|
|
10
|
+
dashboards tiled into one image in a single call**. It runs as an
|
|
11
|
+
[MCP](https://modelcontextprotocol.io) tool, so an agent hands it a spec and gets back a
|
|
12
|
+
finished PNG (or SVG).
|
|
8
13
|
|
|
9
14
|
```txt
|
|
10
15
|
render_chart({ type: "bar", data: { labels: ["Q1","Q2","Q3"], series: [{ values: [12,19,8] }] } })
|
|
11
16
|
→ a retina PNG, rendered on your machine
|
|
12
17
|
```
|
|
13
18
|
|
|
14
|
-
## Why
|
|
15
|
-
|
|
19
|
+
## Why agents (and the people paying for their tokens) pick SlickFast
|
|
20
|
+
|
|
21
|
+
- **Tokens are the real cost — a spec is nearly free.** An agent hand-writing SVG or
|
|
22
|
+
matplotlib code burns hundreds to thousands of output tokens, then often retries when it
|
|
23
|
+
doesn't render. A SlickFast spec is a few dozen tokens, and `{type, data}` alone is a
|
|
24
|
+
finished, well-designed chart. A whole dashboard is **one tool call**, not ten renders
|
|
25
|
+
and layout math.
|
|
26
|
+
- **Changes are one-field edits.** Swap `bar` → `line`, change a palette, resize for a
|
|
27
|
+
slide: edit one key, re-render. The agent never rewrites code or reasons about a diff —
|
|
28
|
+
which is what makes iteration with a human ("make it dark, bigger title") actually cheap.
|
|
29
|
+
- **No headless browser.** Most chart-to-image pipelines secretly spawn Puppeteer or
|
|
30
|
+
Playwright — hundreds of MB, slow cold starts, flaky output. SlickFast renders pure
|
|
31
|
+
in-memory, milliseconds per chart.
|
|
32
|
+
- **Native SVG, vector-first.** Output is a few KB of crisp-at-any-scale SVG (or retina PNG
|
|
33
|
+
on demand) — small enough to cache, embed, or ship anywhere.
|
|
16
34
|
- **Deterministic — same spec, same bytes, forever.** No randomness, no timestamps, no
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
- **Fails loud on real mistakes.** An unknown palette or enum is *rejected* with a clear error
|
|
24
|
-
listing the valid options — so the agent fixes it immediately instead of silently shipping the
|
|
25
|
-
wrong-looking chart.
|
|
26
|
-
- **Good-looking by default.** A spec of just `{type, data}` renders a complete, well-designed
|
|
27
|
-
chart; fonts, colors, palettes, and size are optional overrides.
|
|
35
|
+
browser drift. Cacheable, testable, reproducible; zero flaky pixel diffs. Almost no
|
|
36
|
+
charting tool can promise this — and it's exactly what a tool-calling agent needs.
|
|
37
|
+
- **Never throws garbage at the model.** Empty data, a bad tile, a filtered-to-nothing
|
|
38
|
+
series → a clean, graceful frame, not a crash or a stack trace. A real mistake (unknown
|
|
39
|
+
palette, bad enum) → a **loud error listing the valid options**, so the agent
|
|
40
|
+
self-corrects in one step.
|
|
28
41
|
- **100% local & private.** Rendered and rasterized on your machine. Nothing is sent anywhere.
|
|
29
42
|
|
|
30
43
|
## Tools
|
|
@@ -41,7 +54,7 @@ render_chart({ type: "bar", data: { labels: ["Q1","Q2","Q3"], series: [{ values:
|
|
|
41
54
|
- **`list_palettes()`** → every valid `palette` name, grouped into flat palettes and nested
|
|
42
55
|
themes, with their colors. Ask *"what palettes are available?"*.
|
|
43
56
|
- **`report_issue(summary, spec?)`** → *"report this bug."* Formats a bug report and returns a
|
|
44
|
-
prefilled email link you click to send — SlickFast sends nothing itself.
|
|
57
|
+
prefilled GitHub-issue link and email link you click to send — SlickFast sends nothing itself.
|
|
45
58
|
|
|
46
59
|
## Install
|
|
47
60
|
|
|
@@ -95,11 +108,19 @@ or post** — it never auto-inserts links. (The endpoint stays unadvertised duri
|
|
|
95
108
|
**AGPL-3.0-only.** Free to use, self-host, and embed under the AGPL's terms (your friends
|
|
96
109
|
running it locally are completely unaffected). Building it into a **closed-source product
|
|
97
110
|
or a hosted service**? That needs the AGPL'd source opened — or a **commercial license**
|
|
98
|
-
from us instead.
|
|
111
|
+
from us instead. Write to feedback@slickfast.com for commercial terms.
|
|
112
|
+
|
|
113
|
+
## Feedback, bugs & feature requests
|
|
114
|
+
|
|
115
|
+
- **GitHub:** [SlickFast/slickfast](https://github.com/SlickFast/slickfast) — bug reports and
|
|
116
|
+
feature requests via the [issue templates](https://github.com/SlickFast/slickfast/issues/new/choose).
|
|
117
|
+
- **Email:** feedback@slickfast.com
|
|
118
|
+
- Or ask your agent to *"report this as a SlickFast issue"* — the `report_issue` tool drafts
|
|
119
|
+
the report (with the repro spec) for you. Nothing is ever sent automatically.
|
|
99
120
|
|
|
100
121
|
## Developing locally
|
|
101
122
|
|
|
102
|
-
Clone the repo, then from the package directory:
|
|
123
|
+
Clone [the repo](https://github.com/SlickFast/slickfast), then from the package directory:
|
|
103
124
|
|
|
104
125
|
```bash
|
|
105
126
|
cd apps/mcp
|
package/dist/index.js
CHANGED
|
@@ -3292,9 +3292,11 @@ server.registerTool("report_issue", {
|
|
|
3292
3292
|
"_Reported via the SlickFast report_issue tool._"
|
|
3293
3293
|
].filter(Boolean).join("\n\n");
|
|
3294
3294
|
const mailto = `mailto:${FEEDBACK_EMAIL}?subject=${encodeURIComponent("SlickFast bug: " + summary)}&body=${encodeURIComponent(body)}`;
|
|
3295
|
-
const
|
|
3295
|
+
const ghIssue = `https://github.com/SlickFast/slickfast/issues/new?labels=bug&title=${encodeURIComponent("[bug] " + summary)}&body=${encodeURIComponent(body)}`;
|
|
3296
|
+
const text = `Bug report ready \u2014 **nothing has been sent.** To submit, pick either:
|
|
3296
3297
|
|
|
3297
|
-
${
|
|
3298
|
+
- **GitHub issue** (preferred \u2014 public, trackable): ${ghIssue}
|
|
3299
|
+
- **Email** (opens your mail client): ${mailto}
|
|
3298
3300
|
|
|
3299
3301
|
Or copy the report below into an email to ${FEEDBACK_EMAIL}:
|
|
3300
3302
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@slickfast/mcp",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.6",
|
|
4
|
+
"mcpName": "com.slickfast/mcp",
|
|
5
|
+
"homepage": "https://slickfast.com",
|
|
6
|
+
"repository": { "type": "git", "url": "git+https://github.com/SlickFast/slickfast.git", "directory": "apps/mcp" },
|
|
7
|
+
"bugs": { "url": "https://github.com/SlickFast/slickfast/issues", "email": "feedback@slickfast.com" },
|
|
4
8
|
"description": "SlickFast — render 47 chart & info-design types (bar, line, pie, KPI, cards, funnel, matrix, gauge, calendar…) plus multi-chart dashboards tiled into one image, as SVG/PNG via MCP. Local and deterministic; nothing leaves your machine.",
|
|
5
9
|
"keywords": ["mcp", "model-context-protocol", "chart", "charts", "dashboard", "data-visualization", "svg", "png", "ai", "agent", "claude", "llm", "deterministic"],
|
|
6
10
|
"license": "AGPL-3.0-only",
|