Skip to content

Commit 49b6130

Browse files
committed
docs(readme): document Claude/MCP one-click connector + correct app size
- Rewrite the MCP section to lead with the bundled server and the in-app "Connect to Claude" one-click flow (Claude Code / Desktop / Cursor), add the MCP banner, and keep the manual / headless path. Update the TOC anchor. - Fix stale desktop-app size claims: the single-file binary is ~55-78 MB (it embeds the headless runner + MCP server), not ~30 MB. Update the hero SVG "~9 MB" to ~65 MB.
1 parent da244ee commit 49b6130

2 files changed

Lines changed: 38 additions & 17 deletions

File tree

README.md

Lines changed: 37 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
<h3>The local-first data studio with a built-in AI assistant.</h3>
66

7-
<p><b>Duckle</b> is an open-source desktop ETL / ELT studio. Drag a pipeline onto the canvas, describe what you need in plain English to <b>Duckie</b> (the on-device AI assistant), and execute at native speed through DuckDB. 290+ connectors, 50+ transforms, a built-in scheduler, and a chat assistant that runs entirely on your CPU. Ships as a ~30 MB desktop app. No cloud, no servers, no lock-in.</p>
7+
<p><b>Duckle</b> is an open-source desktop ETL / ELT studio. Drag a pipeline onto the canvas, describe what you need in plain English to <b>Duckie</b> (the on-device AI assistant), and execute at native speed through DuckDB. 290+ connectors, 50+ transforms, a built-in scheduler, and a chat assistant that runs entirely on your CPU. Ships as a ~65 MB single-file desktop app. No cloud, no servers, no lock-in.</p>
88

