mcpField
D
Dataset Join & Merge

Dataset Join & Merge

リモート
github.comデータ・分析07 週間前に更新
リポジトリ公式サイト

Dataset Join & Merge について

Dataset Join & Mergeは、共通キーでJSON行リストを結合するリモートMCPサーバーです。7種類の結合方法に加え、キー照合やフィールド競合の設定に対応し、一致・不一致の概要を返します。

主な機能

  1. 01unionを含む7種類の結合
  2. 02大文字小文字を無視または厳密に照合
  3. 03異なる名前や複合キーに対応
  4. 04コピーする右側フィールドの選択
  5. 05重複キーの処理方法を設定
  6. 06照合状態と概要の報告

活用シーン

  1. 01請求データでリード情報を補完
  2. 02CRMに未登録のリードを特定
  3. 03キー名の異なるリストを統合

MCP 対応

リモートHTTPエンドポイントを通じて、MCPクライアントに `list_capabilities` と `join_rows` を提供します。クライアントは2つのJSON行リスト、キー項目、結合方法を送り、結合結果と照合概要を受け取ります。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://dataset-join-merge.nerolabs.workers.dev/mcp
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

ツール

2

このツールにパラメーターはありません。

詳細

データセットの結合とマージ(リモートMCPサーバー)

SQLのJOINやスプレッドシートのVLOOKUPのように、共通のキーを使って2つのJSON行リストを1回のツール呼び出しで結合できます。 メインのリストと検索用のリストを渡し、キーを指定して結合タイプを選ぶと、結合済みのリストと、各側で何行が一致し、残りが一致しなかった理由の正確な内訳が返されます。

AIエージェント向けに構築されています。インストールもAPIキーも登録も不要です。URLで接続して呼び出すだけです。

https://dataset-join-merge.nerolabs.workers.dev/mcp

早期アクセス期間中は無料でご利用いただけます。

機能

  • 7種類の結合タイプ。 left は左側の全行を保持し、一致する右側のフィールドを追加します(VLOOKUPやデータの補完に使うケースで、デフォルトです)。inner は重複部分のみを保持します。right は右側の全行を保持します。full は両側のすべてを保持します。leftAnti は右側に一致する行がない左側の行を返します(「この見込み客のうち、まだCRMに登録されていないのは誰ですか?」)。rightAnti はその逆です。union はキーを必要とせず、両方のリストを連結します。
  • 実際のデータに合った方法で照合するキー。 デフォルトでは、大文字と小文字を区別せず、前後および連続するスペースを無視して照合します。また、123 は "123" と一致します。そのため、スクレイパーから取得した " [email protected]" が、請求データのエクスポートにある "[email protected]" と一致します。厳密に照合するには、keyMatching を exact に設定してください。
  • 左右で異なるキー名。 左側は email、右側は contact_email のように指定できます。複合キーにも対応しています(例:["firstName", "lastName"])。
  • 結合時に取り込む内容を制御。 右側から選んだフィールドだけをコピーできます。また、両側に同じ名前のフィールドがある場合の処理も選択できます。両方を保持する(右側のフィールド名は right_status になります)、左側の値を保持する、または右側の値で上書きする方法があります。
  • キーが重複する場合のSQLまたはVLOOKUPの動作。 multipleMatches: "all" は一致するペアごとに1行を返します。"first" は最初に一致した右側の行のみを使用するため、各左側の行は1回だけ出現します。

一致しなかった内容も明確に示します。各行に _joinStatus(matched、left_only、right_only)と _matchCount が付与され、概要には一致率に加え、キーが欠けている行、右側の重複キー、どの行にも存在しないキーのフィールド(通常は入力ミス)に関する警告が表示されます。

ツール

ツール機能
list_capabilitiesすべての結合タイプ、照合モード、競合の処理方法、重複キーの処理モード、各行に追加されるフィールド、行数の上限を一覧表示します。データは処理しません。
join_rows指定したキーのフィールドで leftRows と rightRows を結合し、結合済みの行と概要を返します。

接続

Claude Code

claude mcp add --transport http dataset-join-merge https://dataset-join-merge.nerolabs.workers.dev/mcp

Claude Desktop / claude.ai: Settings、Connectors、Add custom connector の順に選択し、上記のURLを貼り付けます。

