Data Analysis
Generate interactive pivot tables from CSV/JSON data with customizable row, column, and value field configurations
Call this tool from your code in three languages.
curl -X POST 'https://api.elysiatools.com/en/api/tools/pivot-table-generator' \
-H 'Content-Type: application/json' \
-d '{"inputData":"Enter your CSV or JSON data...\n\nCSV Example:\nRegion,Product,Sales,Quantity,Date\nNorth,Widget A,1000,50,2024-01-15\nSouth,Widget B,1500,75,2024-01-16\nNorth,Widget A,1200,60,2024-01-17\n\nJSON Example:\n[\n {\"Region\": \"North\", \"Product\": \"Widget A\", \"Sales\": 1000, \"Quantity\": 50},\n {\"Region\": \"South\", \"Product\": \"Widget B\", \"Sales\": 1500, \"Quantity\": 75}\n]","dataFormat":"csv","rowFields":"Comma-separated field names (e.g., Region, Category)","columnFields":"Comma-separated field names (e.g., Product, Month)","valueFields":"Comma-separated field names (e.g., Sales, Quantity)","aggregateFunction":"sum","filterConditions":"Enter filter conditions (one per line):\nRegion = North\nSales > 1000\nProduct != Widget C","includeGrandTotals":true,"includePercentages":false,"maxRows":"100","maxColumns":"20"}'Send a POST request with your inputs as JSON. File parameters require a separate upload first.
POST https://api.elysiatools.com/en/api/tools/pivot-table-generator| Name | Type | Required | Description |
|---|---|---|---|
| inputData | textarea | Yes | — |
| dataFormat | select | Yes | — |
| rowFields | text | No | Fields to use as rows in the pivot table. If empty, will use first non-numeric field. |
| columnFields | text | No | Fields to use as columns in the pivot table. If empty, will use remaining fields. |
| valueFields | text | No | Numeric fields to aggregate. If empty, will auto-detect numeric fields. |
| aggregateFunction | select | Yes | — |
| filterConditions | textarea | No | Optional filters to apply before generating pivot table. Format: Field operator value |
| includeGrandTotals | checkbox | No | Add grand total rows and columns to the pivot table |
| includePercentages | checkbox | No | Show percentages alongside values |
| maxRows | number | No | Maximum number of rows to display in the pivot table |
| maxColumns | number | No | Maximum number of columns to display in the pivot table |
Text result
{
"result": "Processed text content",
"error": "Error message (optional)",
"message": "Notification message (optional)",
"metadata": {
"key": "value"
}
}Add this tool to your Model Context Protocol server so AI agents can list and call it.
Add this block to your MCP client configuration:
{
"mcpServers": {
"elysiatools-pivot-table-generator": {
"name": "pivot-table-generator",
"description": "Generate interactive pivot tables from CSV/JSON data with customizable row, column, and value field configurations",
"baseUrl": "https://api.elysiatools.com/mcp/sse?toolId=pivot-table-generator",
"command": "",
"args": [],
"env": {},
"isActive": true,
"type": "sse"
}
}
}After connecting to the SSE endpoint, list the exposed tools:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/list"
}Invoke the tool by its id, passing arguments built from its parameters:
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "pivot-table-generator",
"arguments": {
"inputData": "Enter your CSV or JSON data...\n\nCSV Example:\nRegion,Product,Sales,Quantity,Date\nNorth,Widget A,1000,50,2024-01-15\nSouth,Widget B,1500,75,2024-01-16\nNorth,Widget A,1200,60,2024-01-17\n\nJSON Example:\n[\n {\"Region\": \"North\", \"Product\": \"Widget A\", \"Sales\": 1000, \"Quantity\": 50},\n {\"Region\": \"South\", \"Product\": \"Widget B\", \"Sales\": 1500, \"Quantity\": 75}\n]",
"dataFormat": "csv",
"rowFields": "Comma-separated field names (e.g., Region, Category)",
"columnFields": "Comma-separated field names (e.g., Product, Month)",
"valueFields": "Comma-separated field names (e.g., Sales, Quantity)",
"aggregateFunction": "sum",
"filterConditions": "Enter filter conditions (one per line):\nRegion = North\nSales > 1000\nProduct != Widget C",
"includeGrandTotals": true,
"includePercentages": false,
"maxRows": "100",
"maxColumns": "20"
}
}
}Questions or issues? Contact [email protected]