PlugWiki
duckle logo

Duckle MCP Server: Build and Run ETL Pipelines from Claude and Cursor

OfficialLocal

Lets Claude, Cursor and other assistants design, check and run Duckle ETL pipelines on your own machine.

This is the MCP server that ships with Duckle, an open source ETL tool built on DuckDB, made by SlothFlowLabs. It runs on your computer and the assistant starts it on demand. Pipelines are plain JSON files the assistant writes into a folder you choose, and the same files open in the Duckle app.

No account or key is needed. Running pipelines needs the DuckDB command line tool, which the Python package installs for you. The server is one part of a larger product, so the repository stars and downloads shown on this page describe all of Duckle.

Good for

  • Data engineers who want an assistant to draft and validate pipelines before they run
  • Teams that already use Duckle and want an agent to check lineage, drift and freshness
  • Developers who want an agent to run pipeline tests without shell access

Works in

12 should work

Tap an app to see how to set it up and any known problems.

Install duckle MCP

Claude Code

  1. 1

    Copy this prompt.

    Add the duckle MCP server to Claude Code. Run this command:
    
    claude mcp add duckle -- uvx duckle mcp
    
    Then check that it loaded and tell me if I need to sign in or restart.
  2. 2

    Paste it into Claude Code. It shows the change and asks before running it.

Requires uv (Python).

Read-only mode: There is no read-only switch. Ask the assistant to validate only, and review pipelines before it runs them.

Install uv first. The first start fetches the duckle package and the DuckDB engine, so give it a minute. The command must end in "duckle mcp": the package name alone starts the pipeline runner instead of the MCP server. The README documents Claude Code, Claude Desktop and Cursor; the other tabs are our adaptation of the same command.

From the project README. Source.

Tools

  • Browses the 400+ pipeline building blocks

    Lists the sources, transforms, sinks, control, quality and custom-code components Duckle has. You can filter by kind or search by a word, so the assistant picks a real component instead of guessing one.

    Try: “Which Duckle components can read from Postgres?”

    Read · list_components

  • Says which data assets are out of date

    Checks each asset in a workspace against the freshness limit you declared for it. An asset with no limit shows as unknown, not fresh, so a missing rule is never read as good news.

    Try: “Which assets in my Duckle workspace are stale, and since when?”

    Files · asset_freshness

  • Answers what a component can do

    Looks up which sources can run custom SQL or read incrementally, which sinks offer which write modes, and which components send rejected rows aside. The answer comes from the same manifests the editor uses.

    Try: “Which sinks support upsert?”

    Read · component_capabilities

  • Shows the settings one component takes

    Returns the form fields and the input and output ports of one component id. The assistant uses it to fill in the right property names before it builds a pipeline.

    Try: “What settings does src.csv take?”

    Read · get_component_schema

  • Checks a pipeline and saves it as a file

    Compiles a pipeline first and writes it only if it compiles. With a workspace it saves pipelines/<id>.json and lists it in the workspace so it shows in the app; with a directory it saves a loose file.

    Try: “Create a pipeline in ./etl that reads orders.csv and writes a Parquet file.”

    Write · create_pipeline

  • Changes part of a saved pipeline

    Merges a partial change into a pipeline already on disk, matching nodes and edges by id, so the assistant can change one setting without resending everything. It validates the result and then overwrites the file.

    Try: “In my orders pipeline, change the CSV sink to overwrite mode.”

    Write · update_pipeline

  • Compiles a pipeline without running it

    Turns a pipeline into SQL and returns the SQL for each stage, or a structured error that says what failed. Nothing is executed.

    Try: “Validate the orders pipeline and show me the SQL.”

    Read · validate_pipeline

  • Runs a pipeline on your machine

    Runs a pipeline with the DuckDB engine and returns each node's status, row counts, errors and a small preview. Setting a target node stops the run there, so later sinks do not write.

    Try: “Run the orders pipeline up to the join node and show me the rows.”

    Runs code · run_pipeline

  • Runs the pipeline tests

    Runs the *.test.json files in a workspace's tests folder, or only the files you name. Each case checks the rows one node produces against a fixture, which catches a step that compiles but computes the wrong thing.

    Try: “Run all tests in my Duckle workspace and list the failures.”

    Runs code · run_tests

  • Traces columns back to their sources

    Maps every output column of every node back to the source columns it comes from. It reads the pipeline and writes nothing.

    Try: “Where does the revenue column in the final sink come from?”

    Read · pipeline_lineage

  • Gives a pass or fail check of a pipeline

    Compiles the pipeline, resolves lineage and flags structural risks such as joins without keys, unconnected nodes, a sink with no input, or no sink at all. It returns one verdict the assistant can act on.

    Try: “Verify my orders pipeline before I deploy it.”

    Read · verify_pipeline

  • Finds SQL errors before a run

    Binds the SQL of each node against its upstream columns without running it, and reports DuckDB's message, the position, and the column it suggests for a typo. A source query that goes to a remote system is reported as not checked.

    Try: “Check the SQL in the join node of my pipeline.”

    Read · check_node_sql

