Data Visualization
Generate smooth stream graphs for visualizing time-series data flow, perfect for showing changes in composition over time with organic, flowing shapes
Call this tool from your code in three languages.
curl -X POST 'https://api.elysiatools.com/en/api/tools/stream-graph' \
-H 'Content-Type: application/json' \
-d '{"chartData":"Multi-series time-series JSON:\n{"labels": ["Jan", "Feb", "Mar", "Apr", "May"],\n "series": [\n {"name": "Desktop", "data": [120, 135, 125, 140, 155]},\n {"name": "Mobile", "data": [80, 95, 110, 125, 140]},\n {"name": "Tablet", "data": [40, 45, 50, 48, 52]}\n ]\n}","chartTitle":"Enter chart title...","colorScheme":"default","streamColors":"#3b82f6,#10b981,#f59e0b","streamOpacity":"0.7","curveSmoothness":"0.5","backgroundColor":"#ffffff","gridColor":"#e8e9ea","chartHeight":"500","maxValue":0,"minValue":"0","xAxisLabel":"Time","yAxisLabel":"Value","showGrid":true,"showValues":false,"showDataLabels":true,"normalizeData":false,"showLegend":true}'Send a POST request with your inputs as JSON. File parameters require a separate upload first.
POST https://api.elysiatools.com/en/api/tools/stream-graph| Name | Type | Required | Description |
|---|---|---|---|
| chartData | textarea | Yes | Time-series data for the stream graph. Each series represents a flowing layer over time. |
| chartTitle | text | No | Title that will be displayed above the chart |
| colorScheme | select | No | — |
| streamColors | text | No | Custom colors for streams (comma-separated hex colors). Overrides color scheme if provided. |
| streamOpacity | number | No | Opacity of the stream layers (0.1 to 1.0) |
| curveSmoothness | number | No | Smoothness of the stream curves (0.1 to 1.0, higher = smoother) |
| backgroundColor | color | No | Background color for the chart container |
| gridColor | color | No | Color for the grid lines |
| chartHeight | number | No | Height of the chart in pixels |
| maxValue | number | No | Maximum value for Y-axis (leave empty for auto-scale) |
| minValue | number | No | Minimum value for Y-axis |
| xAxisLabel | text | No | Label for the X-axis (typically time) |
| yAxisLabel | text | No | Label for the Y-axis |
| showGrid | checkbox | No | Display grid lines for better readability |
| showValues | checkbox | No | Display values within the stream layers |
| showDataLabels | checkbox | No | Display data labels at key points |
| normalizeData | checkbox | No | Convert values to percentages showing relative contribution over time |
| showLegend | checkbox | No | Display a legend below the chart |
HTML result
{
"result": "<div>Processed HTML content</div>",
"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-stream-graph": {
"name": "stream-graph",
"description": "Generate smooth stream graphs for visualizing time-series data flow, perfect for showing changes in composition over time with organic, flowing shapes",
"baseUrl": "https://api.elysiatools.com/mcp/sse?toolId=stream-graph",
"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": "stream-graph",
"arguments": {
"chartData": "Multi-series time-series JSON:\n{"labels": ["Jan", "Feb", "Mar", "Apr", "May"],\n "series": [\n {"name": "Desktop", "data": [120, 135, 125, 140, 155]},\n {"name": "Mobile", "data": [80, 95, 110, 125, 140]},\n {"name": "Tablet", "data": [40, 45, 50, 48, 52]}\n ]\n}",
"chartTitle": "Enter chart title...",
"colorScheme": "default",
"streamColors": "#3b82f6,#10b981,#f59e0b",
"streamOpacity": "0.7",
"curveSmoothness": "0.5",
"backgroundColor": "#ffffff",
"gridColor": "#e8e9ea",
"chartHeight": "500",
"maxValue": 0,
"minValue": "0",
"xAxisLabel": "Time",
"yAxisLabel": "Value",
"showGrid": true,
"showValues": false,
"showDataLabels": true,
"normalizeData": false,
"showLegend": true
}
}
}Questions or issues? Contact [email protected]