Skip to main content
Glama

MCP ECharts build npm Version Listed on Skillselion npm License Trust Score

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, and option formats, with validation for ECharts to facilitate the model's multi-round output of correct syntax and graphics.

  • MinIO Integration, store charts in MinIO object 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-echarts

Run 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 streamable

Then you can access the server at:

  • SSE transport: http://localhost:3033/sse

  • Streamable 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.

NOTE

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.

Also, we can setup MinIO locally for free.

  1. Install and start MinIO locally:

    # Download MinIO (macOS example)
    brew install minio/stable/minio
    
    # Start MinIO server
    minio server ~/minio-data --console-address :9001
  2. Configure 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 install

Build the server:

npm run build

Start the MCP server:

npm run start

๐Ÿง‘๐Ÿปโ€๐Ÿ’ป Contributors

  • lyw405: Supports 15+ charting MCP tool. #2

  • 2niuhe: Support MCP with SSE and Streaming HTTP. #17

  • susuperli: Use MinIO to save the chart image base64 and return the url. #10

  • BQXBQX: Use @napi-rs/canvas instead node-canvas. #3

  • Meet-student: Add outputType schema for all chart tools. #24

  • hustcc: Initial the repo.

๐Ÿ“„ License

MIT@hustcc.

Available Tools

18 tools
generate_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.

ParametersJSON Schema
NameRequiredDescriptionDefault
axisXTitleNoSet the x-axis title of chart.
axisYTitleNoSet the y-axis title of chart.
dataYesData 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 }].
heightNoSet the height of the chart, default is 600px.
showAreaNoWhether to fill the area under the line. Default is false.
showSymbolNoWhether to show symbols on data points. Default is true.
smoothNoWhether to use a smooth curve. Default is false.
stackNoWhether stacking is enabled. When enabled, line charts require a 'group' field in the data.
themeNoSet the theme for the chart, optional, default is 'default'.default
titleNoSet the title of the chart.
widthNoSet the width of the chart, default is 800px.
outputTypeNoThe 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

B3/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
axisXTitleNoSet the x-axis title of chart.
axisYTitleNoSet the y-axis title of chart.
dataYesData for bar chart, such as, [{ category: 'Category A', value: 10 }, { category: 'Category B', value: 20 }] or [{ category: 'Category A', value: 10, group: 'Group A' }].
heightNoSet the height of the chart, default is 600px.
groupNoWhether grouping is enabled. When enabled, bar charts require a 'group' field in the data. When `group` is true, `stack` should be false.
stackNoWhether stacking is enabled. When enabled, bar charts require a 'group' field in the data. When `stack` is true, `group` should be false.
themeNoSet the theme for the chart, optional, default is 'default'.default
titleNoSet the title of the chart.
widthNoSet the width of the chart, default is 800px.
outputTypeNoThe 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

B3.1/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
axisXTitleNoSet the x-axis title of chart.
axisYTitleNoSet the y-axis title of chart.
dataYesData for boxplot chart, such as, [{ category: 'Category A', value: 10 }, { category: 'Category B', value: 20, group: 'Group A' }].
heightNoSet the height of the chart, default is 600px.
themeNoSet the theme for the chart, optional, default is 'default'.default
titleNoSet the title of the chart.
widthNoSet the width of the chart, default is 800px.
outputTypeNoThe 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

B3.2/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataYesData for candlestick chart, such as, [{ date: '2023-01-01', open: 100, high: 110, low: 95, close: 105, volume: 10000 }].
heightNoSet the height of the chart, default is 600px.
showVolumeNoWhether to show volume chart below candlestick. Default is false.
themeNoSet the theme for the chart, optional, default is 'default'.default
titleNoSet the title of the chart.
widthNoSet the width of the chart, default is 800px.
outputTypeNoThe 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

A3.6/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
echartsOptionYesECharts 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.
widthNoThe width of the ECharts in pixels. Default is 800.
heightNoThe height of the ECharts in pixels. Default is 600.
themeNoECharts theme, optional. Default is 'default'.default
outputTypeNoThe 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