Read from the source code

Permissions

high risk · 4 things to watch

High risk

What it can do

  • Read your data
  • Create and change things
  • Delete things
  • Read-only mode

Watch out for

  • It can run any pipeline, including custom code

    run_pipeline runs pipelines headlessly, and the component catalog includes code.shell, code.python and code.javascript. Only run pipelines you have read, and keep the assistant in a project folder you trust. github.com

  • Pipelines can write to your databases and files

    A pipeline run can write to its sinks, and run_pipeline, backfill and build_pipeline all start runs or write files. Point connections at test data first, and use run_pipeline with a target node to stop before the sink. github.com

  • It can erase saved resume points

    backfill_clear and baseline_clear remove a node's saved state, so the next run starts over. For a Kafka source set to start from latest, clearing skips the backlog instead of replaying it. github.com

  • Older Duckle versions had security fixes

    The project lists seven advisories, rated medium to critical, fixed in 0.7.3 and 0.7.4. They are about the serve web console, the container image, self-extracting artifacts and the archive extraction component. None of them names the MCP server. Use 0.7.4 or later. github.com

Security advisories

No published security advisories for the MCP server as of Nov 1, 2026.

7 other advisories are about the wider duckle project, not this MCP server. See them on GitHub

Technical details
Turning on read-onlyNo read-only switch or flag is documented. Some tools only read (for example validate_pipeline and pipeline_lineage), but the server exposes all 33 tools at once.
Talks toWhatever the pipelines you run connect to, such as databases, cloud storage and web APIs
Sign-in and keysThe server itself needs no sign-in. Pipelines should hold secrets as ${ENV:KEY} placeholders that are filled from the environment when they run. Saved connection files mask secret fields when listed.

Questions

Is the Duckle MCP server official?

Yes, it is the Duckle project's own server. SlothFlowLabs makes Duckle and ships the server inside the Duckle repository. It is not made by DuckDB Labs or by the databases it connects to, and the project says it is not affiliated with DuckDB Labs or MotherDuck.

How do I add it to Claude Code or Cursor?

Use the install box above. It starts the server with the uvx tool, so you need uv installed. The command ends in "duckle mcp", and the plain package name alone starts the command line runner instead.

Do I need to install the Duckle app?

No. The uvx route fetches the package and the DuckDB engine on first use. The app also has a Connect to Claude button that sets the server up for you, and you can build the duckle-mcp program from source instead.

Does it need an API key or account?

No. The server has no sign-in of its own. Your pipelines may need credentials for the databases and services they connect to, and the docs say to keep them in environment variables rather than in the pipeline file.

Can it run read-only?

No read-only mode is documented. Several tools only read, such as validating, linting and tracing lineage, but the writing and running tools are always available. Tell the assistant to validate only, and review before it runs anything.

Does it run locally or send my data elsewhere?

It runs locally over stdio, with DuckDB in the same machine. Data only leaves your computer if a pipeline you run connects to a remote database, cloud storage or API.

Can it delete data?

Yes, indirectly. A pipeline it runs can write to or overwrite its sinks. Two tools erase saved resume points so a pipeline starts over. Run against test data first.

Is the list of tools complete?

Yes. The 33 tools match what version 0.7.4 of the server registers, which is also the version on PyPI. Newer builds may add more.

Information

updated Nov 2, 2026

Publisher
Official
Package
duckle
Registry
PyPI
Transport
stdio
Auth
None
License
Apache-2.0
Last commit
Oct 30, 2026
Open issues
70

WebsiteGitHubChangelogIssues

Sources

Docs, issue trackers and discussions this page is built from. Issues, quotes and findings above link to their own source.

Show all 5
  1. Duckle README · github.com
  2. Duckle MCP guide · github.com
  3. duckle-mcp tool registrations · github.com
  4. Duckle component catalog · github.com
  5. Duckle security advisories · github.com

Facts from the official MCP registry, GitHub, npm, PyPI and the Docker catalog. Updated Nov 2, 2026.