dv-query

Installation
SKILL.md

Skill: Query — Read and Analyze Dataverse Records

This skill uses Python exclusively. Do not use Node.js, JavaScript, or any other language for Dataverse scripting. See the overview skill's Hard Rules.

SDK-First Rule for Reads

All reads use the SDK — not urllib, requests, or raw HTTP. This is the same rule as dv-data's SDK-First Rule, applied to reads. If you find yourself writing urllib.request or get_token() for a query, STOP — the SDK handles it. The only exceptions are $apply aggregation and N:N $expand, documented below.

How to Answer Data Questions

When the user asks a question about their data, pick the approach by what they're asking, not by which API you know:

User asks... Approach Why
"show me open tickets" / simple filter MCP read_query (if available) or client.records.get() with $filter Small result, no aggregation
"how many X" / simple count MCP read_query or client.records.get() with count=True Single number
Single-table aggregation (most/sum/avg/top-N) $apply server-side aggregation (raw Web API) One HTTP call, returns only grouped results
Cross-table aggregation client.dataframe.get() with minimal $select + pd.merge() Server can't join; pandas merge is fast with minimal columns
"show me X with related Y" / resolve lookups client.records.get() with $expand or QueryBuilder (b8+) Lookup resolution
Related skills

More from microsoft/dataverse-skills

Installs
10
GitHub Stars
95
First Seen
Apr 19, 2026