B3/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataYesData for funnel chart, such as, [{ category: 'Browse Website', value: 50000 }, { category: 'Add to Cart', value: 35000 }, { category: 'Generate Order', value: 25000 }].
heightNoSet the height of the chart, default is 600px.
themeNoSet the theme for the chart, optional, default is 'default'.default
titleNoSet the title of the chart.
widthNoSet the width of the chart, default is 800px.
outputTypeNoThe 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

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataYesData for gauge chart, such as, [{ name: 'CPU Usage', value: 75 }]. Multiple gauges can be displayed.
heightNoSet the height of the chart, default is 600px.
maxNoMaximum value of the gauge, default is 100.
minNoMinimum value of the gauge, default is 0.
themeNoSet the theme for the chart, optional, default is 'default'.default
titleNoSet the title of the chart.
widthNoSet the width of the chart, default is 800px.
outputTypeNoThe 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

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataYesData for network graph chart, such as, { nodes: [{ id: 'node1', name: 'Node 1' }], edges: [{ source: 'node1', target: 'node2' }] }
heightNoSet the height of the chart, default is 600px.
layoutNoLayout algorithm for the graph. Default is 'force'.force
themeNoSet the theme for the chart, optional, default is 'default'.default
titleNoSet the title of the chart.
widthNoSet the width of the chart, default is 800px.
outputTypeNoThe 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

B3.4/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
axisXTitleNoSet the x-axis title of chart.
axisYTitleNoSet the y-axis title of chart.
dataYesData for heatmap chart, such as, [{ x: 'Mon', y: '12AM', value: 5 }, { x: 'Tue', y: '1AM', value: 3 }].
heightNoSet the height of the chart, default is 600px.
themeNoSet the theme for the chart, optional, default is 'default'.default
titleNoSet the title of the chart.
widthNoSet the width of the chart, default is 800px.
outputTypeNoThe 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

B3.2/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
axisXTitleNoSet the x-axis title of chart.
axisYTitleNoSet the y-axis title of chart.
dataYesData 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 }].
heightNoSet the height of the chart, default is 600px.
showAreaNoWhether to fill the area under the line. Default is false.
showSymbolNoWhether to show symbols on data points. Default is true.
smoothNoWhether to use a smooth curve. Default is false.
stackNoWhether stacking is enabled. When enabled, line charts require a 'group' field in the data.
themeNoSet the theme for the chart, optional, default is 'default'.default
titleNoSet the title of the chart.
widthNoSet the width of the chart, default is 800px.
outputTypeNoThe 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

B3.3/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataYesData for parallel chart, such as, [{ name: 'Product A', values: [4.2, 3.4, 2.3, 1.8] }].
dimensionsYesNames of the dimensions/axes, such as, ['Price', 'Quality', 'Service', 'Value'].
heightNoSet the height of the chart, default is 600px.
themeNoSet the theme for the chart, optional, default is 'default'.default
titleNoSet the title of the chart.
widthNoSet the width of the chart, default is 800px.
outputTypeNoThe 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

B3.3/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataYesData for pie chart, such as, [{ category: 'Category A', value: 27 }, { category: 'Category B', value: 25 }].
heightNoSet the height of the chart, default is 600px.
innerRadiusNoSet 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.
themeNoSet the theme for the chart, optional, default is 'default'.default
titleNoSet the title of the chart.
widthNoSet the width of the chart, default is 800px.
outputTypeNoThe 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

B3.3/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataYesData for radar chart, such as, [{ name: 'Design', value: 70 }, { name: 'Performance', value: 85 }] or [{ name: 'Design', value: 70, group: 'iPhone' }].
heightNoSet the height of the chart, default is 600px.
themeNoSet the theme for the chart, optional, default is 'default'.default
titleNoSet the title of the chart.
widthNoSet the width of the chart, default is 800px.
outputTypeNoThe 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

B3.1/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataYesData for sankey chart, such as, [{ source: 'Landing Page', target: 'Product Page', value: 50000 }, { source: 'Product Page', target: 'Add to Cart', value: 35000 }].
heightNoSet the height of the chart, default is 600px.
nodeAlignNoAlignment of nodes in the sankey chart, such as, 'left', 'right', or 'justify'.justify
themeNoSet the theme for the chart, optional, default is 'default'.default
titleNoSet the title of the chart.
widthNoSet the width of the chart, default is 800px.
outputTypeNoThe 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

B3.3/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
axisXTitleNoSet the x-axis title of chart.
axisYTitleNoSet the y-axis title of chart.
dataYesData for scatter chart, such as, [{ x: 10, y: 15 }, { x: 20, y: 25 }].
heightNoSet the height of the chart, default is 600px.
themeNoSet the theme for the chart, optional, default is 'default'.default
titleNoSet the title of the chart.
widthNoSet the width of the chart, default is 800px.
outputTypeNoThe 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

