@bicharts/chart-mcp 0.6.85 → 0.6.87
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/dist/check-chart.mjs +97 -97
- package/dist/index.mjs +35 -35
- package/package.json +3 -3
- package/skills/bic-charts/CHART-SHAPES.md +1 -0
- package/skills/bic-charts/SKILL.md +5 -3
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bicharts/chart-mcp",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.87",
|
|
4
4
|
"description": "MCP (Model Context Protocol) stdio server for BIC AI charts: profile a dataset locally, then generate chart code that has passed the BIC backend's render gates. Works with any MCP-capable client (Claude Code, Claude Desktop, Cursor, Copilot Studio). An account pays to author charts; the code it writes is yours and runs with no licence.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"mcp",
|
|
@@ -47,8 +47,8 @@
|
|
|
47
47
|
},
|
|
48
48
|
"// dependencies": "NONE, deliberately. dist/ bundles every module the server uses, so a runtime dependency installs nothing it needs - it only makes npx fetch that package (and its tree) before the first start. Everything the bundle carries is a devDependency; scripts/verify-package.mjs fails the release if a dependency appears or a shipped file imports anything but Node's built-ins.",
|
|
49
49
|
"devDependencies": {
|
|
50
|
-
"@bicharts/chart-host": "^0.6.
|
|
51
|
-
"@bicharts/shape-core": "^0.6.
|
|
50
|
+
"@bicharts/chart-host": "^0.6.87",
|
|
51
|
+
"@bicharts/shape-core": "^0.6.87",
|
|
52
52
|
"@modelcontextprotocol/sdk": "^1.0.0",
|
|
53
53
|
"@types/node": "^20.0.0",
|
|
54
54
|
"@types/papaparse": "^5.3.14",
|
|
@@ -98,6 +98,7 @@ on the same picture, not a looser one.
|
|
|
98
98
|
| Sankey alluvial flow | 2 categorical, 1 continuous | <=10 categories, <=80 edges, needs 420x280 px | D3, Matplotlib, Plotly | Requires at least two categorical variables |
|
|
99
99
|
| Scatter plot | 2 continuous | needs 460x340 px | D3, Matplotlib, Plotly, Seaborn | Requires two continuous variables |
|
|
100
100
|
| Seasonal decomposition | 1 continuous, 24+ time points | needs 320x360 px | Matplotlib, Plotly, Statsmodels | Requires a datetime series with one continuous variable and at least two full seasonal cycles |
|
|
101
|
+
| Selection explainer | 2 continuous | needs 560x360 px | D3 | Two measures over thirty or more rows that also carry other fields - region, plan, tenure, size - when the question is 'what do these points have in common?' |
|
|
101
102
|
| Slope chart | 1 categorical, 1 continuous, 2+ time points | <=40 categories, needs 460x340 px | D3, PLOTLY | Best for two-period change across many categories: YoY by region/segment, before/after comparisons, ranking shifts between two snapshots |
|
|
102
103
|
| Spiral plot | 1 continuous, 12+ time points | needs 320x320 px | D3, PLOTLY | Best for long, finely-grained, strongly periodic series (years of daily data) where the cyclic pattern is the story |
|
|
103
104
|
| Stacked area chart | 1 categorical, 1 continuous | needs 460x340 px | D3, Matplotlib, Plotly | Requires ordered categories with multiple continuous series |
|
|
@@ -175,8 +175,8 @@ correction:
|
|
|
175
175
|
Asking for these in `prompt` prose instead is the most expensive mistake available here: it
|
|
176
176
|
routinely costs two or three extra generations, and each one is minutes of wall-clock.
|
|
177
177
|
|
|
178
|
-
Other parameters worth knowing: `chart_type` (
|
|
179
|
-
disqualifies it), `renderer` (a JavaScript or TypeScript project gets D3 without asking, because D3 is what
|
|
178
|
+
Other parameters worth knowing: `chart_type` (the type the person named, honored unless the data shape
|
|
179
|
+
disqualifies it; leave it unset when they only asked for a chart, and the engine chooses from what fits), `renderer` (a JavaScript or TypeScript project gets D3 without asking, because D3 is what
|
|
180
180
|
`@bicharts/chart-host` draws), `width`/`height`, and
|
|
181
181
|
`reasoning_mode: "1P"` when you want the cheapest, fastest pass.
|
|
182
182
|
|
|
@@ -539,7 +539,9 @@ are. The CLI returns at most 1,000 rows; the tool says so when it cut a result,
|
|
|
539
539
|
chart's grain.
|
|
540
540
|
|
|
541
541
|
**4. Ask before choosing, then choose what answers the question.** `list_eligible_charts` on that
|
|
542
|
-
data.
|
|
542
|
+
data. Pass `chart_type` to `generate_chart` only for a type the person named; when they only asked for a chart, leave it
|
|
543
|
+
unset and the engine chooses from what fits. A type the person described without naming it counts as named once you have
|
|
544
|
+
matched it to the catalogue. The catalogue goes past the template's own charts, and these are the ones people describe
|
|
543
545
|
without naming:
|
|
544
546
|
|
|
545
547
|
| the request sounds like | ask for |
|