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 Mother Duck MCP?
- Chạy truy vấn SQL với DuckDB hoặc MotherDuck — yêu cầu trợ lý của bạn thực thi SQL phân tích qua
execute_query, hỗ trợ thao tác đọc và tùy chọn ghi. - Khám phá lược đồ cơ sở dữ liệu — liệt kê các cơ sở dữ liệu có sẵn bằng
list_databases, sau đó đi sâu vào các bảng và cột bằnglist_tablesvàlist_columns. - Chuyển đổi giữa các kết nối cơ sở dữ liệu — sử dụng
switch_database_connectionđể di chuyển giữa các tệp DuckDB cục bộ, phiên bản trong bộ nhớ, cơ sở dữ liệu lưu trữ trên S3 hoặc MotherDuck trong thời gian chạy. - Kết nối MotherDuck để phân tích đám mây — trỏ máy chủ tới
md:với mã thông báo để truy vấn và quản lý trực tiếp các cơ sở dữ liệu MotherDuck. - Kiểm soát kích thước đầu ra truy vấn — cấu hình
--max-rowsvà--max-charsđể giới hạn tập kết quả trả về cho trợ lý.
Tài liệu
Máy chủ MCP cục bộ DuckDB / MotherDuck
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 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 đọc và ghi SQL, 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.
Bạn đang tìm kiếm một máy chủ MCP từ xa được quản lý đầy đủ cho MotherDuck? → Đi tới tài liệu MCP từ xa của MotherDuck
MCP từ xa so với MCP cục bộ
| MCP từ xa | MCP cục bộ (repo 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ả 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ộ |
📝 Đang chuyển từ v0.x?
- Mặc định chỉ đọc: Máy chủ hiện chạy ở chế độ chỉ đọc theo mặc định. Thêm
--read-writeđể kích hoạt quyền ghi. Xem Bảo mật cho Sản xuất.- Cơ sở dữ liệu mặc định đã thay đổi:
--db-pathmặc định đã thay đổi từmd:thành:memory:. Thêm--db-path md:một cách rõ ràng cho MotherDuck.- Chỉ đọc MotherDuck yêu cầu mã thông báo đọc mở rộng: Kết nối MotherDuck ở chế độ chỉ đọc yêu cầu mã thông báo đọc mở rộng. Mã thông báo thông thường yêu cầu
--read-write.
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ế độ phát triển)
{
"mcpServers": {
"DuckDB (in-memory, r/w)": {
"command": "uvx",
"args": ["mcp-server-motherduck", "--db-path", ":memory:", "--read-write", "--allow-switch-databases"]
}
}
}
Hoàn toàn linh hoạt không có rào cản — quyền đọc-ghi và khả năng chuyển đổi 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. Sẽ không giữ khóa tệp, do đó thuận tiện khi sử dụng cùng với một 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 cách sử dụng s3://bucket/path.duckdb — xem Biến môi trường để biết xác thực S3. Nếu bạn đang cân nhắc quyền 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 để được hướng dẫn triển khai và Khắc phục sự cố nếu bạn gặp vấn đề.
Thiết lập máy khách
| Máy khách | Vị trí cấu hình | Cài đặt một lần nhấp |
|---|---|---|
| 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 các lệnh CLI bên dưới | - |
| Codex CLI | Sử dụng các lệnh CLI bên dưới hoặc ~/.codex/config.toml | - |
| Gemini CLI | Sử dụng các 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 → "Tùy chọn: Mở Cài đặt Người dùng (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ế độ phát triển):
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ế độ phát triển):
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ế độ phát triển):
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 cho Kiro
Thêm phần sau vào tệp cấu hình MCP Kiro của bạn (~/.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 Kiro để biết thêm chi tiết.
DuckDB trong bộ nhớ (Chế độ phát triển):
{
"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 đính kèm) | - | - |
list_tables | Liệt kê bảng và view | - | database, schema |
list_columns | Liệt kê cột của một bảng/view | table | database, schema |
switch_database_connection* | Chuyển đổi 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 cho bên thứ ba quyền truy cập vào máy chủ MCP tự lưu trữ, chỉ chế độ chỉ đọc 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 hoạt động nhạy cảm tiềm ẩn khác.
Đối với triển khai sản xuất có quyền truy cập của bên thứ ba, chúng tôi khuyến nghị MCP từ xa MotherDuck — không cần thiết lập, có khả năng đọc-ghi và được lưu trữ bởi MotherDuck.
Tự lưu trữ MCP MotherDuck: Fork repo 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 đọc mở rộng và kích hoạt chế độ SaaS để hạn chế truy cập tệp cục bộ.
Tự lưu trữ MCP DuckDB: 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 HTTP có thể truyền trực tuyến 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 môi trường 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ộ (tuyệt đối), md: (MotherDuck), hoặc URL s3:// |
--motherduck-token | biến môi trường motherduck_token | Mã thông báo truy cập MotherDuck |
--read-write | False | Kích hoạt quyền ghi |
--motherduck-saas-mode | False | Chế độ SaaS MotherDuck (hạn chế truy cập cục bộ) |
--allow-switch-databases | False | Kích hoạt công cụ switch_database_connection |
--max-rows | 1024 | Số hàng tối đa trả về |
--max-chars | 50000 | Số ký tự tối đa trả về |
--query-timeout | -1 | Thời gian chờ truy vấn tính bằng giây (-1 = vô hiệu hóa) |
--init-sql | None | SQL sẽ 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 thông qua DatabaseClient được chia sẻ. |
--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 (vai trò 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 nó)- 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 MCP MotherDuck
- Đóng vòng lặp: Đường ống dữ liệu nhanh hơn với MCP, DuckDB & AI (Blog)
- Đường ống dữ liệu nhanh hơn với MCP và 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 theo định dạng
MAJOR.MINOR.PATCH - Quy trình làm việc sẽ tăng phiên bản, xuất bản lên PyPI/sổ đă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