About motherduck-query
A skill for writing and validating analytical SQL against MotherDuck. It guides data analysts through schema checks, query design, and result validation using DuckDB SQL.
Key features
- 01Inspect schema and data grain
- 02Use MotherDuck query guidance
- 03Write and validate DuckDB SQL
- 04Apply AI functions with cost checks
Use cases
- 01Answer business questions with MotherDuck data
- 02Validate joins and query result shape
- 03Classify or extract data with AI functions
MCP support
When a MotherDuck MCP server is available, it uses query guidance and supports authorized writes through the `query_rw` tool.
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ motherduckdb/ agent-skills --skill motherduck-queryAfter installing, type/motherduck-queryin Claude Code to confirm it loaded.
Bundled filesreferences/AI_FUNCTIONS.mdreferences/QUERY_PLAYBOOK.md
Details
From the project READMEQuery MotherDuck
Prerequisites
- An established MotherDuck connection (or an active MotherDuck MCP server)
- Target database and tables identified
Default Posture
- When MotherDuck MCP is available and the query answers a business question, call
get_query_guidebefore writing SQL. Traverse only relevant topics and validate Guide claims against the live schema. - Write DuckDB SQL, not PostgreSQL SQL, even when using the PG endpoint.
- Prefer fully qualified
"database"."schema"."table"names; they are required once more than one database or share is attached. - Preserve result grain and check join cardinality before optimizing or materializing a query.
- Filter early, aggregate early, and prefer serving tables or summaries for repeated reads.
- Keep SQL obvious, multi-line, and explicit about grain, filters, and output shape.
- Treat DDL, DML,
ATTACH,DETACH, recovery commands such asCREATE SNAPSHOT,ALTER DATABASE ... SET SNAPSHOT,UNDROP DATABASE, and lifecycle commands such asSHUTDOWNas writes. Use the MotherDuck MCPquery_rwtool when the user's change request authorizes the write. Ask for confirmation only when the action is destructive, externally visible, or outside the stated scope. - Tag long-lived integrations with
custom_user_agentwhen the connection path supports it; the tag appears per query in the Duckling Overview and in query history. - For classification, scoring, routing, or yes/no judgments over text or images, use
prompt_jev(): it returns typed probabilities and labels, bills input tokens only, and batches rows. Useprompt()for generated text or open extraction withstructorjson_schema. Both are per-row billable calls: test on a smallLIMIT, store results in a table, and rerun onlyNULLrows.
Workflow
- Confirm the actual tables, columns, and grain before writing SQL.
- Load relevant Guide context when MCP is available, without treating it as a substitute for schema inspection.
- Write the query in SQL first, then wrap it in Python or TypeScript only if needed.
- Use DuckDB-native patterns when they simplify the query; a simple lookup does not need a CTE or a materialization.
- Verify result shape and key aggregates. Inspect the plan when performance is part of the request or execution shows a problem.
- Materialize expensive repeated queries into serving tables or light views when warranted.
References
Read only the reference sections needed for the current task.
- Read
references/QUERY_PLAYBOOK.mdfor DuckDB query patterns, exploration SQL, performance rules, common analytical shapes, and common mistakes - Read
references/AI_FUNCTIONS.mdwhen a query callsprompt_jev(),prompt(), orembedding()
Related Skills
Load related skills only for missing capabilities; reuse established context.
motherduck-connectfor session setupmotherduck-duckdb-sqlfor syntax and function referencemotherduck-explorefor understanding the source schema before writing queriesmotherduck-manage-guideswhen semantic definitions or reusable query rules need to be read or maintained
Comments
Markdown supported