MCP ECharts
The MCP ECharts server dynamically generates interactive charts and visualizations using Apache ECharts for data analysis and visualization.
Key capabilities:
Generate 15+ chart types including line, bar, pie, radar, scatter, sankey, funnel, gauge, treemap, sunburst, heatmap, candlestick, boxplot, graph, parallel coordinates, and tree charts
Custom chart generation by providing full ECharts options and configurations
Multiple export formats - PNG, SVG images, or raw ECharts option JSON
MinIO integration for storing chart images in object storage with URL returns, fallback to Base64
Customizable properties including themes (default/dark), dimensions, titles, axis labels, smooth curves, stacking, grouping, and chart-specific options
Multi-protocol support with stdio transport for desktop apps (VSCode, Claude), SSE, and streamable transport for web applications
Flexible deployment - run locally or globally via npm with CLI options
Privacy-focused with zero dependencies and local generation ensuring data security
Generates Apache ECharts diagrams and charts dynamically. Supports all ECharts features including data, style, and themes. Enables exporting to PNG, SVG, and option formats with validation to ensure correct syntax and graphics.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP EChartscreate a bar chart showing monthly sales data for 2024"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP ECharts

Generate Apache ECharts with AI MCP dynamically for chart generation and data analysis. Also you can use mcp-server-chart to generate chart, graph, map.
โจ Features
Fully support all features and syntax of
ECharts, include data, style, theme and so on.Support exporting to
png,svg, andoptionformats, with validation forEChartsto facilitate the model's multi-round output of correct syntax and graphics.MinIO Integration, store charts in
MinIOobject storage and return URLs instead of Base64 data for better performance and sharing capabilities.Lightweight, we can install it easily with
zero dependence.Extremely
secure, fully generated locally, without relying on any remote services.
Related MCP server: ECharts MCP Server
๐ค Usage
Prerequisites
Node.js 18 or higher is required.
Desktop Applications (stdio transport)
To use with Desktop APP, such as Claude, VSCode, Cline, Cherry Studio, and so on, add the MCP server config below. On Mac system:
{
"mcpServers": {
"mcp-echarts": {
"command": "npx",
"args": [
"-y",
"mcp-echarts"
]
}
}
}On Window system:
{
"mcpServers": {
"mcp-echarts": {
"command": "cmd",
"args": [
"/c",
"npx",
"-y",
"mcp-echarts"
]
}
}
}Also, you can use it on modelscope, glama.ai, skillselion.com or others with HTTP, SSE Protocol.
๐ฐ Run with SSE or Streamable transport
Install the package globally.
npm install -g mcp-echartsRun the server with your preferred transport option:
# For SSE transport (default endpoint: /sse)
mcp-echarts -t sse
# For Streamable transport with custom endpoint
mcp-echarts -t streamableThen you can access the server at:
SSE transport:
http://localhost:3033/sseStreamable transport:
http://localhost:3033/mcp
๐ฎ CLI Options
You can also use the following CLI options when running the MCP server. Command options by run cli with -h.
MCP ECharts CLI
Options:
--transport, -t Specify the transport protocol: "stdio", "sse", or "streamable" (default: "stdio")
--port, -p Specify the port for SSE or streamable transport (default: 3033)
--endpoint, -e Specify the endpoint for the transport:
- For SSE: default is "/sse"
- For streamable: default is "/mcp"
--help, -h Show this help message๐๏ธ MinIO Configuration (Optional)
For better performance and sharing capabilities, you can configure MinIO object storage to store chart images as URLs instead of Base64 data.
If MinIO is not configured or unavailable, the system automatically falls back toBase64 data output, ensuring compatibility.
We can Integrate with MinIO object storage providers below.
MinIO: High-performance, S3-compatible object storage. Use MinIO JavaScript Client for direct integration.
Alibaba Cloud OSS: Use the Alibaba Cloud SDK for OSS services.
Google Cloud Storage: Integrate using Google Cloud SDK or compatible API.
Microsoft Azure Blob Storage: Use Azure SDK for Blob storage access.
Tencent Cloud COS: Use the Tencent Cloud SDK for COS integration.
Also, we can setup MinIO locally for free.
Install and start MinIO locally:
# Download MinIO (macOS example) brew install minio/stable/minio # Start MinIO server minio server ~/minio-data --console-address :9001Configure environment variables:
# Copy the example environment file cp .env.example .env # Edit .env with your MinIO settings MINIO_ENDPOINT=localhost MINIO_PORT=9000 MINIO_USE_SSL=false MINIO_ACCESS_KEY=minioadmin MINIO_SECRET_KEY=minioadmin MINIO_BUCKET_NAME=mcp-echarts
๐จ Development
Install dependencies:
npm installBuild the server:
npm run buildStart the MCP server:
npm run start๐ง๐ปโ๐ป Contributors
susuperli: Use
MinIOto save the chart image base64 and return the url. #10Meet-student: Add
outputTypeschema for all chart tools. #24hustcc: Initial the repo.
๐ License
MIT@hustcc.
Available Tools
18 toolsgenerate_area_chartB
Generate an area chart to show data trends under continuous independent variables and observe the overall data trend, such as, displacement = velocity (average or instantaneous) ร time: s = v ร t. If the x-axis is time (t) and the y-axis is velocity (v) at each moment, an area chart allows you to observe the trend of velocity over time and infer the distance traveled by the area's size.
| Name | Required | Description | Default |
|---|---|---|---|
| axisXTitle | No | Set the x-axis title of chart. | |
| axisYTitle | No | Set the y-axis title of chart. | |
| data | Yes | Data for area chart, such as, [{ time: '2015', value: 23 }, { time: '2016', value: 32 }]. For multiple series: [{ group: 'Series A', time: '2015', value: 23 }, { group: 'Series B', time: '2015', value: 18 }]. | |
| height | No | Set the height of the chart, default is 600px. | |
| showArea | No | Whether to fill the area under the line. Default is false. | |
| showSymbol | No | Whether to show symbols on data points. Default is true. | |
| smooth | No | Whether to use a smooth curve. Default is false. | |
| stack | No | Whether stacking is enabled. When enabled, line charts require a 'group' field in the data. | |
| theme | No | Set the theme for the chart, optional, default is 'default'. | default |
| title | No | Set the title of the chart. | |
| width | No | Set the width of the chart, default is 800px. | |
| outputType | No | The output type of the diagram. Can be 'png', 'svg' or 'option'. Default is 'png', 'png' will return the rendered PNG image, 'svg' will return the rendered SVG string, and 'option' will return the valid ECharts option. | png |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits such as side effects, required permissions, or limitations. For a chart generation tool, it is likely read-only, but this is not stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single paragraph with an explanatory example, but it could be more concise without losing clarity. It is moderately concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description should clarify what the tool returns (e.g., image or options). The outputType parameter covers this in the schema, but the description itself omits this, leaving ambiguity about the output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description adds minimal value beyond the schema. While the physics example illustrates the data structure, it does not provide additional semantics for each parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it generates an area chart for showing data trends under continuous independent variables, with a specific physics example. However, it does not explicitly differentiate from sibling tools like line chart, missing a chance to clarify when to choose area over line.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides a use case (continuous variables, overall trend) and an example, but lacks guidance on when not to use it or alternatives among the many sibling chart tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_bar_chartB
Generate a bar chart to show data for numerical comparisons among different categories, such as, comparing categorical data and for horizontal comparisons.
| Name | Required | Description | Default |
|---|---|---|---|
| axisXTitle | No | Set the x-axis title of chart. | |
| axisYTitle | No | Set the y-axis title of chart. | |
| data | Yes | Data for bar chart, such as, [{ category: 'Category A', value: 10 }, { category: 'Category B', value: 20 }] or [{ category: 'Category A', value: 10, group: 'Group A' }]. | |
| height | No | Set the height of the chart, default is 600px. | |
| group | No | Whether grouping is enabled. When enabled, bar charts require a 'group' field in the data. When `group` is true, `stack` should be false. | |
| stack | No | Whether stacking is enabled. When enabled, bar charts require a 'group' field in the data. When `stack` is true, `group` should be false. | |
| theme | No | Set the theme for the chart, optional, default is 'default'. | default |
| title | No | Set the title of the chart. | |
| width | No | Set the width of the chart, default is 800px. | |
| outputType | No | The output type of the diagram. Can be 'png', 'svg' or 'option'. Default is 'png', 'png' will return the rendered PNG image, 'svg' will return the rendered SVG string, and 'option' will return the valid ECharts option. | png |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It only states 'generate a bar chart' without disclosing behavioral traits such as side effects, authentication, or whether the operation is safe (e.g., read-only). The return type is hinted via outputType parameter but not in description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence but contains redundancy ('comparing categorical data' and 'horizontal comparisons' overlap). It is sufficiently short but could be more concise and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 10 parameters and no output schema, the description provides a minimal overview but does not cover output format, grouping/stacking behavior, or practical usage scenarios. The schema fills many gaps, so completeness is adequate but not thorough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds no additional meaning beyond the schema; it does not elaborate on parameter usage or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool generates a bar chart for numerical comparisons among different categories, which distinguishes it from sibling chart types like line or pie. However, it does not explicitly differentiate from other chart tools, but the context of bar charts is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for comparing categorical data numerically but lacks explicit guidance on when to prefer this tool over siblings or when not to use it. No alternatives or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_boxplot_chartB
Generate a boxplot chart to show data for statistical summaries among different categories, such as, comparing the distribution of data points across categories.
| Name | Required | Description | Default |
|---|---|---|---|
| axisXTitle | No | Set the x-axis title of chart. | |
| axisYTitle | No | Set the y-axis title of chart. | |
| data | Yes | Data for boxplot chart, such as, [{ category: 'Category A', value: 10 }, { category: 'Category B', value: 20, group: 'Group A' }]. | |
| height | No | Set the height of the chart, default is 600px. | |
| theme | No | Set the theme for the chart, optional, default is 'default'. | default |
| title | No | Set the title of the chart. | |
| width | No | Set the width of the chart, default is 800px. | |
| outputType | No | The output type of the diagram. Can be 'png', 'svg' or 'option'. Default is 'png', 'png' will return the rendered PNG image, 'svg' will return the rendered SVG string, and 'option' will return the valid ECharts option. | png |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavior but only says 'generate a boxplot chart'. It does not mention that the tool computes statistics, handles outliers, or returns rendered images (outputType is in schema but not description). The description adds minimal behavioral context beyond the name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, front-loaded with the core action ('Generate a boxplot chart'), and contains no redundant text. Every word contributes to stating the tool's purpose efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 8 parameters and no output schema, yet the description only explains basic purpose. It fails to note that boxplots require multiple values per category for meaningful statistics, the output format (image/option), or chart customization options. Incomplete for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description does not add meaning to the parameters; it only restates that data is for the chart. The example in the description mirrors schema examples, providing no extra clarity. No additional semantics beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool generates a boxplot chart for statistical summaries across categories, which distinguishes it from sibling chart tools like bar or line charts. The verb 'generate' and resource 'boxplot chart' are specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention that boxplots are for distribution comparison, nor does it exclude scenarios where other chart types would be more appropriate. Explicit usage criteria are absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_candlestick_chartA
Generate a candlestick chart for financial data visualization, such as, stock prices, cryptocurrency prices, or other OHLC (Open-High-Low-Close) data.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | Data for candlestick chart, such as, [{ date: '2023-01-01', open: 100, high: 110, low: 95, close: 105, volume: 10000 }]. | |
| height | No | Set the height of the chart, default is 600px. | |
| showVolume | No | Whether to show volume chart below candlestick. Default is false. | |
| theme | No | Set the theme for the chart, optional, default is 'default'. | default |
| title | No | Set the title of the chart. | |
| width | No | Set the width of the chart, default is 800px. | |
| outputType | No | The output type of the diagram. Can be 'png', 'svg' or 'option'. Default is 'png', 'png' will return the rendered PNG image, 'svg' will return the rendered SVG string, and 'option' will return the valid ECharts option. | png |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It only states the basic function without disclosing behavioral traits such as performance, limitations, side effects, or return format. This leaves the agent uninformed about important execution characteristics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that efficiently communicates the tool's purpose without unnecessary words. It is well-structured and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the comprehensive input schema (100% coverage) and no output schema, the description fairly captures the tool's purpose. However, it could hint at the return values (PNG/SVG/option) which are defined only in the schema, but the absence is minor.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so the description adds no additional meaning beyond what the schema already provides. The mention of 'OHLC data' is redundant with the schema's parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool generates a candlestick chart specifically for financial OHLC data, such as stock or cryptocurrency prices. This clearly distinguishes it from sibling chart generators that serve different chart types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for financial data but does not provide explicit guidance on when to use this tool versus alternatives like generate_line_chart or generate_bar_chart. No exclusions or when-not-to-use information is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_echartsB
Generate visual charts using Apache ECharts with echarts option and configuration dynamically. Apache ECharts is an Open Source JavaScript Visualization Library, which is used to create interactive charts and visualizations in web applications. It supports a wide range of chart types, including line charts, bar charts, pie charts, scatter plots, and more. ECharts is highly customizable and can be integrated with various data sources to create dynamic visualizations.
| Name | Required | Description | Default |
|---|---|---|---|
| echartsOption | Yes | ECharts option and configuration used to generate charts. For example: { "title": { "text": "ECharts Entry Example", "left": "center", "top": "2%" }, "tooltip": {}, "xAxis": { "data": ["shirt", "cardigan", "chiffon", "pants", "heels", "socks"] }, "yAxis": {}, "series": [{ "name": "Sales", "type": "bar", "data": [5, 20, 36, 10, 10, 20] }] } ATTENTION: A valid ECharts option must be a valid JSON string, and cannot be empty. | |
| width | No | The width of the ECharts in pixels. Default is 800. | |
| height | No | The height of the ECharts in pixels. Default is 600. | |
| theme | No | ECharts theme, optional. Default is 'default'. | default |
| outputType | No | The output type of the diagram. Can be 'png', 'svg' or 'option'. Default is 'png', 'png' will return the rendered PNG image, 'svg' will return the rendered SVG string, and 'option' will return the valid ECharts option. | png |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fails to disclose behavioral traits such as output format, error handling, or side effects. It only describes ECharts generically, not the tool's specific behavior (e.g., what happens with invalid options, or that it returns an image).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single paragraph that front-loads the core action but includes extraneous background about ECharts (e.g., 'Open Source JavaScript Visualization Library'). It could be more concise by focusing only on the tool's function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (dynamic ECharts option) and lack of output schema, the description should clarify what the tool returns (e.g., PNG, SVG, or option). It only says 'generate visual charts' without specifying that the output is a rendered image or string, leaving a significant gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All parameters have descriptions in the input schema (100% coverage), so the baseline is 3. The description adds no additional parameter-specific meaning beyond what is already in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool generates visual charts using Apache ECharts with dynamic configuration. It distinguishes from sibling tools (e.g., generate_bar_chart) by emphasizing the ability to provide arbitrary ECharts options, making the purpose specific and non-redundant.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide guidance on when to use this tool versus the more specific sibling tools. It lacks explicit when-to-use, when-not-to-use, or alternative selection criteria, leaving the agent without decision support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_funnel_chartA
Generate a funnel chart to visualize the progressive reduction of data as it passes through stages, such as, the conversion rates of users from visiting a website to completing a purchase.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | Data for funnel chart, such as, [{ category: 'Browse Website', value: 50000 }, { category: 'Add to Cart', value: 35000 }, { category: 'Generate Order', value: 25000 }]. | |
| height | No | Set the height of the chart, default is 600px. | |
| theme | No | Set the theme for the chart, optional, default is 'default'. | default |
| title | No | Set the title of the chart. | |
| width | No | Set the width of the chart, default is 800px. | |
| outputType | No | The output type of the diagram. Can be 'png', 'svg' or 'option'. Default is 'png', 'png' will return the rendered PNG image, 'svg' will return the rendered SVG string, and 'option' will return the valid ECharts option. | png |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries full burden. It does not disclose behavioral traits beyond the chart type; for example, it doesn't mention that the tool returns an image or ECharts option (though outputType parameter hints at it). Minimal disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with an embedded example, no wordiness, front-loaded with the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description effectively explains the tool's purpose and provides a typical use case. However, it could mention output format or behavior more explicitly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds no additional meaning beyond the schema; it does not explain parameters or their usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it generates a funnel chart and explains its purpose (visualizing progressive reduction through stages) with a concrete example (conversion rates). It distinguishes from sibling chart tools by specifying the chart type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use (for conversion rates, progressive reduction), but does not explicitly mention when not to use or compare with alternatives. However, the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_gauge_chartC
Generate a gauge chart to display single indicator's current status, such as, CPU usage rate, completion progress, or performance scores.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | Data for gauge chart, such as, [{ name: 'CPU Usage', value: 75 }]. Multiple gauges can be displayed. | |
| height | No | Set the height of the chart, default is 600px. | |
| max | No | Maximum value of the gauge, default is 100. | |
| min | No | Minimum value of the gauge, default is 0. | |
| theme | No | Set the theme for the chart, optional, default is 'default'. | default |
| title | No | Set the title of the chart. | |
| width | No | Set the width of the chart, default is 800px. | |
| outputType | No | The output type of the diagram. Can be 'png', 'svg' or 'option'. Default is 'png', 'png' will return the rendered PNG image, 'svg' will return the rendered SVG string, and 'option' will return the valid ECharts option. | png |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only states it 'generates' a chart without any behavioral details such as side effects, permission requirements, or output format. Critical context is missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that directly states purpose. It is concise and front-loaded, though it could be slightly expanded for clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 8 parameters, no output schema, and no behavioral context from annotations or description, the description is insufficient for an agent to fully understand the tool's behavior and return value.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for all 8 parameters, providing adequate meaning. The description adds no extra value beyond the schema, so baseline score applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it generates a gauge chart for single indicator status, but the input schema allows multiple data items for multiple gauges, creating a minor inconsistency. Nonetheless, the verb and resource are specific and distinct from sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description does not indicate when-not to use it or mention any prerequisite conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_graph_chartB
Generate a network graph chart to show relationships (edges) between entities (nodes), such as, relationships between people in social networks.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | Data for network graph chart, such as, { nodes: [{ id: 'node1', name: 'Node 1' }], edges: [{ source: 'node1', target: 'node2' }] } | |
| height | No | Set the height of the chart, default is 600px. | |
| layout | No | Layout algorithm for the graph. Default is 'force'. | force |
| theme | No | Set the theme for the chart, optional, default is 'default'. | default |
| title | No | Set the title of the chart. | |
| width | No | Set the width of the chart, default is 800px. | |
| outputType | No | The output type of the diagram. Can be 'png', 'svg' or 'option'. Default is 'png', 'png' will return the rendered PNG image, 'svg' will return the rendered SVG string, and 'option' will return the valid ECharts option. | png |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral traits. It discloses no side effects, auth needs, rate limits, or response behavior beyond stating what it generates. This is insufficient for a tool with potential side effects or performance implications.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no redundant information. It efficiently conveys the core purpose, though it could be slightly more structured (e.g., bullet points) for readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The schema is rich and covers all 7 parameters, but the description lacks context about output types (e.g., how to interpret 'option'), usage scenarios, or performance considerations. For a moderately complex tool, it is adequate but could be more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so each parameter has a description. The tool description adds an example but does not provide additional meaning beyond the schema's details. Baseline 3 is appropriate given full schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool generates a network graph chart for relationships between entities, using specific verbs and resource. It distinguishes from sibling chart tools (e.g., bar, pie) by specifying 'network graph' and 'relationships between people in social networks'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage via an example (social networks) but lacks explicit when-to-use, when-not-to-use, or alternatives among many sibling tools. Users may need to infer when to choose this over other chart types.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_heatmap_chartB
Generate a heatmap chart to display data density or intensity distribution, such as, user activity patterns by time and day, or correlation matrix.
| Name | Required | Description | Default |
|---|---|---|---|
| axisXTitle | No | Set the x-axis title of chart. | |
| axisYTitle | No | Set the y-axis title of chart. | |
| data | Yes | Data for heatmap chart, such as, [{ x: 'Mon', y: '12AM', value: 5 }, { x: 'Tue', y: '1AM', value: 3 }]. | |
| height | No | Set the height of the chart, default is 600px. | |
| theme | No | Set the theme for the chart, optional, default is 'default'. | default |
| title | No | Set the title of the chart. | |
| width | No | Set the width of the chart, default is 800px. | |
| outputType | No | The output type of the diagram. Can be 'png', 'svg' or 'option'. Default is 'png', 'png' will return the rendered PNG image, 'svg' will return the rendered SVG string, and 'option' will return the valid ECharts option. | png |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility for behavioral transparency. It fails to mention any side effects, required permissions, or whether the tool is read-only. It merely describes the output, which is already detailed in the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, concise and front-loaded with the core purpose. It is efficient but could benefit from a structured breakdown of key considerations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of the tool (8 parameters, many siblings), the description is minimal. It lacks context on when to choose a heatmap over other chart types and does not mention any constraints beyond what is in the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all parameters. The description adds no additional meaning or context beyond what is in the schema, achieving the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: generate a heatmap chart to display data density or intensity distribution, with concrete examples (user activity patterns, correlation matrix). It effectively distinguishes from sibling chart tools by specifying the chart type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like scatter or line charts. The description only states what it does, without indicating use cases or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_line_chartB
Generate a line chart to show trends over time, such as, the ratio of Apple computer sales to Apple's profits changed from 2000 to 2016.
| Name | Required | Description | Default |
|---|---|---|---|
| axisXTitle | No | Set the x-axis title of chart. | |
| axisYTitle | No | Set the y-axis title of chart. | |
| data | Yes | Data for line chart, such as, [{ time: '2015', value: 23 }, { time: '2016', value: 32 }]. For multiple series: [{ group: 'Series A', time: '2015', value: 23 }, { group: 'Series B', time: '2015', value: 18 }]. | |
| height | No | Set the height of the chart, default is 600px. | |
| showArea | No | Whether to fill the area under the line. Default is false. | |
| showSymbol | No | Whether to show symbols on data points. Default is true. | |
| smooth | No | Whether to use a smooth curve. Default is false. | |
| stack | No | Whether stacking is enabled. When enabled, line charts require a 'group' field in the data. | |
| theme | No | Set the theme for the chart, optional, default is 'default'. | default |
| title | No | Set the title of the chart. | |
| width | No | Set the width of the chart, default is 800px. | |
| outputType | No | The output type of the diagram. Can be 'png', 'svg' or 'option'. Default is 'png', 'png' will return the rendered PNG image, 'svg' will return the rendered SVG string, and 'option' will return the valid ECharts option. | png |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as return format (e.g., image or options), side effects, or limitations. The schema hints at outputType but the description itself is silent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with an example, which is concise and front-loaded with purpose. No extraneous content, though a bit more structure would improve clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 12 parameters and no output schema, the description should provide more context on what the output is (e.g., image, options) and when to use it relative to many similar siblings. The example is helpful but insufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all parameters are documented. The description does not add extra meaning beyond the schema, meeting the baseline expectation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool generates a line chart to show trends over time, with a concrete example. This distinguishes it from sibling chart tools like bar or pie charts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for time series trends via the example, but lacks explicit guidance on when to choose this over alternatives or what conditions disqualify its use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_parallel_chartB
Generate a parallel coordinates chart to display multi-dimensional data, such as, comparing different products across multiple attributes.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | Data for parallel chart, such as, [{ name: 'Product A', values: [4.2, 3.4, 2.3, 1.8] }]. | |
| dimensions | Yes | Names of the dimensions/axes, such as, ['Price', 'Quality', 'Service', 'Value']. | |
| height | No | Set the height of the chart, default is 600px. | |
| theme | No | Set the theme for the chart, optional, default is 'default'. | default |
| title | No | Set the title of the chart. | |
| width | No | Set the width of the chart, default is 800px. | |
| outputType | No | The output type of the diagram. Can be 'png', 'svg' or 'option'. Default is 'png', 'png' will return the rendered PNG image, 'svg' will return the rendered SVG string, and 'option' will return the valid ECharts option. | png |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description only states the chart type. It does not disclose output behavior, side effects, permissions, or limitations beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with the key action and resource, no extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Description is minimal but covers the basic purpose. Given 7 parameters and no output schema, more detail on when to use this chart type would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds no additional parameter context beyond the schema's own descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it generates a parallel coordinates chart for multi-dimensional data, with a concrete example of comparing products across attributes. The tool name and description uniquely identify it among sibling chart generators.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use parallel coordinates vs other chart types, no mention of alternatives or when not to use the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_pie_chartB
Generate a pie chart to show the proportion of parts, such as, market share and budget allocation.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | Data for pie chart, such as, [{ category: 'Category A', value: 27 }, { category: 'Category B', value: 25 }]. | |
| height | No | Set the height of the chart, default is 600px. | |
| innerRadius | No | Set the innerRadius of pie chart, the value between 0 and 1. Set the pie chart as a donut chart. Set the value to 0.6 or number in [0 ,1] to enable it. | |
| theme | No | Set the theme for the chart, optional, default is 'default'. | default |
| title | No | Set the title of the chart. | |
| width | No | Set the width of the chart, default is 800px. | |
| outputType | No | The output type of the diagram. Can be 'png', 'svg' or 'option'. Default is 'png', 'png' will return the rendered PNG image, 'svg' will return the rendered SVG string, and 'option' will return the valid ECharts option. | png |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits (e.g., idempotency, side effects, or performance characteristics). The schema covers output format options, but the description adds no behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that efficiently conveys the core purpose. It is appropriately sized, though it could include a bit more detail without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (7 parameters, no output schema) and the large number of sibling chart tools, the description is too minimal. It does not explain return values or provide guidance on how this chart differs from alternatives, leaving the agent to infer from the name alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The tool description does not add any additional meaning beyond what the schema already provides for parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool generates a pie chart to show proportions, with concrete examples like market share and budget allocation. It distinctly identifies the specific chart type among many sibling chart generators.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use (proportional data) through examples but lacks explicit guidance on when not to use or alternatives among the many sibling chart tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_radar_chartB
Generate a radar chart to display multidimensional data (four dimensions or more), such as, evaluate Huawei and Apple phones in terms of five dimensions: ease of use, functionality, camera, benchmark scores, and battery life.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | Data for radar chart, such as, [{ name: 'Design', value: 70 }, { name: 'Performance', value: 85 }] or [{ name: 'Design', value: 70, group: 'iPhone' }]. | |
| height | No | Set the height of the chart, default is 600px. | |
| theme | No | Set the theme for the chart, optional, default is 'default'. | default |
| title | No | Set the title of the chart. | |
| width | No | Set the width of the chart, default is 800px. | |
| outputType | No | The output type of the diagram. Can be 'png', 'svg' or 'option'. Default is 'png', 'png' will return the rendered PNG image, 'svg' will return the rendered SVG string, and 'option' will return the valid ECharts option. | png |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only states what the tool does, not how it behaves (e.g., output format, error handling, performance considerations). The example is helpful but insufficient for transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that efficiently communicates purpose and provides a concrete example. It is front-loaded and contains no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (multiple parameters, outputType), the description is incomplete. It does not mention the output formats or that the tool can return an image, SVG, or option. The output schema is absent, so the description should cover return behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds value by illustrating how to structure data for multiple series (groups) and dimensions, which goes beyond the schema's definitions. This enhances understanding of the data parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool generates a radar chart for multidimensional data with four or more dimensions. It includes an example comparing phones, which helps clarify the purpose. However, it could more explicitly differentiate radar charts from other chart types beyond mentioning 'multidimensional'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides an example but no explicit guidance on when to use this tool versus alternatives. It does not mention prerequisites, limitations, or when not to use radar charts. For a tool with many siblings, this lack of usage context is a gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_sankey_chartB
Generate a sankey chart to visualize the flow of data between different stages or categories, such as, the user journey from landing on a page to completing a purchase.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | Data for sankey chart, such as, [{ source: 'Landing Page', target: 'Product Page', value: 50000 }, { source: 'Product Page', target: 'Add to Cart', value: 35000 }]. | |
| height | No | Set the height of the chart, default is 600px. | |
| nodeAlign | No | Alignment of nodes in the sankey chart, such as, 'left', 'right', or 'justify'. | justify |
| theme | No | Set the theme for the chart, optional, default is 'default'. | default |
| title | No | Set the title of the chart. | |
| width | No | Set the width of the chart, default is 800px. | |
| outputType | No | The output type of the diagram. Can be 'png', 'svg' or 'option'. Default is 'png', 'png' will return the rendered PNG image, 'svg' will return the rendered SVG string, and 'option' will return the valid ECharts option. | png |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as output format, side effects, or permissions. It merely states the purpose without additional behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with an example, making it concise and front-loaded. It could be more structured but is not verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description fails to explain return values or output types (though schema covers this). For a tool with 7 parameters and no annotations, the description lacks necessary context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description does not add extra meaning beyond what the schema already provides for each parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it generates a Sankey chart for visualizing flow between stages, with an example (user journey). It distinguishes from sibling chart tools like bar or line by specifying the chart type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the description (for flow visualization), but there is no explicit guidance on when to use this tool versus alternatives, nor any mention of when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_scatter_chartA
Generate a scatter chart to show the relationship between two variables, helps discover their relationship or trends, such as, the strength of correlation, data distribution patterns.
| Name | Required | Description | Default |
|---|---|---|---|
| axisXTitle | No | Set the x-axis title of chart. | |
| axisYTitle | No | Set the y-axis title of chart. | |
| data | Yes | Data for scatter chart, such as, [{ x: 10, y: 15 }, { x: 20, y: 25 }]. | |
| height | No | Set the height of the chart, default is 600px. | |
| theme | No | Set the theme for the chart, optional, default is 'default'. | default |
| title | No | Set the title of the chart. | |
| width | No | Set the width of the chart, default is 800px. | |
| outputType | No | The output type of the diagram. Can be 'png', 'svg' or 'option'. Default is 'png', 'png' will return the rendered PNG image, 'svg' will return the rendered SVG string, and 'option' will return the valid ECharts option. | png |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It describes the chart type and purpose but lacks details on side effects, data constraints, or output specifics beyond basic chart generation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that effectively communicates the tool's purpose without unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the agent might benefit from more detail on output format or behavior. The description covers the 'why' but not the 'what' of the return value, though the input schema's outputType parameter hints at it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds no new semantic information about parameters beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Generate a scatter chart' and explains its purpose: 'to show the relationship between two variables'. This distinguishes it from sibling chart tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context on when to use the tool: 'helps discover their relationship or trends, such as, the strength of correlation, data distribution patterns.' It doesn't explicitly state alternatives, but the purpose is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_sunburst_chartB
Generate a sunburst chart to display multi-level hierarchical data, such as, organizational structure, file system hierarchy, or category breakdown.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | Data for sunburst chart, such as, [{ name: 'Technology', value: 100, children: [{ name: 'Frontend', value: 60, children: [{ name: 'React', value: 30 }] }] }]. | |
| height | No | Set the height of the chart, default is 600px. | |
| theme | No | Set the theme for the chart, optional, default is 'default'. | default |
| title | No | Set the title of the chart. | |
| width | No | Set the width of the chart, default is 800px. | |
| outputType | No | The output type of the diagram. Can be 'png', 'svg' or 'option'. Default is 'png', 'png' will return the rendered PNG image, 'svg' will return the rendered SVG string, and 'option' will return the valid ECharts option. | png |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description fails to disclose any behavioral traits beyond the schema, such as output format limitations, performance considerations, or that the chart uses ECharts.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single clear sentence that is front-loaded, but it could include a brief note on output types or usage without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a hierarchical chart with no output schema, the description is adequate but does not explain what the function returns (e.g., PNG, SVG, or option) or that it uses ECharts, leaving some gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description does not add any additional meaning or context for the parameters beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it generates a sunburst chart for multi-level hierarchical data with concrete examples (organizational structure, file system hierarchy), making it distinct from siblings like pie or scatter charts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for hierarchical data but lacks explicit guidance on when to choose sunburst over sibling tools like treemap or tree charts, and does not mention when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_tree_chartB
Generate a tree chart to display hierarchical data structure, such as, organizational chart, family tree, or file directory structure.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | Tree data structure, such as, { name: 'Root', children: [{ name: 'Child 1' }, { name: 'Child 2' }] }. | |
| height | No | Set the height of the chart, default is 600px. | |
| layout | No | Tree layout type. Default is 'orthogonal'. | orthogonal |
| orient | No | Tree orientation. LR=left-to-right, RL=right-to-left, TB=top-to-bottom, BT=bottom-to-top. Default is 'LR'. | LR |
| theme | No | Set the theme for the chart, optional, default is 'default'. | default |
| title | No | Set the title of the chart. | |
| width | No | Set the width of the chart, default is 800px. | |
| outputType | No | The output type of the diagram. Can be 'png', 'svg' or 'option'. Default is 'png', 'png' will return the rendered PNG image, 'svg' will return the rendered SVG string, and 'option' will return the valid ECharts option. | png |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description only states the basic function. It does not disclose behavioral traits such as read-only nature, authentication needs, or side effects, which are critical for an AI agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with all essential information. Front-loaded purpose, no redundant words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite rich schema, the description is too thin for a tool with 8 parameters, nested input, and no output schema. It lacks explanation of output format, behavior, or data structure beyond minimal examples.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds no additional parameter meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool generates a tree chart for hierarchical data, with concrete examples (organizational chart, family tree, file directory), distinguishing it from sibling chart tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for hierarchical data but provides no explicit guidance on when to use vs alternatives, no when-not statements, and no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_treemap_chartB
Generate a treemap chart to display hierarchical data and can intuitively show comparisons between items at the same level, such as, show disk space usage with treemap.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | Data for treemap chart, such as, [{ name: 'Design', value: 70, children: [{ name: 'Tech', value: 20 }] }]. | |
| height | No | Set the height of the chart, default is 600px. | |
| theme | No | Set the theme for the chart, optional, default is 'default'. | default |
| title | No | Set the title of the chart. | |
| width | No | Set the width of the chart, default is 800px. | |
| outputType | No | The output type of the diagram. Can be 'png', 'svg' or 'option'. Default is 'png', 'png' will return the rendered PNG image, 'svg' will return the rendered SVG string, and 'option' will return the valid ECharts option. | png |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behaviors. It does not mention side effects, permissions, output format details, or any limitations. The outputType parameter is in the schema but not highlighted in the description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with an example, which is concise and front-loaded with the main purpose. It efficiently communicates the tool's function without unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The schema provides detailed parameter information, but the description lacks mention of output options (e.g., png, svg, option) and does not explain what the tool returns. Given the complexity of treemap data, more guidance would be helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the description is not required to add parameter details. However, it adds no extra context beyond the schema, such as explaining how data should be structured for a treemap or usage tips.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'generate' and the resource 'treemap chart', explains its use for hierarchical data and comparisons at the same level, and provides a concrete example (disk space usage). This distinguishes it from sibling chart tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for hierarchical data but does not explicitly state when to use this tool over alternatives or when not to use it. No guidance on exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
v0.6.1- Added
generate_area_chart - Changed
generate_sunburst_chart5 fields changed- removed
Input schema / properties / data / items / properties / children / items / $refRemoved value: -"#/properties/data/items" - added
Input schema / properties / data / items / properties / children / items / additionalPropertiesAdded value: +false - added
Input schema / properties / data / items / properties / children / items / propertiesAdded value: +{ + "children": { + "description": "Child nodes for hierarchical structure.", + "items": { + "additionalProperties": false, + "properties": { + "children": { + "description": "Child nodes for hierarchical structure.", + "items": { + "additionalProperties": false, + "properties": { + "children": { + "description": "Child nodes for hierarchical structure.", + "items": { + "additionalProperties": false, + "properties": { + "name": { + "description": "Node name, such as 'Technology'.", + "type": "string" + }, + "value": { + "description": "Node value, such as 100.", + "type": "number" + } + }, + "required": [ + "name", + "value" + ], + "type": "object" + }, + "type": "array" + }, + "name": { + "description": "Node name, such as 'Technology'.", + "type": "string" + }, + "value": { + "description": "Node value, such as 100.", + "type": "number" + } + }, + "required": [ + "name", + "value" + ], + "type": "object" + }, + "type": "array" + }, + "name": { + "description": "Node name, such as 'Technology'.", + "type": "string" + }, + "value": { + "description": "Node value, such as 100.", + "type": "number" + } + }, + "required": [ + "name", + "value" + ], + "type": "object" + }, + "type": "array" + }, + "name": { + "description": "Node name, such as 'Technology'.", + "type": "string" + }, + "value": { + "description": "Node value, such as 100.", + "type": "number" + } +} - added
Input schema / properties / data / items / properties / children / items / requiredAdded value: +[ + "name", + "value" +] - added
Input schema / properties / data / items / properties / children / items / typeAdded value: +"object"
- Changed
generate_tree_chart5 fields changed- removed
Input schema / properties / data / properties / children / items / properties / children / items / $refRemoved value: -"#/properties/data/properties/children/items" - added
Input schema / properties / data / properties / children / items / properties / children / items / additionalPropertiesAdded value: +false - added
Input schema / properties / data / properties / children / items / properties / children / items / propertiesAdded value: +{ + "children": { + "description": "Child nodes for hierarchical structure.", + "items": { + "additionalProperties": false, + "properties": { + "children": { + "description": "Child nodes for hierarchical structure.", + "items": { + "additionalProperties": false, + "properties": { + "name": { + "description": "Node name, such as 'Root'.", + "type": "string" + }, + "value": { + "description": "Node value (optional).", + "type": "number" + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "type": "array" + }, + "name": { + "description": "Node name, such as 'Root'.", + "type": "string" + }, + "value": { + "description": "Node value (optional).", + "type": "number" + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "type": "array" + }, + "name": { + "description": "Node name, such as 'Root'.", + "type": "string" + }, + "value": { + "description": "Node value (optional).", + "type": "number" + } +} - added
Input schema / properties / data / properties / children / items / properties / children / items / requiredAdded value: +[ + "name" +] - added
Input schema / properties / data / properties / children / items / properties / children / items / typeAdded value: +"object"
- Changed
generate_treemap_chart5 fields changed- removed
Input schema / properties / data / items / properties / children / items / $refRemoved value: -"#/properties/data/items" - added
Input schema / properties / data / items / properties / children / items / additionalPropertiesAdded value: +false - added
Input schema / properties / data / items / properties / children / items / propertiesAdded value: +{ + "children": { + "description": "Child nodes for hierarchical structure.", + "items": { + "additionalProperties": false, + "properties": { + "children": { + "description": "Child nodes for hierarchical structure.", + "items": { + "additionalProperties": false, + "properties": { + "children": { + "description": "Child nodes for hierarchical structure.", + "items": { + "additionalProperties": false, + "properties": { + "name": { + "description": "Node name, such as 'Design'.", + "type": "string" + }, + "value": { + "description": "Node value, such as 70.", + "type": "number" + } + }, + "required": [ + "name", + "value" + ], + "type": "object" + }, + "type": "array" + }, + "name": { + "description": "Node name, such as 'Design'.", + "type": "string" + }, + "value": { + "description": "Node value, such as 70.", + "type": "number" + } + }, + "required": [ + "name", + "value" + ], + "type": "object" + }, + "type": "array" + }, + "name": { + "description": "Node name, such as 'Design'.", + "type": "string" + }, + "value": { + "description": "Node value, such as 70.", + "type": "number" + } + }, + "required": [ + "name", + "value" + ], + "type": "object" + }, + "type": "array" + }, + "name": { + "description": "Node name, such as 'Design'.", + "type": "string" + }, + "value": { + "description": "Node value, such as 70.", + "type": "number" + } +} - added
Input schema / properties / data / items / properties / children / items / requiredAdded value: +[ + "name", + "value" +] - added
Input schema / properties / data / items / properties / children / items / typeAdded value: +"object"
17 tool updates
v1.0.0- First observed
generate_bar_chart - First observed
generate_boxplot_chart - First observed
generate_candlestick_chart - First observed
generate_echarts - First observed
generate_funnel_chart - First observed
generate_gauge_chart - First observed
generate_graph_chart - First observed
generate_heatmap_chart - First observed
generate_line_chart - First observed
generate_parallel_chart - First observed
generate_pie_chart - First observed
generate_radar_chart - First observed
generate_sankey_chart - First observed
generate_scatter_chart - First observed
generate_sunburst_chart - First observed
generate_tree_chart - First observed
generate_treemap_chart
TDQS
Scored across 18 tools
Most tools target distinct chart types with clear purposes. However, the generic 'generate_echarts' tool overlaps with all others, potentially causing confusion if an agent misselects it instead of a specific chart function.
All tools follow the exact same naming pattern: 'generate_<chart_type>_chart'. This is perfectly consistent and predictable.
18 tools is a well-scoped count for a chart generation server. It covers a broad range of chart types without being overwhelming, and each tool serves a distinct purpose.
The server covers most major chart types needed for general visualization, including specialized ones like boxplot and candlestick. Minor missing types (e.g., maps, 3D) are acceptable gaps.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Generate production-ready chart code (Recharts, Chart.js, ECharts, Plotly) from a prompt.
Renders interactive Chart.js charts and dashboards inline in AI conversations.
Generate dynamic Mermaid diagrams and charts with AI assistance. Customize styles and export diagrโฆ
Renders interactive Chart.js charts and dashboards inline in AI conversations. Supports bar, line, area, pie, doughnut, scatter, and radar charts with multi-chart dashboard grids.
Related MCP Servers
- -licenseNot gradedqualityNot gradedmaintenanceEnables generation of 25+ types of charts and data visualizations using AntV, including bar charts, line charts, maps, mind maps, and specialized diagrams like fishbone and sankey charts. Supports both statistical charts and geographic visualizations for comprehensive data analysis and presentation.218-
- AlicenseNot gradedqualityDmaintenanceEnables generation of various chart types (bar, line, pie, scatter, radar, heatmap, and more) using ECharts library, returning preview URLs to visualize data through natural language requests.191MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to generate safe, runnable HTML chart pages from structured JSON data using Apache ECharts. It provides tools for chart type recommendation, page generation, validation, and patching with controlled, deterministic output.9MIT
- AlicenseAqualityDmaintenanceEnables AI agents to generate and render charts as PNG, SVG, or WebP images directly in chat interfaces. Supports Chart.js specifications and natural language descriptions for creating visualizations from data.391MIT