A3.9/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataYesData for sunburst chart, such as, [{ name: 'Technology', value: 100, children: [{ name: 'Frontend', value: 60, children: [{ name: 'React', value: 30 }] }] }].
heightNoSet the height of the chart, default is 600px.
themeNoSet the theme for the chart, optional, default is 'default'.default
titleNoSet the title of the chart.
widthNoSet the width of the chart, default is 800px.
outputTypeNoThe 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

B3.4/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataYesTree data structure, such as, { name: 'Root', children: [{ name: 'Child 1' }, { name: 'Child 2' }] }.
heightNoSet the height of the chart, default is 600px.
layoutNoTree layout type. Default is 'orthogonal'.orthogonal
orientNoTree orientation. LR=left-to-right, RL=right-to-left, TB=top-to-bottom, BT=bottom-to-top. Default is 'LR'.LR
themeNoSet the theme for the chart, optional, default is 'default'.default
titleNoSet the title of the chart.
widthNoSet the width of the chart, default is 800px.
outputTypeNoThe 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

B3.4/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataYesData for treemap chart, such as, [{ name: 'Design', value: 70, children: [{ name: 'Tech', value: 20 }] }].
heightNoSet the height of the chart, default is 600px.
themeNoSet the theme for the chart, optional, default is 'default'.default
titleNoSet the title of the chart.
widthNoSet the width of the chart, default is 800px.
outputTypeNoThe 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

B3.4/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

  1. 4 tool updatesv0.6.1
    • Addedgenerate_area_chart
    • Changedgenerate_sunburst_chart5 fields changed
      • removedInput schema / properties / data / items / properties / children / items / $ref
        Removed value: -"#/properties/data/items"
      • addedInput schema / properties / data / items / properties / children / items / additionalProperties
        Added value: +false
      • addedInput schema / properties / data / items / properties / children / items / properties
        Added 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"
        +  }
        +}
      • addedInput schema / properties / data / items / properties / children / items / required
        Added value: +[
        +  "name",
        +  "value"
        +]
      • addedInput schema / properties / data / items / properties / children / items / type
        Added value: +"object"
    • Changedgenerate_tree_chart5 fields changed
      • removedInput schema / properties / data / properties / children / items / properties / children / items / $ref
        Removed value: -"#/properties/data/properties/children/items"
      • addedInput schema / properties / data / properties / children / items / properties / children / items / additionalProperties
        Added value: +false
      • addedInput schema / properties / data / properties / children / items / properties / children / items / properties
        Added 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"
        +  }
        +}
      • addedInput schema / properties / data / properties / children / items / properties / children / items / required
        Added value: +[
        +  "name"
        +]
      • addedInput schema / properties / data / properties / children / items / properties / children / items / type
        Added value: +"object"
    • Changedgenerate_treemap_chart5 fields changed
      • removedInput schema / properties / data / items / properties / children / items / $ref
        Removed value: -"#/properties/data/items"
      • addedInput schema / properties / data / items / properties / children / items / additionalProperties
        Added value: +false
      • addedInput schema / properties / data / items / properties / children / items / properties
        Added 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"
        +  }
        +}
      • addedInput schema / properties / data / items / properties / children / items / required
        Added value: +[
        +  "name",
        +  "value"
        +]
      • addedInput schema / properties / data / items / properties / children / items / type
        Added value: +"object"
  2. 17 tool updatesv1.0.0
    • First observedgenerate_bar_chart
    • First observedgenerate_boxplot_chart
    • First observedgenerate_candlestick_chart
    • First observedgenerate_echarts
    • First observedgenerate_funnel_chart
    • First observedgenerate_gauge_chart
    • First observedgenerate_graph_chart
    • First observedgenerate_heatmap_chart
    • First observedgenerate_line_chart
    • First observedgenerate_parallel_chart
    • First observedgenerate_pie_chart
    • First observedgenerate_radar_chart
    • First observedgenerate_sankey_chart
    • First observedgenerate_scatter_chart
    • First observedgenerate_sunburst_chart
    • First observedgenerate_tree_chart
    • First observedgenerate_treemap_chart

TDQS

A3.5/5.0

Scored across 18 tools

Disambiguation4/5

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.

Naming Consistency5/5

All tools follow the exact same naming pattern: 'generate_<chart_type>_chart'. This is perfectly consistent and predictable.

Tool Count5/5

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.

Completeness4/5

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

ActivityMaintained
ResponsivenessResponsive

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

Related MCP Servers