mcpField
M
motherduck-share-data

motherduck-share-data

github.com/motherduckdbData & databases62416 installsUpdated 3d ago
Repository

About motherduck-share-data

A skill that guides agents through sharing MotherDuck data with controlled access and visibility. It covers table and view selection, secure-view policies, recipient setup, and validation of shared data.

Key features

  1. 01Choose audience and visibility
  2. 02Filter shared tables and views
  3. 03Apply secure-view policies
  4. 04Grant recipient access
  5. 05Validate consumer-visible data

Use cases

  1. 01Sharing selected tables with a team
  2. 02Providing row- or column-filtered access
  3. 03Delivering a manually refreshed snapshot

MCP support

When MotherDuck MCP's `ask_docs_question` feature is available, the skill recommends using it to check current sharing documentation before relying on other sources.

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/motherduckdb/agent-skills --skill motherduck-share-data

After installing, type/motherduck-share-datain Claude Code to confirm it loaded.

Bundled filesreferences/SHARE_PLAYBOOK.md

Details

From the project README

Share Data with MotherDuck

Source Of Truth

  • Prefer the current MotherDuck sharing docs and SQL reference first.
  • If the MotherDuck MCP ask_docs_question feature is available, use it before falling back to public docs.
  • Keep the sharing model aligned with the documented behavior:
    • zero-copy and metadata-only
    • a database is the share source, with optional table/view filtering through INCLUDE_PATTERN
    • optional secure views that filter rows, drop columns, or mask values for each consumer
    • read-only recipients
    • owner-controlled update and include-pattern policy

Prerequisites

A working connection, the source database, and the intended audience. Reuse these from context; related skills are available for missing setup or SQL details.

Default Posture

  • Prefer ACCESS RESTRICTED plus GRANT READ ON SHARE ... TO ROLE ... for governed internal distribution. Use ACCESS ORGANIZATION only when the caller deliberately wants its legacy organization-wide behavior.
  • Use INCLUDE_PATTERN when every recipient of one share should see the same table/view subset. Create separate shares when audiences need different table subsets; when they differ only by rows, columns, or masked values, one share with secure views can serve them all.
  • Use UPDATE MANUAL when the recipient needs a stable snapshot or versioned delivery.
  • Use ACCESS RESTRICTED or VISIBILITY HIDDEN when distribution should stay tightly controlled.
  • Confirm whether the recipient is an internal user, another organization, or public before choosing access and visibility.
  • For write-heavy publishers, verify the DuckDB client version is one MotherDuck supports before relying on checkpoint or concurrent-write behavior during share-update workflows.
  • INCLUDE_PATTERN selects whole tables and views; never describe it as row- or column-level security. It works on native MotherDuck and fully managed DuckLake sources.
  • For row filtering, hidden columns, or masked values, add secure views to the share: CREATE SHARE ... WITH SECURE VIEW REPLACES <table> AS (SELECT ...) or ALTER SHARE ... ADD [OR REPLACE] SECURE VIEW. Key the policy on current_email() for people, current_user for service accounts, or is_role_in_session('<role>'). One share with secure views can replace a set of per-audience shares. Business and Enterprise plans; managing them in SQL needs DuckDB 1.5.6 or later and a read-write token.
  • A table the share exposes without a replacing secure view stays fully readable. Combine INCLUDE_PATTERN (which tables) with secure views (which rows and columns) and keep macro schemas and mapping tables outside the pattern.
  • MotherDuck secure views are share policies. DuckDB's own CREATE SECURE VIEW is only an optimizer barrier and restricts nothing.

Workflow

  1. Identify the exact database to publish and who should consume it.
  2. Decide the audience, visible table/view subset, discoverability, and freshness requirements before writing SQL.
  3. Preview and validate any include pattern against the live source catalog, then create the share with explicit access, visibility, update mode, and optional INCLUDE_PATTERN.
  4. If access is restricted, grant users or roles explicitly. If the share is hidden or link-based, distribute the share URL directly.
  5. Read the share back with LIST SHARES or MD_INFORMATION_SCHEMA.OWNED_SHARES; for filtered shares, verify the stored pattern and consumer-visible catalog. For secure views, run SHOW SECURE VIEWS ON SHARE <name> and attach the share as a consumer to check the result; identity functions evaluate as whoever runs the test.
  6. Have recipients ATTACH the shared database and query it read-only.
  7. Use ALTER SHARE ... SET|RESET INCLUDE_PATTERN for table/view scope changes and ALTER SHARE ... ADD|DROP SECURE VIEW for policy changes (not both in one statement). Avoid CREATE OR REPLACE SHARE on a share with secure views; it drops any view it does not restate. If the share uses UPDATE MANUAL, the owner runs UPDATE SHARE and consumers run REFRESH DATABASE when a new snapshot is ready.

For answer, review, or planning requests, return the sharing design and SQL without provisioning. For create, update, grant, or revoke requests, perform the requested in-scope operation and validate the resulting access; ask before public exposure, destructive revocation, or unrelated grants.

References

Read only the reference sections needed for the current task.

  • Read references/SHARE_PLAYBOOK.md for the full SQL playbook, role grants, include-pattern rules, secure views, access/update decisions, consumer workflow, and common failure modes.

Related Skills

Load related skills only for missing capabilities; reuse established context.

  • motherduck-connect for MotherDuck authentication and connection setup
  • motherduck-explore for discovering databases, tables, columns, and existing shares
  • motherduck-query for validating share SQL and downstream queries
  • motherduck-duckdb-sql for DuckDB SQL syntax and lookup support
  • motherduck-security-governance for role design and access-boundary review

Comments

Markdown supported