mcpField
D
Dataset Aggregate & Pivot

Dataset Aggregate & Pivot

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

Dataset Aggregate & Pivot について

Dataset Aggregate & Pivotは、JSON行データを集計するエージェント向けのリモートMCPサーバーです。グループ化、11種類の集計、ピボット、並べ替え、上位N件の選択、合計をまとめて行い、除外値や警告も報告します。

主な機能

  1. 01フィールドと日付単位でグループ化
  2. 0211種類の集計関数
  3. 03異なる値を列にピボット
  4. 04並べ替え、件数制限、合計行の追加
  5. 05除外値と警告の報告

活用シーン

  1. 01APIやスクレイパーの記録を分類別に集計
  2. 02月別または四半期別レポートの作成
  3. 03地域別の商品合計の比較
  4. 04分析時の形式が混在した数値の確認

MCP 対応

リモートURL経由で、MCPクライアントにlist_capabilitiesとaggregate_rowsを提供します。クライアントはJSON行データを送り、グループ化した結果と処理概要を受け取ります。

設定

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

エンドポイントhttps://dataset-aggregate-pivot.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 サーバー)

扱いにくい JSON の行を、1 回のツール呼び出しで SQL の GROUP BY やスプレッドシートのピボットテーブルのように集計できます。 スクレイパー、API、スプレッドシートから取得した行のリストを渡し、グループ化の基準と計算内容を指定すると、グループごとに整った要約行が返され、スキップされたデータの正確な内訳も確認できます。

AI エージェント向けに構築されています。インストール、API キー、サインアップは不要です。URL で接続して呼び出すだけです。

https://dataset-aggregate-pivot.nerolabs.workers.dev/mcp

早期アクセス期間中は無料で利用できます。

できること

1 回の呼び出しで、次の処理をこの順番で実行します。

  1. 行を 1 つまたは複数のフィールドでグループ化します(address.city のようなドットパスも使用できます)。または、グループフィールドを空にして、すべての行を 1 つにまとめて集計できます。日付バケットを追加すると、日付やタイムスタンプを日、ISO 週、月、四半期、年単位でグループ化できます(orderedAt は orderedAt_month = 2026-08 になります)。
  2. 各グループを、11 種類の関数(count、countDistinct、sum、avg、min、max、median、first、last、list、listDistinct)のいずれかで集計します。それぞれに独自の出力列名を指定できます。
  3. 1 つのフィールドの個別の値を列に変換してピボットします。region でグループ化し、product をピボットし、セルに amount の合計を入れると、地域ごとに 1 行が返されます。商品ごとに列が作られ、該当する行がない組み合わせには 0 が入ります。
  4. 任意の出力列で並べ替え、グループの上位 N 件を残し、すべての入力行を引き続き対象とする総計行を追加します。

扱いにくいデータはよくあるものです。South、south 、SOUTH は同じラベルの 1 つのグループにまとまります。"$1,234.50"、"49 USD"、"1.234,50"、"(300)" は数値として読み取られます。"n/a" のように実際に数値ではない値は、推測で処理されることはありません。集計から除外され、その件数が要約に記録されます。また、フィールド名のスペルミスは、空の結果として黙って返されるのではなく、警告として返されます。

ツール

ツール機能
list_capabilities11 種類の集計関数、日付バケットの形式、空白・無効な日付・合計行に使用するラベル、1 回あたりの上限を一覧表示します。データは処理しません。
aggregate_rows渡された行をグループ化、集計、ピボット、並べ替え、合計し、要約行とともに、検出したグループ数、上位 N 件の適用で除外されたグループ数、スキップした値、警告のレポートを返します。

接続

Claude Code

claude mcp add --transport http dataset-aggregate-pivot https://dataset-aggregate-pivot.nerolabs.workers.dev/mcp

Claude Desktop / claude.ai: 設定、コネクタ、カスタムコネクタを追加の順に選び、上記の URL を貼り付けます。

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

{
  "mcpServers": {
    "dataset-aggregate-pivot": {
      "url": "https://dataset-aggregate-pivot.nerolabs.workers.dev/mcp"
    }
  }
}

例

8 件の扱いにくい注文行を入力し、地域ごとの注文数を集計して、商品ごとの売上をそれぞれ独立した列にピボットします。

{
  "rows": [
    {"orderId": 1001, "region": "North", "product": "Widget", "amount": "$1,200.00", "orderedAt": "2026-07-03"},
    {"orderId": 1002, "region": "North", "product": "Gadget", "amount": 350, "orderedAt": "2026-07-18"},
    {"orderId": 1003, "region": "South", "product": "Widget", "amount": "890.50", "orderedAt": "2026-07-22"},
    {"orderId": 1004, "region": "south", "product": "Gizmo", "amount": 120, "orderedAt": "2026-08-02"},
    {"orderId": 1005, "region": "East", "product": "Widget", "amount": 2400, "orderedAt": "2026-08-05"},
    {"orderId": 1006, "region": "East", "product": "Gadget", "amount": "n/a", "orderedAt": "2026-08-09"},
    {"orderId": 1007, "region": "North", "product": "Gizmo", "amount": 75, "orderedAt": "2026-08-11"},
    {"orderId": 1008, "region": "", "product": "Widget", "amount": 410, "orderedAt": "2026-08-14"}
  ],
  "groupByFields": ["region"],
  "aggregations": [{"function": "count", "alias": "orders"}],
  "pivotField": "product",
  "pivotValueField": "amount",
  "pivotFunction": "sum"
}

4 件の要約行が返されます。South と south は 1 つのグループになり、"$1,200.00" は 1200 として合計され、地域がない行は (blank) として明示的に残ります。また、"n/a" の金額は数値として扱われず、スキップされたことが報告されます。

{
  "rows": [
    {"region": "(blank)", "orders": 1, "Gadget": 0, "Gizmo": 0, "Widget": 410},
    {"region": "East", "orders": 2, "Gadget": 0, "Gizmo": 0, "Widget": 2400},
    {"region": "North", "orders": 3, "Gadget": 350, "Gizmo": 75, "Widget": 1200},
    {"region": "South", "orders": 2, "Gadget": 0, "Gizmo": 120, "Widget": 890.5}
  ],
  "summary": {
    "inputRowCount": 8,
    "groupCount": 4,
    "outputRowCount": 4,
    "pivot": {"field": "product", "valueField": "amount", "function": "sum", "distinctValues": 3},
    "columns": ["region", "orders", "Gadget", "Gizmo", "Widget"],
    "skippedValues": {"pivot:Gadget": 1}
  }
}

同じ呼び出しに "sortBy": "orders", "sortDirection": "desc", "topN": 10, "includeTotalsRow": true を追加すると上位 10 件と総計が返されます。または、"dateBucketField": "orderedAt" を追加すると、地域ごと・月ごとに 1 行が返されます。

制限

  • 1 回の呼び出しで最大 500 行です。これを超えると、黙って失敗するのではなく、明確なメッセージが返されます。バッチを分けて合計、件数、最小値、最大値を個別に集計し、合計を合計件数で割れば平均を再計算できます。ただし、中央値や個別の値の件数はバッチ間で統合できません。
  • 1 回の呼び出しで最大 50 個のピボット列、5,000 個のピボットセル(グループ数 × ピボット列数)です。そのため、ID のようなほぼ一意のフィールドでピボットするといったケースでは、何百もの列を返すのではなく、アドバイスとともに処理を拒否します。
  • 1 回の呼び出しで最大 20 件の集計です。
  • 行は JSON としてインラインで渡します。

プライバシー

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

こちらも利用できます

同じエンジンが Apify Store では データセットの集計、グループ化、ピボット として利用できます。こちらは Apify データセット、CSV、TSV、Excel、JSON、JSON Lines ファイル、URL で指定した Google Sheets を読み込み、1 回の実行あたり最大 200,000 行を処理し、集計結果を CSV または Excel ファイルとしてエクスポートし、スケジュール実行をまたいで蓄積される名前付きデータセットに追加し、Webhook に投稿します。

Nero Labs によって開発されました。

コメント

MCP は初めてですか?

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

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