Cursor、Windsurf、VS Code、その他のMCPクライアント

{
  "mcpServers": {
    "dataset-join-merge": {
      "url": "https://dataset-join-merge.nerolabs.workers.dev/mcp"
    }
  }
}

例

左側にはスクレイピングで取得した4件の見込み客、右側には3件の請求記録があります。メールアドレスは大文字小文字とスペースの違いがあり、左右でキーの名前も異なります。

{
  "leftRows": [
    {"email": "[email protected] ", "name": "Ana Silva", "status": "lead"},
    {"email": "[email protected]", "name": "Ben Okafor", "status": "lead"},
    {"email": "[email protected]", "name": "Cara Lind", "status": "lead"},
    {"email": "[email protected]", "name": "Dev Patel", "status": "lead"}
  ],
  "rightRows": [
    {"contact_email": "[email protected]", "plan": "Pro", "mrr": 49, "status": "active"},
    {"contact_email": "[email protected]  ", "plan": "Starter", "mrr": 19, "status": "trial"},
    {"contact_email": "[email protected]", "plan": "Enterprise", "mrr": 499, "status": "active"}
  ],
  "leftKeyFields": ["email"],
  "rightKeyFields": ["contact_email"],
  "joinType": "left"
}

すべての見込み客が返され、顧客2件にはプラン情報が追加され、status フィールドは左右両方とも保持されます。

{
  "rows": [
    {"email": "[email protected] ", "name": "Ana Silva", "status": "lead", "plan": "Pro", "mrr": 49, "right_status": "active", "_joinStatus": "matched", "_matchCount": 1},
    {"email": "[email protected]", "name": "Ben Okafor", "status": "lead", "plan": "Starter", "mrr": 19, "right_status": "trial", "_joinStatus": "matched", "_matchCount": 1},
    {"email": "[email protected]", "name": "Cara Lind", "status": "lead", "_joinStatus": "left_only", "_matchCount": 0},
    {"email": "[email protected]", "name": "Dev Patel", "status": "lead", "_joinStatus": "left_only", "_matchCount": 0}
  ],
  "summary": {
    "leftRecordCount": 4,
    "rightRecordCount": 3,
    "joinType": "left",
    "keyMatching": "normalized",
    "multipleMatches": "all",
    "leftKeyFields": ["email"],
    "rightKeyFields": ["contact_email"],
    "counts": {"matchedRows": 2, "passthroughRows": 2, "leftRowsMatched": 2, "rightRowsMatched": 2, "leftRowsUnmatched": 2, "rightRowsUnmatched": 1},
    "leftMatchRate": 0.5,
    "rightMatchRate": 0.667,
    "outputRowCount": 4,
    "warnings": []
  }
}

joinType を leftAnti に変更すると、請求記録がない見込み客のCaraとDevだけが返されます。

制限

  • 1回あたり最大500行で、leftRows と rightRows の合計行数です。より大きなリストで left、inner、または leftAnti 結合を行う場合は、leftRows を複数回に分け、各回で同じ rightRows を送信してください。
  • 1回あたりの出力は最大500行です。入力行数を超える行が返される可能性があるのは、多対多結合(同じキーが両側で重複し、multipleMatches が all に設定されている場合)だけです。そのような呼び出しは、予測される行数と変更方法を示して拒否されます。途中で切り詰められることはありません。multipleMatches: "first" なら常に上限内に収まります。

上限を超えた場合は、何も通知せずに失敗するのではなく、明確なメッセージが返されます。

プライバシー

行データはメモリ上で処理され、保存されることはありません。使用されたツールを確認できるよう、各呼び出しではツール名、行数、成功したかどうか、アプリが報告するクライアント名、国、一方向ハッシュ化された呼び出し元IDが記録されます。データ、引数、IPアドレスは、そのログに保存されません。

こちらも利用できます

同じエンジンが Apify Store で Dataset Join & Merge としても稼働しています。両側の入力として Apify データセット、CSV、Excel、JSON ファイル、URL で指定した Google Sheets を読み込み、片側あたり最大 100,000 行を処理できます。結果は CSV または Excel としてエクスポートしたり、実行のたびにデータが蓄積される名前付きデータセットに追加したり、Webhook に POST したりできます。

Nero Labs が開発しました。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。