@bicharts/chart-mcp 0.6.121 → 0.6.122

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bicharts/chart-mcp",
3
- "version": "0.6.121",
3
+ "version": "0.6.122",
4
4
  "description": "AI Data Components for Power BI, Excel, Fabric Apps and the web, over MCP: working what-if apps, interactive tables and bivariate maps first, plus about 90 everyday chart types, with selection and cross-filtering already wired. It profiles your table locally; the code it writes is yours and runs with no license.",
5
5
  "keywords": [
6
6
  "mcp",
@@ -622,6 +622,13 @@ has passed the template's check: don't run it again with `run-dax-query`. Don't
622
622
  table and aggregate it in the browser: the Execute Queries API refuses a response over 15 MB, and a
623
623
  column repeated on every fact row (a country's population on each sale) sums to nonsense.
624
624
 
625
+ **When the chart is about the records themselves, its grain IS the records.** A scatter of customers, a
626
+ distribution, customer segments or a map of accounts takes one row per customer, account or order - the raw facts -
627
+ and the engine does the shaping. For totals (revenue by region, a monthly trend) keep the chart's grain: given raw rows
628
+ for a total, the engine reads the repeats as a spread to show, and bar, card and donut charts drop out of what fits.
629
+ Ratio measures (a growth %, an attainment %, a share) and measures from different fact tables stay as the model
630
+ computes them: raw rows can't rebuild them.
631
+
625
632
  **A "vs" measure is blank where there's nothing to compare against.** `[Goal Attainment %] - 1` is never blank:
626
633
  BLANK() - 1 is -1, so SUMMARIZECOLUMNS keeps every row, a place with no goal reads -100%, and on a symmetric diverging
627
634
  scale that one mark sets the span and every other draws near-neutral. The same goes for `1 - [Share]` and for
@@ -745,8 +752,9 @@ table and any symbols: `[Occupancy %]` becomes `Occupancy`), saves every row to
745
752
  reads each column's role, format and description from the model (`INFO.VIEW.MEASURES()` / `INFO.VIEW.COLUMNS()`),
746
753
  and profiles the result. Its reply ends with the arguments for the next two calls - `csv_path`, `measures`,
747
754
  `dimensions`, `formats`, `descriptions` - so pass them to `list_eligible_charts` and `generate_chart` as they
748
- are. It keeps at most 1,000 rows of a query; the tool says so when it cut a result, and the fix is a query at the
749
- chart's grain.
755
+ are. It keeps up to 250,000 rows of a query by default (the setting `BIC_MCP_QUERY_ROW_CAP` raises it, up to 1,000,000;
756
+ the older `fabric-app-data` layout only 1,000, that CLI's own limit) and says so when a result is past it; only then
757
+ narrow the query, with a filter or the grain the chart reads.
750
758
 
751
759
  **4. Ask before choosing, then choose what answers the question.** `list_eligible_charts` on that
752
760
  data. Pass `chart_type` to `generate_chart` only for a type the person named; when they only asked for a chart, leave it