mcp-server-motherduck

Official

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Integrations

  • Allows access to data stored in Amazon S3 through MotherDuck's cloud storage integrations

  • Integrates with local DuckDB to provide SQL analytics capabilities and allow querying data from local databases

MotherDuck MCP サーバー

MotherDuck とローカル DuckDB を統合し、Claude に SQL 分析機能を提供する MCP サーバー実装。

特徴

  • ハイブリッド実行:クラウドベースのMotherDuckとローカルDuckDBの両方からデータをクエリする
  • クラウドストレージ統合: MotherDuckの統合により、Amazon S3やその他のクラウドストレージに保存されたデータにアクセスできます。
  • データ共有: データベースを作成して共有する
  • SQL分析: DuckDBのSQL方言を使用して、Claudeから直接任意のサイズのデータをクエリします。
  • サーバーレスアーキテクチャ: インスタンスやクラスターを構成することなく分析を実行

コンポーネント

プロンプト

サーバーは 1 つのプロンプトを提供します:

  • duckdb-motherduck-initial-prompt : DuckDB または MotherDuck への接続を初期化し、操作を開始するためのプロンプト

ツール

サーバーは次の 1 つのツールを提供します。

  • query : MotherDuck/DuckDBデータベースに対してSQLクエリを実行する
    • 入力:
      • query (文字列、必須): 実行するSQLクエリ

DuckDB と MotherDuck の両方とのすべてのやり取りは、SQL クエリの記述を通じて行われます。

はじめる

前提条件

  • MotherDuckアカウント( motherduck.comでサインアップ)
  • MotherDuckアクセストークン
  • uvがインストールされている場合は、 pip install uvまたはbrew install uvを使用してインストールできます。

MotherDuck MCP を Claude Desktop と併用する予定の場合は、Claude Desktop もインストールする必要があります。

MotherDuckトークンの設定

  1. MotherDuckアカウントに登録する
  2. MotherDuck UI経由でアクセストークンを生成する
  3. 構成で使用するためにトークンを安全に保存します

Claude Desktopでの使用

  1. まだインストールしていない場合は、 claude.ai/ download から Claude Desktop をインストールしてください。
  2. Claude Desktop 構成ファイルを開きます。
  • すぐにアクセスしたり、初めて作成したりするには、Claude デスクトップ アプリを開き、[設定] を選択して [開発者] タブをクリックし、最後に [構成の編集] ボタンをクリックします。
  • claude_desktop_config.jsonに次の構成を追加します。
{ "mcpServers": { "mcp-server-motherduck": { "command": "uvx", "args": [ "mcp-server-motherduck", "--db-path", "md:", "--motherduck-token", "<YOUR_MOTHERDUCK_TOKEN_HERE>" ], } } }

重要な注意事項:

  • YOUR_MOTHERDUCK_TOKEN_HEREを実際のMotherDuckトークンに置き換えます。
  • YOUR_HOME_FOLDER_PATHホームディレクトリへのパスに置き換えます(DuckDBのファイル操作に必要です)。例えばmacOSでは、 /Users/your_usernameとなります。
  • DuckDB が正しく機能するには、 HOME環境変数が必要です。

クエリの例

設定が完了したら、Claude に次のようなクエリを実行するように依頼できます。

  • 「MotherDuckで新しいデータベースとテーブルを作成する」
  • 「ローカルCSVファイルからデータをクエリする」
  • 「ローカルの DuckDB データベースのデータを MotherDuck のテーブルに結合する」
  • 「Amazon S3 に保存されたデータを分析する」

テスト

サーバーはClaude DesktopやCursorなどのツールで実行できるように設計されていますが、テスト目的で手動で起動することもできます。手動でサーバーをテストする場合は、 --db-pathパラメータを使用して接続するデータベースを指定できます。

  1. デフォルトのMotherDuckデータベース:
    • デフォルトの MotherDuck データベースに接続するには、 --motherduck-tokenパラメータを使用して認証トークンを渡す必要があります。
    uvx mcp-server-motherduck --db-path md: --motherduck-token <your_motherduck_token>
  2. 特定のMotherDuckデータベース:
    uvx mcp-server-motherduck --db-path md:your_database_name --motherduck-token <your_motherduck_token>
  3. ローカルDuckDBデータベース:
    uvx mcp-server-motherduck --db-path /path/to/your/local.db
  4. インメモリデータベース:
    uvx mcp-server-motherduck --db-path :memory:

データベース パスを指定せずにmotherduck_token環境変数を設定した場合、サーバーは自動的にデフォルトの MotherDuck データベース ( md: :) に接続します。

SSEモードで実行

次のコマンドを実行すると、 supergatewayを使用して SSE モードでサーバーを実行することもできます。

npx -y supergateway --stdio "uvx mcp-server-motherduck --db-path md: --motherduck-token <your_motherduck_token>"

また、Claude Desktop、Cursor などのクライアントをこのエンドポイントにポイントすることもできます。

トラブルシューティング

  • 接続の問題が発生した場合は、MotherDuckトークンが正しいことを確認してください
  • ローカルファイルアクセスの問題の場合は、 --home-dirパラメータが正しく設定されていることを確認してください。
  • uvxコマンドがPATHで使用可能であることを確認してください
  • spawn uvx ENOENTエラーが発生した場合は、 uvxへのフルパス( which uvxの出力)を指定してみてください。
  • 以前のバージョンv0.4.0では環境変数を使用していましたが、現在はパラメータを使用しています。

ライセンス

このMCPサーバーはMITライセンスに基づいてライセンスされています。つまり、MITライセンスの条件に従って、ソフトウェアを自由に使用、改変、配布することができます。詳細については、プロジェクトリポジトリのLICENSEファイルをご覧ください。

ID: 15mdwrzibz