PBI Query
Query authoring and execution through run_query.
Query workflow
- Discover schema first:
list_model{ "operation": "list", "spec": { "type": "tables" } }— one call per type (tables,columns,measures,relationships;spec.typetakes exactly one value) — or{ "operation": "search", "spec": { "query": "<name>", "mode": "name" } }for a named object. Never invent table, column, or measure names. - Pick the
run_queryoperation:execute— results and validation queries.test_access— role-by-role RLS validation (requires top-levelqueryandspec.roles).analyzeandvertipaqbelong to performance work — hand off tomcp-engine-dax-performance.
- Keep the first
executescoped:TOPNof at most 100 rows with an explicitORDER BY, or a targeted aggregation. Expand only after the shape is confirmed correct. - Treat
nullin results as DAXBLANKsemantics, andtruncated: trueas a row cap, not missing data.
Author safely
- Read dax-query-guide before writing new or corrected query text — quoting, naming, and structure rules live there.
- Add
ORDER BYto any multi-row output so results are stable and comparable across runs.
Report results
After query work, report:
- The exact DAX text run and the
run_queryoperation used. - Row count returned and whether results were truncated.
- The answer to the user's question, stated separately from raw output.