Wave Dashboard Builder
Goal
Create or update saved Wave analysis assets: charts, dashboards, and dashboard layouts.
Tools
- Project:
list_projects - Discover assets:
list_charts,list_dashboards,get_chart_detail,get_dashboard_detail - Create dashboards:
create_dashboard - Create charts:
create_event_chart,create_event_charts,create_funnel_chart,create_retention_chart,create_custom_sql_chart - Validate query shapes when needed:
query_event_analysis,query_funnel,query_retention,get_sql_schema,query_custom_sql - Polish layout:
set_dashboard_chart_layouts - Update existing assets:
update_dashboard,update_chart
Project gate
Before any other project-level MCP call:
- Call
list_projectsand show a table ofproject_id | name. - Wait for the user to reply with a numeric
project_id. - Only skip a new selection if the user already fixed this conversation to one project, or explicitly says to keep the current project without switching.
Never silently pick a project, and never list, create, update, or layout charts/dashboards before this step.
Workflow
- Pass the project gate first. Then clarify the asset target: standalone chart, new dashboard, existing dashboard, or dashboard refresh.
- Discover existing dashboards/charts before creating duplicates when the user names an asset or asks to update. If the user asks what dashboards/charts exist, call
list_dashboards/list_chartswith nosearch_keyand show every item (totalplus pages). Do not search with type words like 看板, dashboard, 概览, or 图表. - Confirm the metric/query shape. If the user has not specified metrics clearly, hand off to
wave-analyticsor run a lightweight validation query before creating assets. - Choose chart types deliberately:
- KPI totals ->
Metric - Time trends ->
Line - Category comparison ->
ColumnorBar - Composition ->
StackedLine,StackedColumn, orPie - Funnel conversion ->
FunnelColumn - Retention curve ->
Line - SQL/detail table ->
Table
- KPI totals ->
- For a dashboard, prefer one batch call when creating multiple event charts with
create_event_charts. - Use
new_dashboardswhen creating a dashboard together with charts; usedashboard_idswhen attaching to an existing dashboard. - After charts exist on a dashboard, call
get_dashboard_detailbefore any layout change.list_dashboards/get_resource(dashboard)/list_chartsdo not include coordinates.
Layout Defaults
Follow the Wave overview editor Speedy Layout. Every chart type uses the same height, including Metric/KPI cards.
- 12-column grid. Always
h=7.min_w=3,min_h=4. - Speedy layout is the default polish (单列 / 双列 / 三列 / 整理布局). Prefer
set_dashboard_chart_layoutswithspeedy_columnsso the server sorts by visual order (ythenx) and applies:- 1 column:
w=12 h=7 - 2 columns:
w=6 h=7 - 3 columns:
w=4 h=7
- 1 column:
- Do not give Metric/KPI a shorter height or a special top row. Treat them like any other chart.
- New chart without layout:
w=12 h=7at the bottom (x=0,y=max(y+h)). - Copy keeps the source
w/hand appends at the bottom. - Custom
layoutsmay changex/wif the user asks, but keeph=7unless they explicitly request another height. x+wmust fit the 12-column grid. Rectangles must not overlap each other or charts not listed in the call. On overlap, include every affected chart or usespeedy_columns.
Boundaries
- Do not discover or write project assets before the user selects a
project_id. - Do not invent analysis meaning when the metric definition is unclear; validate with
wave-analytics. - Do not run Tracking Plan validation here; hand off to
wave-tracking-validation. - Do not design new tracking events here; hand off to
wave-tracking. - Do not delete charts or dashboards unless the user explicitly asks and confirms the exact asset name. Prefer create/update/layout operations.
Output
Return:
- Created or updated dashboard ids/names
- Created or updated chart ids/names/types
- Layout changes applied (
speedy_columnsor per-chartx,y,w,h) - Any chart requests skipped and why
- Suggested follow-up if data validation or metric definition is still unclear
微信扫一扫