smart-charts-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| doctorA | Environment preflight: dependency versions and asset readiness. Run once after install. |
| profile_dataA | Profile a tabular dataset BEFORE choosing a chart. Returns objective facts: per-column dtype/cardinality/missingness/samples/ statistics, entity grain, candidate insight signals (trend, divergent category, head concentration, outliers, strong correlations) and suspected non-data rows. Use these facts to decide which column is an ID, a dimension or a measure, and which chart deserves drawing. Args: data_text: raw file content (CSV/TSV/TXT/JSON text; xls/xlsx are binary and NOT supported by this tool - use a CSV export instead) filename: original file name, only the extension is used to pick a parser |
| render_chartA | Render one interactive ECharts HTML chart from tabular data. Returns {ok, html, chart:{...}} where chart carries the full stdout contract: plot_stats (quote ONLY these numbers in your caption), data_preview (first 10 rendered rows), source_rows/plotted_rows/ unique_entities (aggregation audit), assumptions and advisories (read them before delivering). Args:
data_text: raw file content as text (csv/tsv/txt/json)
chart_type: one of line, bar, area, pie, scatter, radar, heatmap,
treemap, graph, boxplot, waterfall, gauge, sankey, funnel, sunburst,
wordcloud, histogram, stacked_bar, bubble, pareto, combo, venn,
mindmap, orgchart, liquid, spreadsheet, map, lines, effect_scatter,
calendar, pictorial_bar, theme_river
title: conclusion-style title (subject + number), not a noun phrase
subtitle: context - time range, filters, source
x_axis / y_axis: column name(s); lists become multiple series
transform_code: sandboxed pandas code; variables df/pd/np only, must
produce a DataFrame named |
| list_chart_typesA | Chart selection table: each chart type with best-for, trigger keywords and required data shape. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 4 tools
Each tool occupies a clearly distinct slot in the workflow: profile_data analyzes data, list_chart_types is a static reference, render_chart produces output, and doctor checks the environment. There is no plausible case where an agent would mistake one for another.
Three of four tools follow a clean verb_noun pattern (profile_data, list_chart_types, render_chart), with 'doctor' as the single stylistic deviation. That lone noun-style name is still conventional and unambiguous, so the break is minor.
Four tools is lean but well-scoped for a charting server, with each earning its place in a profile-then-render pipeline. The heavy lifting is consolidated into one large render_chart tool, so the surface is slightly thin at the discovery/utility end but not problematic.
The core lifecycle (preflight, inspect data, choose chart, render HTML) is fully covered, and render_chart itself is extremely broad with 30+ chart types and many options. Minor gaps exist: no tool to persist/export the rendered HTML to a file or to list available datasets, but agents can work around these.