MotherDuck
chính thứcTruy vấn và phân tích dữ liệu với MotherDuck và DuckDB cục bộ
Bạn có thể làm gì với MotherDuck MCP?
-
Chạy phân tích SQL — Yêu cầu trợ lý của bạn truy vấn các tệp DuckDB cục bộ, cơ sở dữ liệu trong bộ nhớ hoặc MotherDuck bằng
execute_queryvới hỗ trợ đầy đủ cú pháp SQL của DuckDB. -
Khám phá cấu trúc cơ sở dữ liệu — Yêu cầu trợ lý của bạn liệt kê các cơ sở dữ liệu, bảng và cột bằng
list_databases,list_tablesvàlist_columnsđể hiểu lược đồ dữ liệu của bạn. -
Chuyển đổi kết nối cơ sở dữ liệu — Hướng dẫn trợ lý của bạn chuyển đổi giữa các tệp cục bộ, cơ sở dữ liệu lưu trữ trên S3 hoặc MotherDuck ngay lập tức qua
switch_database_connection(yêu cầu cờ--allow-switch-databases). -
Ghi và sửa đổi dữ liệu — Bật chế độ đọc-ghi để cho phép trợ lý của bạn chèn, cập nhật hoặc xóa bản ghi trực tiếp trong các cơ sở dữ liệu đã kết nối.
-
Nhập và xuất dữ liệu — Sử dụng máy chủ để truy vấn trên các cơ sở dữ liệu cục bộ và từ xa, nhập dữ liệu từ hoặc xuất dữ liệu đến hệ thống tệp cục bộ của bạn.
Máy chủ MCP được lưu trữ
npx add-mcp 'https://api.motherduck.com/mcp'Cài vào Claude Code, Codex, Cursor và nhiều công cụ khác
Tài liệu
DuckDB / MotherDuck Local MCP Server
Phân tích SQL và kỹ thuật dữ liệu cho Trợ lý AI và IDE.
Kết nối trợ lý AI với dữ liệu của bạn bằng công cụ SQL phân tích mạnh mẽ của DuckDB. Hỗ trợ kết nối đến các tệp DuckDB cục bộ, cơ sở dữ liệu trong bộ nhớ, cơ sở dữ liệu lưu trữ trên S3 và MotherDuck. Cho phép thực thi các truy vấn SQL đọc và ghi, duyệt danh mục cơ sở dữ liệu và chuyển đổi giữa các kết nối cơ sở dữ liệu khác nhau một cách linh hoạt.
Đang tìm kiếm máy chủ MCP từ xa được quản lý hoàn toàn cho MotherDuck? → Truy cập tài liệu MotherDuck Remote MCP
Remote MCP so với Local MCP
| Remote MCP | Local MCP (kho lưu trữ này) | |
|---|---|---|
| Lưu trữ | Được lưu trữ bởi MotherDuck | Chạy cục bộ/tự lưu trữ |
| Thiết lập | Không cần thiết lập | Yêu cầu cài đặt cục bộ |
| Truy cập | Hỗ trợ đọc-ghi | Hỗ trợ đọc-ghi |
| Hệ thống tệp cục bộ | - | Truy vấn trên cơ sở dữ liệu cục bộ và từ xa, nhập dữ liệu từ / xuất dữ liệu ra hệ thống tệp cục bộ |
Bắt đầu nhanh
Điều kiện tiên quyết: Cài đặt uv qua pip install uv hoặc brew install uv
Kết nối đến DuckDB trong bộ nhớ (Chế độ Dev)
{
"mcpServers": {
"DuckDB (in-memory, r/w)": {
"command": "uvx",
"args": ["mcp-server-motherduck", "--db-path", ":memory:", "--read-write", "--allow-switch-databases"]
}
}
}
Linh hoạt hoàn toàn không có rào cản — truy cập đọc-ghi và khả năng chuyển sang bất kỳ cơ sở dữ liệu nào (tệp cục bộ, S3 hoặc MotherDuck) trong thời gian chạy.
Kết nối đến tệp DuckDB cục bộ ở chế độ chỉ đọc
{
"mcpServers": {
"DuckDB (read-only)": {
"command": "uvx",
"args": ["mcp-server-motherduck", "--db-path", "/absolute/path/to/your.duckdb"]
}
}
}
Kết nối đến một tệp DuckDB cụ thể ở chế độ chỉ đọc. Không giữ khóa tệp, do đó thuận tiện khi sử dụng cùng với kết nối ghi đến cùng tệp DuckDB. Bạn cũng có thể kết nối đến các tệp DuckDB từ xa trên S3 bằng s3://bucket/path.duckdb — xem Biến môi trường để xác thực S3. Nếu bạn đang cân nhắc truy cập của bên thứ ba vào MCP, hãy xem Bảo mật cho sản xuất.
Kết nối đến MotherDuck ở chế độ đọc-ghi
{
"mcpServers": {
"MotherDuck (local, r/w)": {
"command": "uvx",
"args": ["mcp-server-motherduck", "--db-path", "md:", "--read-write"],
"env": {
"motherduck_token": "<YOUR_MOTHERDUCK_TOKEN>"
}
}
}
}
Xem Tham số dòng lệnh để biết thêm tùy chọn, Bảo mật cho sản xuất để biết hướng dẫn triển khai và Khắc phục sự cố nếu bạn gặp sự cố.
Thiết lập máy khách
| Máy khách | Vị trí cấu hình | Cài đặt một cú nhấp chuột |
|---|---|---|
| Claude Desktop | Cài đặt → Nhà phát triển → Chỉnh sửa cấu hình | .mcpb (Gói MCP) |
| Claude Code | Sử dụng lệnh CLI bên dưới | - |
| Codex CLI | Sử dụng lệnh CLI bên dưới hoặc ~/.codex/config.toml | - |
| Gemini CLI | Sử dụng lệnh CLI bên dưới hoặc ~/.gemini/settings.json | - |
| Cursor | Cài đặt → MCP → Thêm máy chủ MCP toàn cục mới | |
| VS Code | Ctrl+Shift+P → "Preferences: Open User Settings (JSON)" | |
| Kiro | ~/.kiro/settings/mcp.json (toàn cục) hoặc .kiro/settings/mcp.json (dự án) |
Bất kỳ máy khách tương thích MCP nào cũng có thể sử dụng máy chủ này. Thêm cấu hình JSON từ Bắt đầu nhanh vào tệp cấu hình MCP của máy khách. Tham khảo tài liệu của máy khách để biết vị trí tệp cấu hình.
Lệnh CLI Claude Code
DuckDB trong bộ nhớ (Chế độ Dev):
claude mcp add --scope user duckdb --transport stdio -- uvx mcp-server-motherduck --db-path :memory: --read-write --allow-switch-databases
DuckDB cục bộ (Chỉ đọc):
claude mcp add --scope user duckdb --transport stdio -- uvx mcp-server-motherduck --db-path /absolute/path/to/db.duckdb
MotherDuck (Đọc-ghi):
claude mcp add --scope user motherduck --transport stdio --env motherduck_token=YOUR_TOKEN -- uvx mcp-server-motherduck --db-path md: --read-write
Lệnh CLI Codex
DuckDB trong bộ nhớ (Chế độ Dev):
codex mcp add duckdb -- uvx mcp-server-motherduck --db-path :memory: --read-write --allow-switch-databases
DuckDB cục bộ (Chỉ đọc):
codex mcp add duckdb -- uvx mcp-server-motherduck --db-path /absolute/path/to/db.duckdb
MotherDuck (Đọc-ghi):
codex mcp add motherduck --env motherduck_token=YOUR_TOKEN -- uvx mcp-server-motherduck --db-path md: --read-write
Lệnh CLI Gemini
DuckDB trong bộ nhớ (Chế độ Dev):
gemini mcp add -s user duckdb uvx mcp-server-motherduck --db-path :memory: --read-write --allow-switch-databases
DuckDB cục bộ (Chỉ đọc):
gemini mcp add -s user duckdb uvx mcp-server-motherduck --db-path /absolute/path/to/db.duckdb
MotherDuck (Đọc-ghi):
gemini mcp add -s user -e motherduck_token=YOUR_TOKEN motherduck uvx mcp-server-motherduck --db-path md: --read-write
Cấu hình JSON thủ công Kiro
Thêm nội dung sau vào tệp cấu hình MCP của Kiro (~/.kiro/settings/mcp.json cho toàn cục hoặc .kiro/settings/mcp.json cho phạm vi dự án). Xem tài liệu MCP của Kiro để biết thêm chi tiết.
DuckDB trong bộ nhớ (Chế độ Dev):
{
"mcpServers": {
"DuckDB (in-memory, r/w)": {
"command": "uvx",
"args": ["mcp-server-motherduck", "--db-path", ":memory:", "--read-write", "--allow-switch-databases"]
}
}
}
MotherDuck (Đọc-ghi):
{
"mcpServers": {
"MotherDuck (local, r/w)": {
"command": "uvx",
"args": ["mcp-server-motherduck", "--db-path", "md:", "--read-write"],
"env": {
"motherduck_token": "<YOUR_MOTHERDUCK_TOKEN>"
}
}
}
}
Công cụ
| Công cụ | Mô tả | Đầu vào bắt buộc | Đầu vào tùy chọn |
|---|---|---|---|
execute_query | Thực thi truy vấn SQL (phương ngữ DuckDB) | sql | - |
list_databases | Liệt kê tất cả cơ sở dữ liệu (hữu ích cho MotherDuck hoặc nhiều DB được đính kèm) | - | - |
list_tables | Liệt kê bảng và chế độ xem | - | database, schema |
list_columns | Liệt kê cột của bảng/chế độ xem | table | database, schema |
switch_database_connection* | Chuyển sang cơ sở dữ liệu khác | path | create_if_not_exists |
*Yêu cầu cờ --allow-switch-databases
Tất cả công cụ trả về JSON. Kết quả được giới hạn ở 1024 hàng / 50.000 ký tự theo mặc định (có thể cấu hình qua --max-rows, --max-chars).
Bảo mật cho sản xuất
Khi cấp quyền truy cập cho bên thứ ba vào máy chủ MCP tự lưu trữ, chế độ chỉ đọc một mình là không đủ — nó vẫn cho phép truy cập vào hệ thống tệp cục bộ, thay đổi cài đặt DuckDB và các thao tác nhạy cảm tiềm ẩn khác.
Đối với triển khai sản xuất với quyền truy cập của bên thứ ba, chúng tôi khuyên dùng MotherDuck Remote MCP — không cần thiết lập, hỗ trợ đọc-ghi và được lưu trữ bởi MotherDuck.
Tự lưu trữ MotherDuck MCP: Fork kho lưu trữ này và tùy chỉnh khi cần. Sử dụng tài khoản dịch vụ với mã thông báo mở rộng đọc và bật chế độ SaaS để hạn chế truy cập tệp cục bộ.
Tự lưu trữ DuckDB MCP: Sử dụng --init-sql để áp dụng cài đặt bảo mật. Xem hướng dẫn Bảo mật DuckDB để biết các tùy chọn có sẵn.
Docker
Xây dựng và chạy máy chủ với Streamable HTTP trên cổng 8000 (mặc định là DuckDB trong bộ nhớ):
docker build -t mcp-server-motherduck .
docker run --rm -p 8000:8000 mcp-server-motherduck
Kết nối đến MotherDuck bằng cách truyền mã thông báo và ghi đè lệnh:
docker run --rm -p 8000:8000 \
-e motherduck_token="$MOTHERDUCK_TOKEN" \
mcp-server-motherduck --transport http --db-path md:
Điểm cuối MCP có sẵn tại http://localhost:8000/mcp. Các cờ CLI và biến env bên dưới vẫn được áp dụng.
Tham số dòng lệnh
| Tham số | Mặc định | Mô tả |
|---|---|---|
--db-path | :memory: | Đường dẫn cơ sở dữ liệu: tệp cục bộ (đường dẫn tuyệt đối), md: (MotherDuck) hoặc URL s3:// |
--motherduck-token | biến env motherduck_token | Mã thông báo truy cập MotherDuck |
--read-write | False | Bật quyền truy cập ghi |
--motherduck-saas-mode | False | Chế độ SaaS MotherDuck (hạn chế truy cập cục bộ) |
--allow-switch-databases | False | Bật công cụ switch_database_connection |
--max-rows | 1024 | Số hàng tối đa được trả về |
--max-chars | 50000 | Số ký tự tối đa được trả về |
--query-timeout | -1 | Thời gian chờ truy vấn tính bằng giây (-1 = tắt) |
--init-sql | None | SQL để thực thi khi khởi động |
--motherduck-connection-parameters | session_hint=mcp&dbinstance_inactivity_ttl=0s | Tham số chuỗi kết nối MotherDuck bổ sung (cặp key=value được phân tách bằng &) |
--ephemeral-connections | True | Sử dụng kết nối tạm thời cho tệp cục bộ chỉ đọc |
--transport | stdio | Loại truyền tải: stdio hoặc http |
--stateless-http | False | Chỉ để tương thích giao thức (ví dụ: với AWS Bedrock AgentCore Runtime). Máy chủ vẫn duy trì trạng thái toàn cục qua DatabaseClient dùng chung. |
--port | 8000 | Cổng cho truyền tải HTTP |
--host | 127.0.0.1 | Máy chủ cho truyền tải HTTP |
Biến môi trường
| Biến | Mô tả |
|---|---|
motherduck_token hoặc MOTHERDUCK_TOKEN | Mã thông báo truy cập MotherDuck (thay thế cho --motherduck-token) |
HOME | Được DuckDB sử dụng cho tiện ích mở rộng và cấu hình. Ghi đè bằng --home-dir nếu chưa được đặt. |
AWS_ACCESS_KEY_ID | Khóa truy cập AWS cho kết nối cơ sở dữ liệu S3 |
AWS_SECRET_ACCESS_KEY | Khóa bí mật AWS cho kết nối cơ sở dữ liệu S3 |
AWS_SESSION_TOKEN | Mã thông báo phiên AWS cho thông tin xác thực tạm thời (hồ sơ IAM, SSO, hồ sơ phiên bản EC2) |
AWS_DEFAULT_REGION | Vùng AWS cho kết nối S3 |
AWS_ENDPOINT | Điểm cuối AWS cho kết nối S3 |
Khắc phục sự cố
spawn uvx ENOENT: Chỉ định đường dẫn đầy đủ đếnuvx(chạywhich uvxđể tìm)- Tệp bị khóa: Đảm bảo
--ephemeral-connectionsđược bật (mặc định: true) và bạn không kết nối ở chế độ đọc-ghi
Tài nguyên
- Tài liệu MotherDuck MCP
- Close the Loop: Faster Data Pipelines with MCP, DuckDB & AI (Blog)
- Faster Data Pipelines with MCP and DuckDB (YouTube)
Phát triển
Để chạy từ mã nguồn:
{
"mcpServers": {
"Local DuckDB (Dev)": {
"command": "uv",
"args": ["--directory", "/path/to/mcp-server-motherduck", "run", "mcp-server-motherduck", "--db-path", "md:"],
"env": {
"motherduck_token": "<YOUR_MOTHERDUCK_TOKEN>"
}
}
}
}
Quy trình phát hành
- Chạy GitHub Action
Release New Version - Nhập phiên bản ở định dạng
MAJOR.MINOR.PATCH - Quy trình làm việc tăng phiên bản, xuất bản lên PyPI/đăng ký MCP và tạo bản phát hành GitHub với gói MCPB
Giấy phép
Giấy phép MIT - xem tệp LICENSE.
mcp-name: io.github.motherduckdb/mcp-server-motherduck