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文字/レスポンス(カスタマイズ可能)。 |
一般的な使用例フロー
- インストール
uv(Pythonパッケージマネージャ)–pip install uv。 - サーバー起動 1つのコマンドで開始、例:
これにより、アシスタントが読み書き可能なメモリ内DuckDBが起動します。uvx mcp-server-motherduck --db-path :memory: --read-write --allow-switch-databases - AIクライアントの設定 – READMEに示されたJSONスニペットをクライアントのMCP設定に追加。クライアントはstdioまたはHTTP経由でサーバーと通信します。
- クエリ実行 – アシスタントが
execute_queryツールを呼び出し、JSON形式の行を受け取り、データの反復処理、結合、可視化が可能になります。 - 本番環境 – 外部ユーザー向けには、READMEではMotherDuckのホスト型Remote MCPの使用を推奨。自己ホストサーバーは読み取り専用モード、サービスアカウントトークン、DuckDBの強化で保護することを推奨。
使い始め方(ステップバイステップ)
- 前提条件 –
uvをインストール。 - バックエンドの選択 – メモリ(
:memory:)、ローカルファイル(/path/to.db)、S3(s3://bucket/file.duckdb)、またはMotherDuck(md:)。 - 実行 – ローカルファイル、読み取り専用の例:
uvx mcp-server-motherduck --db-path /abs/path/to.db - クライアントに追加 – Claude Desktopの場合は提供された
.mcpbバンドルをダウンロード;Cursorの場合はインストールボタンをクリック;VS Codeの場合はUVインストールバッジを使用。 - クエリ実行 –
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駆動の対話が可能になります。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト