motherduckdb/mcp-server-motherduck

Local MCP server for DuckDB and MotherDuck

DuckDB / MotherDuck ローカル MCP サーバー – 速報

何であるか – AIアシスタントツール(Claude、Gemini、Cursorなど)で使用される MCP(Model-Chat-Protocol)に対応する、非常に小さな自己ホスト型サーバーです。DuckDB(高速で埋め込み可能な分析用SQLエンジン)をラップし、以下の対象に対してSQLクエリを実行できるようにします:

  • ローカルのDuckDBファイル、
  • メモリ内DuckDBインスタンス(開発に最適)、
  • S3に格納されたDuckDBファイル、または
  • MotherDuckクラウドデータベース(md:)。

AIにとっての重要性 – 現代のAIアシスタントは、質問への回答やコード生成に最新のデータが必要です。MCP経由でDuckDBを公開することで、アシスタントは通常のSQL(SELECT …)を発行し、チャットUIから離れることなくJSON形式の結果を受け取れます。


コア機能(READMEに記載)

機能 詳細
SQLエンジン DuckDBの分析用SQL方言を使用;読み取り・書き込みクエリをサポート。
複数のバックエンド ローカルファイル、メモリ内、S3ホスト型DuckDB、またはMotherDuck(md:)。
MCP互換性 MCP仕様を実装した任意のクライアント(Claude Desktop/Code、Gemini、Cursor、Codex、Kiroなど)と連携可能。
トランスポートオプション stdio(デフォルト、CLIベースのクライアント用)またはHTTP(--transport http)。
動的DB切り替え --allow-switch-databases を有効にすると、実行時中に基盤DBを変更可能。
セキュリティ制御 読み取り専用モード、オプションのトークンベースMotherDuck認証、SaaSモードフラグ、および --init-sql によるDuckDBレベルの強化。
Docker対応 公式Dockerfileあり;ポート8000で実行、認証情報を環境変数で指定可能。
ツール機能 組み込みのJSON返却ツール:execute_query、list_databases、list_tables、list_columns、switch_database_connection。
制限事項 デフォルト制限:1,024行/50,000文字/レスポンス(カスタマイズ可能)。

一般的な使用例フロー

  1. インストール uv(Pythonパッケージマネージャ)– pip install uv。
  2. サーバー起動 1つのコマンドで開始、例:
    uvx mcp-server-motherduck --db-path :memory: --read-write --allow-switch-databases
    
    これにより、アシスタントが読み書き可能なメモリ内DuckDBが起動します。
  3. AIクライアントの設定 – READMEに示されたJSONスニペットをクライアントのMCP設定に追加。クライアントはstdioまたはHTTP経由でサーバーと通信します。
  4. クエリ実行 – アシスタントが execute_query ツールを呼び出し、JSON形式の行を受け取り、データの反復処理、結合、可視化が可能になります。
  5. 本番環境 – 外部ユーザー向けには、READMEではMotherDuckのホスト型Remote MCPの使用を推奨。自己ホストサーバーは読み取り専用モード、サービスアカウントトークン、DuckDBの強化で保護することを推奨。

使い始め方(ステップバイステップ)

  1. 前提条件 – uv をインストール。
  2. バックエンドの選択 – メモリ(:memory:)、ローカルファイル(/path/to.db)、S3(s3://bucket/file.duckdb)、またはMotherDuck(md:)。
  3. 実行 – ローカルファイル、読み取り専用の例:
    uvx mcp-server-motherduck --db-path /abs/path/to.db
    
  4. クライアントに追加 – Claude Desktopの場合は提供された .mcpb バンドルをダウンロード;Cursorの場合はインストールボタンをクリック;VS Codeの場合はUVインストールバッジを使用。
  5. クエリ実行 – execute_query ツールを使用、例:{ "sql": "SELECT * FROM orders LIMIT 10" }。

セキュリティと本番環境のヒント(READMEより)

  • 読み取り専用モード はファイルシステムアクセスをブロックしません;第三者への公開にはRemote MCPを検討してください。
  • MotherDuckサービスアカウントトークン を 読み取りスケーリング と共に使用し、SaaSモード を有効にしてローカルファイルアクセスを制限。
  • 自己ホストDuckDBの場合、--init-sql にDuckDBのセキュリティ設定を指定(DuckDBドキュメント参照)。
  • Docker内で実行し、必要なポートのみ公開。

ライセンス

MIT – 使用、変更、再配布が自由です。


結論 – このリポジトリは、現代のAIアシスタントが標準MCPプロトコル経由でDuckDB(またはMotherDuck)をリアルタイムデータソースとして扱える軽量ブリッジを提供し、IDEやチャットツールでリアルタイムSQL駆動の対話が可能になります。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト