Dataset Aggregate & Pivot について
Dataset Aggregate & Pivotは、JSON行データを集計するエージェント向けのリモートMCPサーバーです。グループ化、11種類の集計、ピボット、並べ替え、上位N件の選択、合計をまとめて行い、除外値や警告も報告します。
主な機能
- 01フィールドと日付単位でグループ化
- 0211種類の集計関数
- 03異なる値を列にピボット
- 04並べ替え、件数制限、合計行の追加
- 05除外値と警告の報告
活用シーン
- 01APIやスクレイパーの記録を分類別に集計
- 02月別または四半期別レポートの作成
- 03地域別の商品合計の比較
- 04分析時の形式が混在した数値の確認
MCP 対応
リモートURL経由で、MCPクライアントにlist_capabilitiesとaggregate_rowsを提供します。クライアントはJSON行データを送り、グループ化した結果と処理概要を受け取ります。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://dataset-aggregate-pivot.nerolabs.workers.dev/mcpclaude mcp add --transport http nero-engine-dataset-aggregate-pivot https://dataset-aggregate-pivot.nerolabs.workers.dev/mcp{"mcpServers":{"nero-engine-dataset-aggregate-pivot":{"type":"http","url":"https://dataset-aggregate-pivot.nerolabs.workers.dev/mcp"}}}Cursor で開く{"servers":{"nero-engine-dataset-aggregate-pivot":{"type":"http","url":"https://dataset-aggregate-pivot.nerolabs.workers.dev/mcp"}}}VS Code で開く{"mcpServers":{"nero-engine-dataset-aggregate-pivot":{"type":"http","url":"https://dataset-aggregate-pivot.nerolabs.workers.dev/mcp"}}}{"mcpServers":{"nero-engine-dataset-aggregate-pivot":{"serverUrl":"https://dataset-aggregate-pivot.nerolabs.workers.dev/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
2このツールにパラメーターはありません。
詳細
データセットの集計とピボット(リモート MCP サーバー)
扱いにくい JSON の行を、1 回のツール呼び出しで SQL の GROUP BY やスプレッドシートのピボットテーブルのように集計できます。 スクレイパー、API、スプレッドシートから取得した行のリストを渡し、グループ化の基準と計算内容を指定すると、グループごとに整った要約行が返され、スキップされたデータの正確な内訳も確認できます。
AI エージェント向けに構築されています。インストール、API キー、サインアップは不要です。URL で接続して呼び出すだけです。
https://dataset-aggregate-pivot.nerolabs.workers.dev/mcp
早期アクセス期間中は無料で利用できます。
できること
1 回の呼び出しで、次の処理をこの順番で実行します。
- 行を 1 つまたは複数のフィールドでグループ化します(
address.cityのようなドットパスも使用できます)。または、グループフィールドを空にして、すべての行を 1 つにまとめて集計できます。日付バケットを追加すると、日付やタイムスタンプを日、ISO 週、月、四半期、年単位でグループ化できます(orderedAtはorderedAt_month=2026-08になります)。 - 各グループを、11 種類の関数(count、countDistinct、sum、avg、min、max、median、first、last、list、listDistinct)のいずれかで集計します。それぞれに独自の出力列名を指定できます。
- 1 つのフィールドの個別の値を列に変換してピボットします。
regionでグループ化し、productをピボットし、セルにamountの合計を入れると、地域ごとに 1 行が返されます。商品ごとに列が作られ、該当する行がない組み合わせには 0 が入ります。 - 任意の出力列で並べ替え、グループの上位 N 件を残し、すべての入力行を引き続き対象とする総計行を追加します。
扱いにくいデータはよくあるものです。South、south 、SOUTH は同じラベルの 1 つのグループにまとまります。"$1,234.50"、"49 USD"、"1.234,50"、"(300)" は数値として読み取られます。"n/a" のように実際に数値ではない値は、推測で処理されることはありません。集計から除外され、その件数が要約に記録されます。また、フィールド名のスペルミスは、空の結果として黙って返されるのではなく、警告として返されます。
ツール
| ツール | 機能 |
|---|---|
list_capabilities | 11 種類の集計関数、日付バケットの形式、空白・無効な日付・合計行に使用するラベル、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 によって開発されました。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。