Skip to content
R1-MCP
Get Support

Data Studio dashboards

The Data Studio feature lets Claude build charts and dashboards in RUCKUS One’s Data Studio — the Apache Superset console over Druid — without you touching the UI. A published dashboard is a first-class deliverable: you ask for it in conversation, and a human opens it in Data Studio afterwards.

This is an Early Access feature: unlock Early Access, then turn it on in the Early Access card of the dashboard. Its toggles appear once the password is accepted; the Features card holds only the generally available features.

No extra credential is involved. The tools drive Data Studio with the same RUCKUS bearer token R1-MCP already mints from your connection.

Every Data Studio tool except the two notes tools takes an optional connection (label or id). With more than one connection enabled you must name one, or the call returns connection_required; with no connection at all it returns no_connection.

Doing these out of order is the main way a dashboard comes out empty or broken:

  1. Discover the datasetds_list_datasets, then ds_dataset_fields. Dataset ids are per-tenant integers and must always be discovered, never assumed.
  2. Validate the queryds_query runs a Superset query without saving anything, so you can see real venue data and refine metrics, filters, and scope before committing.
  3. Create the dashboard shellds_build_dashboard.
  4. Create each chart attached to itds_build_chart with dashboards: [<dashboard id>].
  5. Lay it out and publishds_update_dashboard with positionJson, and published: true.
  6. Check it rendersds_diagnose_charts.

ds_build_chart checks two things before it writes:

  • The dataset id must agree across datasourceId, params.datasource, and the query context. If they differ, the write is refused with datasource_id_mismatch — such a chart would save but render empty.
  • The viz type is checked against a list of types known to render. A type that is known not to render, or isn’t on the list, gets a vizTypeWarning. The chart still saves, so read the warning.

Dashboard calls return a dashboardUrl — the link to open the dashboard in Data Studio.

RUCKUS enforces performance guardrails on every Data Studio chart and dashboard. A chart outside them errors on save or render, so reduce it rather than retrying:

LimitValue
Dimensions per chartAt most 6 (DATASTUDIO-20010); 3–4 performs best
Time rangeAt most 31 days — use Last month, not Last quarter
Time grainMust be one supported for the chosen range
Unpaginated tableAt most 500 rows — enable server pagination for more
Charts per dashboardAt most 40 across all tabs; 20 or fewer recommended

A newly created dashboard defaults to draft, and a draft is visible only to its owner — which is the API client, not you. If you look in Data Studio and the dashboard isn’t there, this is almost always why.

Pass published: true — on ds_build_dashboard at creation, or on ds_update_dashboard afterwards — to make it visible to everyone in the tenant.

Charts and dashboards created this way are API-managed: the API client owns them, and they show as “Modified by Application …” in the UI. You can still add them to your own dashboards there. Only API-owned charts and dashboards can be updated or deleted through these tools; anything else returns 403 or 404, passed through for you to inspect. ds_list_dashboards likewise sees only the dashboards the API client owns, not ones you built by hand.

GroupTools
Discoveryds_list_datasets, ds_dataset_fields
Ad-hoc queryds_query
Authoringds_build_chart, ds_build_dashboard
Diagnosisds_diagnose_charts
Learned notesds_save_note, ds_list_notes
Chart lifecycleds_list_charts, ds_get_chart, ds_update_chart, ds_delete_chart
Dashboard lifecycleds_list_dashboards, ds_get_dashboard, ds_update_dashboard, ds_delete_dashboard

ds_dataset_fields returns each column and named metric with its format — the d3-format or unit string such as BPS, BYTES, or ,.2%. That’s what resolves axis units and the fraction-versus-percent question, so it’s worth asking for when a chart’s numbers look wrong by a factor of 100.

A chart can save successfully, and its bare query can pass ds_query, and it still throws “Unexpected Error” in the Data Studio UI. That happens when a render-time field is invalid — the classic case being an annotation_layers entry missing the required showMarkers, which is only validated once the render injects the layers into the query.

ds_diagnose_charts reproduces the real render: it replays each chart’s query context with its annotation layers injected, and reports Superset’s own error verbatim plus a recognition hint for known classes. It is read-only.

Point it at a specific dashboardId after building a dashboard — that checks exactly that dashboard’s member charts, with no tenant-wide noise.

Failed ds_query calls surface the same way: the response carries a top-level queryErrors array holding Superset’s own error text, which usually names the offending column or metric.

ds_save_note records a quirk you or Claude worked out — a viz type that needs a particular field, a post-processing shape Superset insists on — under a free-form topic. Notes are private to your account and resurface automatically on ds_list_notes and on the data-studio reference doc, so a hard-won discovery isn’t re-learned next session.