MotherDuck

chính thức

Truy 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ằng list_tableslist_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-rows--max-chars để giới hạn tập kết quả trả về cho trợ lý.

Tài liệu

MotherDuck / DuckDB Local MCP Server

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ừ xaMCP cục bộ (repo này)
Lưu trữĐược lưu trữ bởi MotherDuckChạy cục bộ/tự lưu trữ
Thiết lậpKhông cần thiết lậpYêu cầu cài đặt cục bộ
Truy cậpHỗ trợ đọc-ghiHỗ 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-path mặ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áchVị trí cấu hìnhCài đặt một lần nhấp
Claude DesktopCài đặt → Nhà phát triển → Chỉnh sửa cấu hình.mcpb (Gói MCP)
Claude CodeSử dụng các lệnh CLI bên dưới-
Codex CLISử dụng các lệnh CLI bên dưới hoặc ~/.codex/config.toml-
Gemini CLISử dụng các lệnh CLI bên dưới hoặc ~/.gemini/settings.json-
CursorCài đặt → MCP → Thêm máy chủ MCP toàn cục mớiInstall in Cursor
VS CodeCtrl+Shift+P → "Tùy chọn: Mở Cài đặt Người dùng (JSON)"Install with UV in VS Code
Kiro~/.kiro/settings/mcp.json (toàn cục) hoặc .kiro/settings/mcp.json (dự án)Add to Kiro

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_queryThực thi truy vấn SQL (phương ngữ DuckDB)sql-
list_databasesLiệt kê tất cả cơ sở dữ liệu (hữu ích cho MotherDuck hoặc nhiều DB đính kèm)--
list_tablesLiệt kê bảng và view-database, schema
list_columnsLiệt kê cột của một bảng/viewtabledatabase, schema
switch_database_connection*Chuyển đổi sang cơ sở dữ liệu khácpathcreate_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 địnhMô 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-tokenbiến môi trường motherduck_tokenMã thông báo truy cập MotherDuck
--read-writeFalseKích hoạt quyền ghi
--motherduck-saas-modeFalseChế độ SaaS MotherDuck (hạn chế truy cập cục bộ)
--allow-switch-databasesFalseKích hoạt công cụ switch_database_connection
--max-rows1024Số hàng tối đa trả về
--max-chars50000Số ký tự tối đa trả về
--query-timeout-1Thời gian chờ truy vấn tính bằng giây (-1 = vô hiệu hóa)
--init-sqlNoneSQL sẽ thực thi khi khởi động
--motherduck-connection-parameterssession_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-connectionsTrueSử dụng kết nối tạm thời cho tệp cục bộ chỉ đọc
--transportstdioLoại truyền tải: stdio hoặc http
--stateless-httpFalseChỉ để 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ẻ.
--port8000Cổng cho truyền tải HTTP
--host127.0.0.1Máy chủ cho truyền tải HTTP

Biến môi trường

BiếnMô tả
motherduck_token hoặc MOTHERDUCK_TOKENMã 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_IDKhóa truy cập AWS cho kết nối cơ sở dữ liệu S3
AWS_SECRET_ACCESS_KEYKhóa bí mật AWS cho kết nối cơ sở dữ liệu S3
AWS_SESSION_TOKENMã 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_REGIONVù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 đủ đến uvx (chạy which 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

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

  1. Chạy GitHub Action Release New Version
  2. Nhập phiên bản theo định dạng MAJOR.MINOR.PATCH
  3. 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