mcp-data-pipeline-connector について
組み込みの DuckDB を使い、CSV・JSON ファイル、PostgreSQL、REST API をクエリする MCP サーバーです。複数のデータソースを扱うチームやエージェント向けに、単一のコネクターで横断 SQL とスキーマ統一を提供します。
主な機能
- 01設定済みソースへの SQL クエリ
- 02ファイル・PostgreSQL・REST API の結合
- 03スキーマの自動検出
- 04REST レスポンスのキャッシュ
- 05ソース型の正規化
- 06組み込み DuckDB クエリエンジン
活用シーン
- 01売上 CSV と PostgreSQL テーブルを結合
- 02REST データとローカルファイルを同時に検索
- 03データソースのテーブルとスキーマを確認
- 04クエリを SELECT 文に制限
MCP 対応
データソースの接続・一覧表示、スキーマ確認、データのクエリや変換、ヘルスチェックを行う MCP ツールを公開します。データソースは YAML ファイルで設定します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP Data Pipeline Connector
npm mcp-data-pipeline-connector パッケージ
すべてのデータソースに対応する 1 つの MCP サーバーです。複数のデータソースをまたぐ SQL JOIN に対応し、外部クエリサービスは不要です。DuckDB はプロセス内に組み込まれて動作するため、CSV ファイルと Postgres テーブル、REST API のレスポンスを、すべてお使いのマシン上で単一のクエリにより結合できます。エージェントは、データソース固有の知識や複数の MCP サーバー設定を必要とせずに、データを扱えます。
ツールのリファレンス | 設定 | コントリビューション | トラブルシューティング
主な機能
- 統一されたクエリインターフェース:DuckDB を介して、複数のデータソースをまたぐ JOIN を含む、接続済みのすべてのデータソースに対する SQL を実行できます。
- 複数のデータソースタイプ:CSV/JSON ファイル、PostgreSQL データベース、REST API エンドポイントを 1 つのサーバーで扱えます。
- スキーマの自動検出:CSV のヘッダーと Postgres のメタデータから、カラム名と型を推定します。
- REST キャッシュ:重複した呼び出しを避けるため、設定可能な TTL で REST API のレスポンスをキャッシュします。
- スキーマの正規化:データソース固有の型を、標準の型(文字列、数値、日付、ブール値、JSON)にマッピングします。
- プロセス内クエリエンジン:DuckDB は組み込みで動作するため、別途クエリサービスをインストールしたり管理したりする必要はありません。
データソースごとに別々の MCP サーバーを使うより優れている理由
一般的な代替方法は、データソースごとに 1 つずつ MCP サーバーを実行することです。たとえば、Postgres MCP サーバー、CSV MCP サーバー、REST MCP サーバーを使います。それぞれ単独では問題なく動作しますが、互いに連携できません。
| mcp-data-pipeline-connector | データソースごとの個別サーバー | |
|---|---|---|
| 複数データソース間の JOIN | 組み込みの DuckDB によるネイティブ SQL | 不可。エージェントが手動で取得して結合する必要があります |
| 設定の複雑さ | MCP 設定にサーバーのエントリーを 1 つ追加 | データソースの種類ごとに 1 つのエントリー |
| クエリエンジン | プロセス内の DuckDB。インストールもサービスも不要 | 各データソースのクエリ機能によって異なります |
| スキーマの統一 | すべての型を string/integer/number/datetime/boolean/json/unknown に正規化 | データソースごとに独自の型システムを使用 |
| データの保管場所 | すべてのクエリをローカルで実行 | 各コネクターの実装によって異なります |
複数のデータソースにまたがる質問(「売上 CSV とユーザーテーブルを結合して」など)をする場合は、このツールが適しています。1 種類のデータソースしかクエリしない場合は、単一データソース専用のサーバーのほうがシンプルです。
免責事項
mcp-data-pipeline-connector は、設定したデータソースに接続し、エージェントに代わってそれらに対するクエリを実行します。エージェントには必要なデータベース権限のみを付与してください。接続文字列がログに記録されたり送信されたりすることはありません。バージョン管理対象の設定ファイルには記載せず、認証情報には環境変数を使用してください。
要件
- Node.js v20.19 以降。
- npm。
- 任意:Postgres コネクター用の、稼働中の PostgreSQL インスタンス。
はじめに
次の設定を MCP クライアントに追加します。
{
"mcpServers": {
"data-connector": {
"command": "npx",
"args": ["-y", "mcp-data-pipeline-connector@latest"]
}
}
}
~/.mcp/data-sources.yaml でデータソースを定義します。
sources:
- name: sales
type: csv
path: ~/data/sales-2025.csv
- name: users
type: postgres
connection_string: "${POSTGRES_URL}"
tables: [users, subscriptions]
接続文字列は YAML ファイルに直接記述せず、環境変数に保存してください。
MCP クライアントの設定
Amp · Claude Code · Cline · Cursor · VS Code · Windsurf · Zed
最初のプロンプト
~/data/sample.csv に CSV ファイルを置き、設定にデータソースとして追加してから、次のように入力します。
What columns are in the sample table? Show me the first 5 rows.
クライアントから、スキーマとデータのプレビューが返されます。
ツール
データソース(2 ツール)
connect_sourcelist_sources
スキーマ(2 ツール)
list_tablesget_schema
データ(2 ツール)
querytransform
ヘルス(1 ツール)
check_health
設定
--config / --sources-config
データソースを定義する YAML ファイルへのパスです。
型:string
デフォルト:~/.mcp/data-sources.yaml
--rest-cache-ttl
REST API レスポンスをキャッシュする期間(秒)です。キャッシュを無効にするには 0 を設定します。
型:number
デフォルト:300
--max-rows
1 回の query 呼び出しで返される行数の上限です。意図せず大量の結果が返されるのを防ぎます。
型:number
デフォルト:1000
--read-only
SELECT クエリ以外の SQL ステートメントを拒否します。すべてのソースで読み取り専用アクセスを適用します。
型:boolean
デフォルト:true
JSON 設定の args プロパティでフラグを渡します。
{
"mcpServers": {
"data-connector": {
"command": "npx",
"args": ["-y", "mcp-data-pipeline-connector@latest", "--max-rows=5000", "--rest-cache-ttl=60"]
}
}
}
検証
新しいバージョンを公開する前に、MCP Inspector でサーバーを検証し、すべてのツールが正しく公開され、プロトコルのハンドシェイクが成功することを確認してください。
対話型 UI(ブラウザーを開きます):
npm run build && npm run inspect
CLI モード(スクリプト/CI に適しています):
# List all tools
npx @modelcontextprotocol/inspector --cli node dist/index.js --method tools/list
# List resources and prompts
npx @modelcontextprotocol/inspector --cli node dist/index.js --method resources/list
npx @modelcontextprotocol/inspector --cli node dist/index.js --method prompts/list
# Call a tool (example — replace with a relevant read-only tool for this plugin)
npx @modelcontextprotocol/inspector --cli node dist/index.js \
--method tools/call --tool-name list_sources
# Call a tool with arguments
npx @modelcontextprotocol/inspector --cli node dist/index.js \
--method tools/call --tool-name list_sources --tool-arg key=value
公開前に実行して、ツール登録やランタイム起動のリグレッションを検出してください。
コントリビューション
各コネクターは src/connectors/ にあり、DataConnector インターフェースを実装する必要があります。統合テスト用のフィクスチャデータファイルを tests/fixtures/ に追加してください。接続文字列や認証情報は決してログに記録せず、出力やエラーメッセージに含める前にサニタイズしてください。
npm install && npm test
掲載先
mcp-data-pipeline-connector は MCP Registry と MCP Market に掲載されています。
トラブルシューティング
- REST ソースへの接続に失敗する:URL にアクセスできること、および認証用の環境変数が設定されていることを確認してください。起動後に
check_healthを使って再テストしてください。 - ソース間の結合で結果が返されない:
source='_all'を使用する前に、両方のソースが CSV タイプで登録されていることを確認してください。 - クエリが
truncated: trueを返す:--max-rowsを増やすか、SQL にLIMIT句を追加してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。