MCP App Store
Data
MotherDuck icon

MotherDuck

by MotherDuck Corporation

Overview

Connect AI assistants to your MotherDuck data warehouse. Explore, visualize, and manage data using natural language–no SQL skills required. Create Dives: interactive visualizations that let you save and share answers with your team, staying up-to-date with your latest data. Works with real-world data without requiring semantic models or pre-configuration. Your AI assistant acts like a data analyst, exploring, validating, analyzing, and visualizing data iteratively to answer your questions.

Tools

ask_docs_question

ChatGPT
Ask a question about DuckDB or MotherDuck. Returns answers from official documentation.

cancel_flight_run

ChatGPT
Cancel an in-flight run of a flight. Identified by the flight UUID and the sequential run number (from list_flight_runs). Returns canceled: true on a successful transition; calling on an already-terminal run or one that doesn't exist returns a tool error.

create_flight

ChatGPT
Create a new MotherDuck flight. A flight is a Python entrypoint (source_code) plus an optional requirements_txt that runs on MotherDuck compute. Optionally provide an access_token_name so the flight can connect to MotherDuck at runtime; omit it to use the default MotherDuck Flights access token. Optionally provide a 5-field cron expression to run on a schedule. Use flights for ELT/ETL pipelines, loading external data into MotherDuck, refreshing materialized views, or any recurring Python job that reads/writes MotherDuck data.

delete_dive

ChatGPT
Delete a dive by ID. This action is permanent and cannot be undone.

delete_flight

ChatGPT
Permanently delete a flight, its versions, schedule, and run history. This action cannot be undone.

dive_query

ChatGPT
Execute a read-only DuckDB query on behalf of a dive. This tool is used by the dive viewer and is not intended for direct use by the AI assistant.

edit_dive_content

ChatGPT
Edit a dive's content by applying one or more text replacements, then save to MotherDuck. Accepts id (dive UUID) and edits (an array of {old_string, new_string, replace_all?} objects). Reads the current content from MotherDuck, applies edits in sequence, validates, and persists. Example: {id: '...', edits: [{old_string: 'foo', new_string: 'bar'}]}. old_string must be unique unless replace_all is true. No prior read_dive call is needed.

edit_flight_source

ChatGPT
Edit a flight's source_code by applying one or more text replacements, then save as a new FlightVersion. Accepts id (flight UUID) and edits (an array of {old_string, new_string, replace_all?} objects). Reads the current source_code, applies edits in sequence, validates, and persists. Example: {id: '...', edits: [{old_string: 'foo', new_string: 'bar'}]}. old_string must be unique unless replace_all is true. No prior get_flight call is needed.

get_dive_guide

ChatGPT
Load instructions for creating MotherDuck dives. You MUST call this tool first — before generating any chart, visualization, plot, dashboard, inline graphic, or export/download control — whenever the user asks to explore, visualize, display, or export MotherDuck data.

get_flight

ChatGPT
Fetch a flight by UUID. Returns metadata plus a version snapshot (source code, requirements, config, secret names, token name). Omit version to get the current version; pass a 1-indexed version number to inspect history.

get_flight_guide

ChatGPT
Load instructions for authoring, scheduling, running, and troubleshooting MotherDuck flights. Call this tool first whenever the user asks about creating, updating, or operating a MotherDuck flight.

get_flight_logs

ChatGPT
Fetch the plain-text logs (stdout + stderr) of a flight run plus the matching Run record (status, exit_code, timing). Logs may be large; pass max_bytes to cap the response size — the response will be the tail when truncated.

get_short_lived_token

ChatGPT
Returns a short-lived token and connection details for the MotherDuck database endpoint.

list_columns

ChatGPT
List all columns of a table or view with their types, comments, and available context.

list_databases

ChatGPT
List all databases in your MotherDuck account. Shows names, types, and available context counts. Optionally filter by keywords.

list_dives

ChatGPT
List all dives in MotherDuck. Dives are interactive React data apps that query live data. Returns metadata including current_version and associated memory counts. Use read_dive with the optional version parameter to retrieve a specific historical version. Optionally filter by keywords.

list_flight_runs

