π‘ API Reference
Complete technical documentation for ChartSmith MCP tools and resources.
β Tool Testing Status
Last tested: All tools verified for functionality
π― Basic Chart Tools (Working)
generate_bar_chart
: β Working β Vertical/horizontal barsgenerate_line_chart
: β Working β Time series, trendsgenerate_pie_chart
: β Working β Pie and donut chartsgenerate_scatter_chart
: β Working β Correlation analysisgenerate_area_chart
: β Working β Filled line chartsgenerate_box_chart
: β Working β Statistical distributionsgenerate_bubble_chart
: β Working β 3D scatter with sizegenerate_violin_chart
: β Working β Statistical distributions
β οΈ Advanced Chart Tools (Param-specific, Verified Working)
generate_histogram_chart
: β Working β Use pre-binned data andx: "bin_center"
generate_heatmap_chart
: β Working β Requires columnsx
,y
, andvalue
generate_treemap_chart
: β Working β Providepath: [..]
andvalue
π€ AI-Powered Tools (Require API Keys)
generate_chart_auto
: β Working π β VERIFIED with real key (data +user_text
)analyze_and_visualize
: β Working π β VERIFIED with real key (data +question
)detect_optimal_chart
: β Working β No key neededgenerate_chart_insights
: β Working π β Requireschart_data
(JSON) +data
π§ Utility Tools (Verified)
get_performance_stats
: β Working β Server performance metricsmanage_cache
: β Working β Cache stats/clear/optimizeoptimize_large_dataset
: β Working β Dataset optimizationgenerate_chart_batch
: β Working β Providedatasets
+chart_configs
create_dashboard
: β Working β Providecharts: [...]
and optionallayout
export_chart
: β Working β Pass chart JSON object (not HTML) inchart_data
Legend:
- β Working: VERIFIED - Fully functional, tested with real API key
- β οΈ Complex: Core functionality works but needs specific parameter formats
- π API Key: Requires valid OpenAI/Anthropic/Google API key
- VERIFIED: Tested with real OpenAI API key on live deployment
π― Testing Summary
- β Basic, Advanced, and Utility tools: Working with documented parameters
- π AI features: Working with real API key (OpenAI tested)
- π See gallery and firstβchart pages for copy/paste JSON examples
π§ Troubleshooting Complex Tools
β οΈ Tools with Parameter Format Issues
generate_histogram_chart
- Issue: Requires specific data preprocessing
- Workaround: Use
generate_bar_chart
for frequency data
generate_heatmap_chart
- Issue: Needs matrix-style data structure
- Workaround: Use
generate_scatter_chart
for correlation analysis
generate_treemap_chart
- Issue: Requires
path
andvalue
parameters instead ofnames
/values
- Workaround: Use
generate_pie_chart
for hierarchical data
generate_chart_batch
- Issue: Expects
datasets
andchart_configs
parameters - Workaround: Call individual chart tools separately
create_dashboard
- Issue: Expects
charts
parameter instead ofconfig
- Workaround: Generate charts individually and combine manually
export_chart
- Issue: Expects chart data as dictionary, not HTML string
- Workaround: Use
format: 'json'
then save the JSON payload
β Reliable Tool Alternatives
For production use, these tools are fully verified and reliable:
- All 8 basic chart types: bar, line, pie, scatter, area, box, bubble, violin
- AI auto-chart:
generate_chart_auto
with API key - Performance monitoring:
get_performance_stats
,manage_cache
π οΈ Available Tools
ChartSmith MCP provides 20+ powerful tools for chart generation and data analysis.
Chart Generation Tools
generate_chart_auto
Description: Automatically detects the best chart type for your data and generates it.
Parameters:
data
(required): The dataset to visualizetitle
(optional): Chart titletheme
(optional): Visual theme (modern, dark, colorful, minimal, corporate)format
(optional): Output format (png, svg, pdf, html, json)
Example:
{
"data": {
"columns": ["region", "sales"],
"rows": [
{"region": "North", "sales": 125000},
{"region": "South", "sales": 98000},
{"region": "East", "sales": 156000},
{"region": "West", "sales": 87000}
]
},
"title": "Q4 Sales by Region",
"theme": "modern"
}
generate_bar_chart
Description: Creates horizontal or vertical bar charts for categorical data comparison.
Parameters:
data
(required): Dataset with categorical and numerical columnsx_column
(required): Column name for x-axis (categories)y_column
(required): Column name for y-axis (values)orientation
(optional): βverticalβ or βhorizontalβ (default: vertical)color_scheme
(optional): Color palette nametitle
(optional): Chart titlex_label
(optional): X-axis labely_label
(optional): Y-axis label
Example:
{
"data": {...},
"x_column": "product",
"y_column": "revenue",
"orientation": "horizontal",
"title": "Product Revenue Comparison",
"color_scheme": "viridis"
}
generate_line_chart
Description: Creates line charts for time series data and trend analysis.
Parameters:
data
(required): Dataset with time/sequential datax_column
(required): Column for x-axis (usually time/date)y_column
(required): Column for y-axis (values)group_column
(optional): Column for multiple linesshow_markers
(optional): Boolean to show data point markersline_style
(optional): Line style (solid, dashed, dotted)fill_area
(optional): Boolean to fill area under line
Example:
{
"data": {...},
"x_column": "date",
"y_column": "users",
"show_markers": true,
"fill_area": false,
"title": "Monthly Active Users"
}
generate_pie_chart
Description: Creates pie charts for showing proportions and parts of a whole.
Parameters:
data
(required): Dataset with categories and valuescategory_column
(required): Column with category namesvalue_column
(required): Column with valueschart_type
(optional): βpieβ or βdonutβ (default: pie)show_percentages
(optional): Boolean to display percentagesexplode_slice
(optional): Index of slice to separatehole_size
(optional): Size of hole for donut charts (0.0-0.9)
Example:
{
"data": {...},
"category_column": "department",
"value_column": "budget",
"chart_type": "donut",
"show_percentages": true,
"hole_size": 0.4
}
generate_scatter_chart
Description: Creates scatter plots for correlation analysis and relationship visualization.
Parameters:
data
(required): Dataset with numerical columnsx_column
(required): X-axis columny_column
(required): Y-axis columnsize_column
(optional): Column for bubble sizecolor_column
(optional): Column for color codingshow_trendline
(optional): Boolean to show trend linealpha
(optional): Point transparency (0.0-1.0)
Example:
{
"data": {...},
"x_column": "advertising_spend",
"y_column": "sales_revenue",
"size_column": "market_size",
"show_trendline": true,
"alpha": 0.7
}
generate_heatmap_chart
Description: Creates heatmaps for matrix data and correlation visualization.
Parameters:
data
(required): Matrix data or correlation datax_column
(optional): X-axis categoriesy_column
(optional): Y-axis categoriesvalue_column
(optional): Values for color intensitycolor_scale
(optional): Color scale (viridis, plasma, coolwarm)show_values
(optional): Boolean to display values in cellsannotation_format
(optional): Format for cell annotations
Example:
{
"data": {...},
"x_column": "month",
"y_column": "product",
"value_column": "sales",
"color_scale": "viridis",
"show_values": true
}
AI-Powered Analysis Tools
detect_optimal_chart
Description: Uses AI to analyze your data and recommend the best chart type.
Parameters:
data
(required): Dataset to analyzegoal
(optional): Visualization goal (comparison, trend, distribution, correlation)audience
(optional): Target audience (executives, analysts, general)
Returns: Recommendations with confidence scores
Example:
{
"data": {...},
"goal": "comparison",
"audience": "executives"
}
analyze_and_visualize
Description: Natural language interface for creating charts from text descriptions.
Parameters:
description
(required): Natural language description of desired chartdata
(optional): Dataset to usecontext
(optional): Additional context about the data
Example:
{
"description": "Show me how our quarterly sales have changed over the past year",
"data": {...},
"context": "This is for a board presentation"
}
generate_chart_insights
Description: Generates AI-powered insights and observations about your data.
Parameters:
data
(required): Dataset to analyzechart_type
(optional): Type of chart to focus insights onbusiness_context
(optional): Business context for relevant insights
Returns: List of insights, trends, and recommendations
Advanced Features
create_dashboard
Description: Creates multi-chart dashboards with consistent styling.
Parameters:
charts
(required): Array of chart configurationslayout
(optional): Dashboard layout (grid, vertical, horizontal)theme
(optional): Consistent theme across all chartstitle
(optional): Dashboard title
Example:
{
"charts": [
{"type": "bar", "data": {...}, "title": "Sales by Region"},
{"type": "line", "data": {...}, "title": "Monthly Trends"}
],
"layout": "grid",
"theme": "corporate",
"title": "Q4 Performance Dashboard"
}
generate_chart_batch
Description: Processes multiple datasets and creates charts in batch.
Parameters:
datasets
(required): Array of datasets with chart configurationscommon_theme
(optional): Theme to apply to all chartsoutput_format
(optional): Format for all outputs
Example:
{
"datasets": [
{"data": {...}, "type": "bar", "title": "Chart 1"},
{"data": {...}, "type": "line", "title": "Chart 2"}
],
"common_theme": "modern",
"output_format": "png"
}
Utility Tools
get_performance_stats
Description: Returns server performance metrics and statistics.
Returns:
- Uptime
- Charts generated
- Average response time
- Memory usage
- Cache hit rate
Example Response:
{
"uptime": "7d 14h 32m",
"charts_generated": 15420,
"avg_response_time": "145ms",
"memory_usage": "2.1GB",
"cache_hit_rate": "87%",
"performance_grade": "A+"
}
π§Ύ Data Formats
Supported Input Formats
JSON Format
{
"columns": ["date", "revenue", "costs"],
"rows": [
{"date": "2024-01", "revenue": 125000, "costs": 75000},
{"date": "2024-02", "revenue": 132000, "costs": 78000},
{"date": "2024-03", "revenue": 118000, "costs": 72000}
]
}
CSV Format
date,revenue,costs
2024-01,125000,75000
2024-02,132000,78000
2024-03,118000,72000
Array Format
[
["date", "revenue", "costs"],
["2024-01", 125000, 75000],
["2024-02", 132000, 78000],
["2024-03", 118000, 72000]
]
Output Formats
- PNG: High-quality raster images
- SVG: Scalable vector graphics
- PDF: Print-ready documents
- HTML: Interactive web charts
- JSON: Chart configuration and data
π¨ Themes & Styling
Available Themes
- modern: Clean, contemporary design
- dark: Dark background for presentations
- colorful: Vibrant, engaging colors
- minimal: Clean, distraction-free
- corporate: Professional business styling
Color Schemes
- default: Balanced, accessible colors
- viridis: Purple to yellow gradient
- plasma: Purple to pink gradient
- coolwarm: Blue to red gradient
- custom: User-defined color palette
Chart Dimensions
- Default: 800x600 pixels
- Square: 600x600 pixels
- Wide: 1200x600 pixels
- Tall: 600x1200 pixels
- Custom: User-specified dimensions
π§ Configuration Options
Global Settings
{
"theme": "modern",
"color_scheme": "default",
"font_family": "Arial",
"font_size": 12,
"dpi": 300,
"background_color": "#ffffff",
"grid_enabled": true,
"legend_position": "right"
}
Performance Settings
{
"max_data_points": 10000,
"timeout_ms": 60000,
"cache_enabled": true,
"compression": true
}
π Response Format
Success Response
{
"success": true,
"chart_data": "base64_encoded_image_or_svg",
"metadata": {
"chart_type": "bar",
"data_points": 156,
"generation_time": "245ms",
"format": "png",
"dimensions": "800x600"
},
"insights": [
"Sales increased 15% compared to previous quarter",
"East region shows strongest growth at 23%"
]
}
Error Response
{
"success": false,
"error": {
"code": "INVALID_DATA",
"message": "Data format not recognized",
"details": "Expected JSON object with 'columns' and 'rows' properties"
}
}
π Integration Examples
Cursor Integration
{
"mcpServers": {
"chartsmith": {
"command": "docker",
"args": ["exec", "-i", "chartsmith-mcp", "python", "-m", "chart_genius_mcp", "--transport", "stdio"]
}
}
}
HTTP API Usage
curl -X POST http://localhost:8000/mcp \
-H "Content-Type: application/json" \
-d '{
"tool": "generate_bar_chart",
"parameters": {
"data": {...},
"title": "Sales Report"
}
}'
Need more technical details? Open a GitHub discussion π