99
<p>
1010
<img alt="status" src="https://img.shields.io/badge/status-beta-3b82f6"/>
@@ -48,7 +48,7 @@
4848
- [Workspace + Git flow](#workspace-and-git-flow)
4949
- [Schedules](#schedules-and-triggers)
5050
- [Server deployment](#server-deployment-build-pipeline)
51-
- [MCP server (LLM integration)](#mcp-server-connect-any-llm-to-duckle)
51+
- [MCP server (Claude / LLM integration)](#mcp-server-connect-claude-or-any-llm-to-duckle)
5252
- [Connection management](#connection-management)
5353
- [Context variables](#context-variables)
5454

@@ -102,7 +102,7 @@ Three things make Duckle different from the heavyweights and the toy ETL tools:
102102

103103
1. **An AI assistant that ships in the box.** Describe the pipeline you want in English; Duckie writes the JSON and drops it onto the canvas. The model runs locally - no API key, no telemetry, no cloud round-trip.
104104
2. **290+ connectors at install time.** Files, lakehouses, SQL databases, warehouses, NoSQL, vector DBs, streaming brokers, SaaS REST/GraphQL APIs, even FTP and IMAP - working today, not coming-soon.
105-
3. **A self-contained binary you can audit.** ~30 MB download. Engines install on first launch. Workspaces are plain files in a folder you choose. Diff them, branch them, ship them.
105+
3. **A self-contained binary you can audit.** ~65 MB download. Engines install on first launch. Workspaces are plain files in a folder you choose. Diff them, branch them, ship them.
106106

107107
<div align="center">
108108
<img src="docs/assets/flow.svg" alt="Sources flow through 50+ transforms into files, databases, object storage, vector stores, and AI" width="100%"/>
@@ -136,7 +136,7 @@ The sidebar on the right is **Duckie AI Assistant** - powered by **Qwen 2.5 Code
136136
|---|---|
137137
| **Visual, never opaque** | The canvas compiles to SQL you can read, and every node has a live preview tab. No black box. |
138138
| **Local-first AI** | An assistant that runs on your laptop without an API key. Your prompts, your data, your machine. |
139-
| **Compact binary, no bundled DB** | ~30 MB app. DuckDB downloads on first launch with a guided step. AI engine is opt-in. |
139+
| **Single-file binary, no bundled DB** | ~65 MB app (it embeds the headless runner + MCP server). DuckDB downloads on first launch with a guided step. AI engine is opt-in. |
140140
| **Native speed** | Execution runs through DuckDB: vectorized, columnar, local. A clean-and-export job that crawls in a spreadsheet finishes in milliseconds. |
141141
| **Git-friendly by design** | Pipelines, connections, contexts, and routines persist as plain files in a folder you pick. Diff them, branch them, review them. |
142142
| **290+ connectors that work** | Files, databases, warehouses, lakehouses, object stores, SaaS APIs, NoSQL, streaming brokers, vector DBs, FTP, IMAP, SMTP. Each is covered by tests. |
@@ -399,7 +399,7 @@ Pick the binary for your OS from the [latest release](https://github.com/SouravR
399399

400400
The single-file binary above is all you need for **Build Pipeline** too: the headless runner is embedded into the app at build time, and exporting a pipeline produces ONE self-contained executable (the engine, the DuckDB CLI, any needed extensions, and the resolved pipeline are all inside that one file). Copy that single file to your server and run or schedule it - no separate runner download required.
401401

402-
The binary is ~30 MB (Linux ~30, macOS ~24, Windows ~28). On first launch you'll be guided through downloading two engines into your app-data directory:
402+
The binary is ~55-78 MB depending on platform (it embeds the headless runner and the bundled MCP server). On first launch you'll be guided through downloading two engines into your app-data directory:
403403

404404
| Engine | Size | Required? | What it powers |
405405
|---|---|---|---|
@@ -719,18 +719,39 @@ duckle-runner --pipeline /path/to/pipeline.json [--workspace /path/to/workspace]
719719

720720
---
721721

722-
## MCP server (connect any LLM to Duckle)
722+
## MCP server (connect Claude or any LLM to Duckle)
723723

724-
`duckle-mcp` is a [Model Context Protocol](https://modelcontextprotocol.io)
725-
server, so any MCP client - Claude Desktop, Claude Code, or any other LLM agent -
726-
can drive Duckle directly. It speaks JSON-RPC over stdio and reuses the DuckDB
727-
engine in-process (no GUI, no Node runtime).
724+
<p align="center"><img src="docs/assets/mcp-claude-banner.svg" alt="Connect Duckle to Claude via MCP" width="92%"/></p>
728725

729-
The LLM can: browse the full component catalog and per-component property
730-
schemas, **generate a pipeline straight into a working directory you choose**,
731-
validate it (compile without running), run it headlessly, read existing
732-
pipelines and their run logs, build a standalone artifact, and manage saved
733-
connections.
726+
Duckle ships its own [Model Context Protocol](https://modelcontextprotocol.io)
727+
server, so Claude (or any MCP client - Claude Desktop, Claude Code, Cursor, or
728+
any other LLM agent) can drive Duckle directly: browse the full component catalog
729+
and per-component property schemas, **generate a pipeline straight into a working
730+
directory you choose**, validate it (compile without running), run it headlessly,
731+
read existing pipelines and their run logs, build a standalone artifact, and
732+
manage saved connections.
733+
734+
### Connect in one click (recommended)
735+
736+
The MCP server is **bundled inside the app** - there is nothing extra to install.
737+
In the designer, click **Connect to Claude** in the top bar to open the connector
738+
popup, then pick your client:
739+
740+
- **Connect to Claude Code** - registers the `duckle` server for you (runs
741+
`claude mcp add` under the hood).
742+
- **Add to Claude Desktop** / **Add to Cursor** - writes the `duckle` entry into
743+
that client's config, with the resolved engine paths filled in (both the
744+
Microsoft Store / MSIX and standalone Claude Desktop layouts are handled).
745+
- Or copy the command / config for any other MCP client.
746+
747+
Restart the AI client, then try *"Use duckle to list the available components"*
748+
to confirm the connection.
749+
750+
### Manual / headless
751+
752+
For a build-from-source or server setup, point any client at the `duckle-mcp`
753+
binary directly. It speaks JSON-RPC over stdio and reuses the DuckDB engine
754+
in-process (no GUI, no Node runtime).
734755

735756
```bash
736757
cargo build -p duckle-mcp --release # target/release/duckle-mcp
@@ -942,7 +963,7 @@ No - Duckle downloads it for you on first launch. The download is ~30 MB and inc
942963
<details>
943964
<summary><b>How big is the binary, exactly?</b></summary>
944965

945-
About 27-30 MB depending on platform (Linux 30 MB, macOS 24 MB, Windows 28 MB). The engines aren't statically linked - DuckDB (~50 MB with extensions) and the Duckie LLM (~1.1 GB for the Qwen GGUF) both download on first launch with a guided installer into your app-data folder. So the actual app download stays small, updates stay fast, and engines update independently.
966+
About 55-78 MB depending on platform (macOS ~54-67, Windows ~59-68, Linux ~66-78); it embeds the headless runner and the MCP server. The engines aren't statically linked - DuckDB (~50 MB with extensions) and the Duckie LLM (~1.1 GB for the Qwen GGUF) both download on first launch with a guided installer into your app-data folder, so they update independently of the app.
946967

947968
</details>
948969

docs/assets/hero.svg

Lines changed: 1 addition & 1 deletion
Loading

0 commit comments

Comments
 (0)