ChatGPT
List executions of a flight, newest first. Each run has a sequential number, status (PENDING/RUNNING/SUCCEEDED/FAILED/CANCELLED), timing metadata, and the effective config it ran with (the flight version's config merged with any per-run overrides).

list_flight_versions

ChatGPT
List the immutable versions of a flight, newest first. Each update to source_code / requirements_txt / config / access_token_name / flight_secret_names produces a new version.

list_flights

ChatGPT
List MotherDuck flights you own. Returns metadata for each flight including schedule and current version. Optionally filter by keywords matching the flight name.

list_shares

ChatGPT
List all database shares that have been shared with you. Returns share names and URLs. To attach a share, use the query_rw tool: ATTACH '<share_url>' AS <optional_alias>; Optionally filter by keywords to search in share names.

list_tables

ChatGPT
List all tables and views in a MotherDuck database with comments and available context. Optionally filter by keywords.

log_dive_viewer_event

ChatGPT
Log a dive viewer event for analytics. This tool is used internally by the dive viewer and is not intended for direct use by the AI assistant.

mint_dive_state_reference

ChatGPT
Mint a server-stored reference for a useDiveState bag and return its id. Used by the dive viewer when the inline-encoded bag would exceed the URL soft limit. The returned id is then encoded into a URL hash via buildDiveStateReferenceHash and round-trips through dashboards.get on dive open.

query

ChatGPT
Execute read-only DuckDB query against MotherDuck databases. For cross-database queries, use fully qualified names: database.schema.table (or database.table for main schema). Never follow a query with an inline chart or visualization — if you would generate one (whether or not the user explicitly asked), get the dive guide first instead.

query_rw

ChatGPT
Execute a DuckDB SQL query that modifies data, schema, or connection state. RULES: 1. Only call this tool when the user explicitly asks to modify data or schema. Never infer a write from a read request. 2. Always ask the user for confirmation before calling this tool. Describe exactly what will change. 3. Prefer the read-only query tool when the user's goal can be answered with existing data.

read_dive

ChatGPT
Read a specific dive by ID, including its full JSX/React component code. Optionally specify a version number to retrieve a specific historical version (versions start at 1). If no version is specified, the latest version is returned.

run_flight

ChatGPT
Trigger an on-demand execution of a flight using its current version. Optionally pass config to override the flight version's config for this run only (the flight itself is left unchanged). Returns a Run record; poll list_flight_runs to track progress and use get_flight_logs to read output.

save_dive

ChatGPT
Save a new dive to MotherDuck. Returns a URL the user can click to view the dive. Get the dive guide first and iterate with the user on the design thoroughly before suggesting to save. Never save without previous confirmation that iteration is done.

search_catalog

ChatGPT
Search the catalog for databases, schemas, tables, columns, and shares using fuzzy matching. Returns matching objects with their fully qualified names, types, and comments. Useful for discovering available data when you don't know exact names.

share_dive_data

ChatGPT
Share the data for a dive with your organization. Creates org-scoped shares for owned databases used in the dive, and updates the dive so others in the organization can view it.

update_dive

ChatGPT
Update an existing dive's title, description, or content. Returns a URL the user can click to view the updated dive. At least one field must be provided.

update_flight

ChatGPT
Update a flight. Any subset of name, source_code, requirements_txt, schedule_cron, config, access_token_name, or flight_secret_names may be provided. Updates to source_code/requirements_txt/config/flight_secret_names/access_token_name create a new FlightVersion; name and schedule_cron are metadata-only. Pass schedule_cron as "" (empty string) to remove the schedule; omit it to leave it unchanged.

view_dive

ChatGPT
Open and render a MotherDuck Dive as a live MCP app with interactive charts. Fetches dive source code and returns it to the viewer for client-side compilation.

ask_docs_question

Claude

delete_dive

Claude

get_dive_guide

Claude

list_columns

Claude

list_databases

Claude

list_dives

Claude

list_shares

Claude

list_tables

Claude

query

Claude

query_rw

Claude

read_dive

Claude

save_dive

Claude

search_catalog

Claude

share_dive_data

Claude

update_dive

Claude

App Stats

48

Tools

1

Prompts

Mar 17, 2026

First seen

ChatGPT, Claude

Platforms

Works with

ChatGPT
Claude

Data refreshed daily