Skip to main content
Glama
VisActor

vchart-mcp-server

Official
by VisActor

A Model Context Protocol (MCP) server for the @visactor/vchart that enables AI assistants to generate interactive charts and visualizations.

MCP Server npm Version npm License

English | 简体中文

Table of Contents

Related MCP server: MCP Server Chart

Features

Chart Output Formats

Each chart can be generated in multiple formats:

  • Image - PNG/JPG image format for embedding (default)

  • Spec - VChart spec object for programmatic use

  • HTML - Interactive HTML chart for web display

Common Parameters Supported by All Charts

Parameter

Description

Type/Options

Default

output

Output format

"spec" | "image" | "html"

"image"

width

Chart width

Number

500

height

Chart height

Number

500

title

Chart title

String

Optional

subTitle

Chart subtitle

String

Optional

titleOrient

Title position

String

Optional

chartTheme

Chart theme

String

Optional

background

Background color

String

Optional

colors

Color palette

Array/String

Optional

Supported Chart Types and Tools

generate_cartesian_chart

Generates Cartesian coordinate system charts, including area, bar, line, waterfall, funnel, and animated ranking bar charts.

Parameter

Description

Type

Required

dataTable

Data object array

Array

Yes

chartType

Chart type

"line" | "area" | "bar" | "waterfall" | "funnel" | "ranking_bar"

Yes

xField

X axis field name

string

Yes

yField

Y axis field name

string

Yes

colorField

Color mapping field

string

Optional

timeField

Time field for animated ranking bar chart

string

Optional

stackOrPercent

Stack or percent mode

"stack" | "percent"

Optional

transpose

Display bar chart horizontally (as bar chart)

boolean

Optional

xAxisType

X axis type

"band" | "linear"

Optional

xAxisOrient

X axis position

"top" | "bottom"

Optional

xAxisTitle

X axis title

string

Optional

xAxisHasGrid

Show X axis grid lines

boolean

Optional

xAxisHasLabel

Show X axis labels

boolean

Optional

xAxisHasTick

Show X axis ticks

boolean

Optional

yAxisType

Y axis type

"band" | "linear"

Optional

yAxisOrient

Y axis position

"left" | "right"

Optional

yAxisTitle

Y axis title

string

Optional

yAxisHasGrid

Show Y axis grid lines

boolean

Optional

yAxisHasLabel

Show Y axis labels

boolean

Optional

yAxisHasTick

Show Y axis ticks

boolean

Optional

generate_polar_chart

Generates polar coordinate system charts, including radar, rose, and pie charts.

Parameter

Description

Type/Options

Required

dataTable

Data object array

Array

Yes

chartType

Chart type

"radar" | "rose" | "pie"

Yes

categoryField

Category field name

string

Yes

valueField

Value field name

string

Yes

colorField

Color mapping field

string

Optional

angleAxisTitle

Angle axis title

string

Optional

angleAxisHasGrid

Show angle axis grid lines

boolean

Optional

angleAxisHasLabel

Show angle axis labels

boolean

Optional

angleAxisHasTick

Show angle axis ticks

boolean

Optional

angleAxisType

Angle axis type

"band" | "linear"

Optional

radiusAxisTitle

Radius axis title

string

Optional

radiusAxisHasGrid

Show radius axis grid lines

boolean

Optional

radiusAxisHasLabel

Show radius axis labels

boolean

Optional

radiusAxisHasTick

Show radius axis ticks

boolean

Optional

radiusAxisType

Radius axis type

"band" | "linear"

Optional

generate_hierarchical_chart

Generates hierarchical charts, including treemap, circle packing, and sunburst charts.

Parameter

Description

Type/Options

Required

dataTable

Data object array

Array

Yes

chartType

Chart type

"sunburst" | "treemap" | "circle_packing"

Yes

colorField

Color mapping field

string

Yes

valueField

Value mapping field

string

Yes

generate_progress_chart

Generates progress charts, including circular, linear, gauge, and liquid charts.

Parameter

Description

Type/Options

Required

dataTable

Data object array

Array

Yes

chartType

Chart type

"linear_progress" | "circular_progress" | "gauge" | "liquid"

Yes

valueField

Progress value field name

string

Yes

colorField

Color mapping field (optional for liquid, required otherwise)

string

Optional

generate_wordcloud_venn

Generates word cloud or Venn diagrams, suitable for displaying keywords and frequencies in text data.

Parameters:

Parameter

Description

Type/Options

Required

dataTable

Data object array

Array

Yes

chartType

Chart type

"wordcloud" | "venn"

Yes

colorField

Text field or Venn set field name

string

Yes

valueField

Value field name (required for Venn)

string

Optional

generate_range_column_chart

Generates horizontal range bar charts, suitable for displaying data ranges and comparisons.

Parameter

Description

Type/Options

Required

dataTable

Data object array

any[]

Yes

xField

Category field name

string

Yes

yField

Value field names

[string, string]

Yes

colorField

Color mapping field

string

Optional

xAxisType

X axis type

"band" | "linear"

Optional

xAxisOrient

X axis position

"top" | "bottom"

Optional

xAxisTitle

X axis title

string

Optional

xAxisHasGrid

Show X axis grid lines

boolean

Optional

xAxisHasLabel

Show X axis labels

boolean

Optional

xAxisHasTick

Show X axis ticks

boolean

Optional

yAxisType

Y axis type

"band" | "linear"

Optional

yAxisOrient

Y axis position

"left" | "right"

Optional

yAxisTitle

Y axis title

string

Optional

yAxisHasGrid

Show Y axis grid lines

boolean

Optional

yAxisHasLabel

Show Y axis labels

boolean

Optional

yAxisHasTick

Show Y axis ticks

boolean

Optional

generate_dual_axis_chart

Combination chart with two Y axes, for comparing two metrics with different units.

Parameter

Description

Type/Options

Required

dataTable

Data object array

any[]

Yes

xField

X axis field name

string

Yes

yField

Two Y axis field names

[string, string]

Yes

colorField

Color mapping field

string

Optional

stackOrPercent

Stack or percent mode

"stack" | "percent"

Optional

xAxisOrient

X axis position

"top" | "bottom"

Optional

xAxisTitle

X axis title

string

Optional

xAxisHasGrid

Show X axis grid lines

boolean

Optional

xAxisHasLabel

Show X axis labels

boolean

Optional

xAxisHasTick

Show X axis ticks

boolean

Optional

leftYAxisTitle

Left Y axis title

string

Optional

leftYAxisHasGrid

Left Y axis grid lines

boolean

Optional

leftYAxisHasLabel

Left Y axis labels

boolean

Optional

leftYAxisHasTick

Left Y axis ticks

boolean

Optional

rightYAxisTitle

Right Y axis title

string

Optional

rightYAxisHasGrid

Right Y axis grid lines

boolean

Optional

rightYAxisHasLabel

Right Y axis labels

boolean

Optional

rightYAxisHasTick

Right Y axis ticks

boolean

Optional

generate_scatter_chart

Displays the relationship between two variables, suitable for discovering patterns and outliers.

Parameter

Description

Type/Options

Required

dataTable

Data object array

any[]

Yes

xField

X axis field name

string

Yes

yField

Y axis field name

string

Yes

colorField

Color mapping field

string

Optional

sizeField

Size mapping field

string

Optional

xAxisType

X axis type

"band" | "linear"

Optional

xAxisOrient

X axis position

"top" | "bottom"

Optional

xAxisTitle

X axis title

string

Optional

xAxisHasGrid

Show X axis grid lines

boolean

Optional

xAxisHasLabel

Show X axis labels

boolean

Optional

xAxisHasTick

Show X axis ticks

boolean

Optional

yAxisType

Y axis type

"band" | "linear"

Optional

yAxisOrient

Y axis position

"left" | "right"

Optional

yAxisTitle

Y axis title

string

Optional

yAxisHasGrid

Show Y axis grid lines

boolean

Optional

yAxisHasLabel

Show Y axis labels

boolean

Optional

yAxisHasTick

Show Y axis ticks

boolean

Optional

generate_sankey_chart

Generates Sankey diagrams.

Parameter

Description

Type

Required

dataTable

Data object array

any[]

Yes

sourceField

Source node field

string

Yes

targetField

Target node field

string

Yes

valueField

Value field

string

Yes

generate_heatmap_chart

Generates heatmaps, suitable for displaying data density and distribution.

Parameter

Description

Type/Options

Required

dataTable

Data object array

any[]

Yes

xField

X axis field name

string

Yes

yField

Y axis field name

string

Yes

sizeField

Value field name

string

Yes

xAxisType

X axis type

"band" | "linear"

Optional

xAxisOrient

X axis position

"top" | "bottom"

Optional

xAxisTitle

X axis title

string

Optional

xAxisHasGrid

Show X axis grid lines

boolean

Optional

xAxisHasLabel

Show X axis labels

boolean

Optional

xAxisHasTick

Show X axis ticks

boolean

Optional

yAxisType

Y axis type

"band" | "linear"

Optional

yAxisOrient

Y axis position

"left" | "right"

Optional

yAxisTitle

Y axis title

string

Optional

yAxisHasGrid

Show Y axis grid lines

boolean

Optional

yAxisHasLabel

Show Y axis labels

boolean

Optional

yAxisHasTick

Show Y axis ticks

boolean

Optional

Usage

To use in desktop applications (such as Trae, Claude, VSCode, Cline, Cherry Studio, Cursor, etc.), add the following MCP server configuration:

MacOS

{
  "mcpServers": {
    "vchart-mcp-server": {
      "command": "npx",
      "args": ["-y", "@visactor/vchart-mcp-server"]
    }
  }
}

Windows

{
  "mcpServers": {
    "vchart-mcp-server": {
      "command": "cmd",
      "args": ["/c", "npx", "-y", "@visactor/vchart-mcp-server"]
    }
  }
}

Installing via Smithery

To install vchart-mcp-server for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install @VisActor/vchart-mcp-server --client claude

Running with SSE or Streamable Transport

Install and Start

Install @visactor/vchart-mcp-server globally:

npm install -g @visactor/vchart-mcp-server

Start the server:

# For SSE transport (default endpoint: /sse)
mcp-server-chart --transport sse

# For Streamable transport (default endpoint: /streamable)
mcp-server-chart --transport streamable

Then you can access the server at:

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

  • Streamable transport: http://localhost:3001/streamable

Other CLI Options

Options:
  -t, --transport <type>   Transport type (stdio, sse, streamable) [default: stdio]
  -p, --port <port>        Port number for HTTP-based transports [default: 3000]
  -e, --endpoint <path>    Endpoint path for HTTP-based transports [default: /message]
  -h, --help               Show this help message

Examples:
  node index.js                                    # Start with stdio transport
  node index.js -t sse -p 3000                     # Start with SSE transport on port 3000
  node index.js -t sse -p 3000 -e /api/sse         # Start with SSE transport on custom endpoint
  node index.js -t streamable -p 3001 -e /stream   # Start with streamable transport on custom endpoint

Example Usage in AI Conversations

Once configured, you can ask your AI assistant to create charts:

"Create an area chart showing monthly sales data"

The assistant will use the generate_cartesian_chart tool with parameters:
- chartType: "area"
- dataTable: your sales data
- xField: "month"
- yField: "sales"

"Generate a dual-axis chart comparing revenue and user growth"

The assistant will use the generate_dual_axis_chart tool with parameters:
- dataTable: your business data
- xField: "time"
- yField: ["revenue", "userGrowth"]

"Show me an interactive HTML bar chart of quarterly performance"

The assistant will use the generate_cartesian_chart tool with parameters:
- chartType: "bar"
- dataTable: your quarterly data
- xField: "quarter"
- yField: "performance"
- output: "html"

"Create a pie chart of product sales share"

The assistant will use the generate_polar_chart tool with parameters:
- chartType: "pie"
- dataTable: your sales data
- categoryField: "product"
- valueField: "sales"

"Draw a scatter plot of height and weight"

The assistant will use the generate_scatter_chart tool with parameters:
- dataTable: your body data
- xField: "height"
- yField: "weight"
- colorField: "gender" (optional)

"Create a radar chart for team skill assessment"

The assistant will use the generate_polar_chart tool with parameters:
- chartType: "radar"
- dataTable: your assessment data
- categoryField: "skill"
- valueField: "score"

"Generate a Sankey diagram showing data flow"

The assistant will use the generate_sankey_chart tool with parameters:
- dataTable: your flow data
- sourceField: "from"
- targetField: "to"
- valueField: "amount"

"Create a heatmap showing data distribution"

The assistant will use the generate_heatmap_chart tool with parameters:
- dataTable: your distribution data
- xField: "x_category"
- yField: "y_category"
- sizeField: "value"

Development

Prerequisites

  • Node.js version >= 22.7.5

Build

npm run build

Development Mode (Auto Rebuild)

npm run watch

Testing

# Test chart generation
npm run test-tool

# Run MCP Inspector for debugging
npm run inspector

Debugging

Since the MCP server communicates via stdio, debugging can be challenging. Use MCP Inspector for development:

npm run inspector

Testing in AI Editors

To test the MCP server in an AI editor, use the following configuration:

{
  "mcpServers": {
    "vchart-mcp-server": {
      "command": "node",
      "args": ["/Users/path/to/your/project/vchart-mcp-server/build/index.js"]
    }
  }
}

Environment Variables

Private Deployment

Currently, images and HTML generated by vchart-mcp-server are produced via https://vmind.visactor.com/export. For private deployment, set the VIMD_IMAGE_SERVER environment variable to specify your own image generation server.

{
  "mcpServers": {
    "mcp-server-chart": {
      "command": "npx",
      "args": [
        "-y",
        "@visactor/vchart-mcp-server"
      ],
      "env": {
        "VIMD_IMAGE_SERVER": "<YOUR_VIS_REQUEST_SERVER>"
      }
    }
  }
}

Image generation service can be deployed privately refer to https://github.com/VisActor/vchart-mcp-server-export.

Star History

License

MIT License

Contributing

Contributions are welcome! Please feel free to submit issues and pull requests.

Available Tools

10 tools
generate_cartesian_chartB

Generates Cartesian charts: line (trends over time), area (cumulative totals), bar (category comparison), waterfall (incremental changes), ranking bar (ordered categories), and funnel (visualizes stages in a process or conversion rates).

ParametersJSON Schema
NameRequiredDescriptionDefault
outputNoChart output type. Defaults to 'image'.image
chartTypeYes
widthNoChart width. Optional, defaults to 500.
heightNoChart height. Optional, defaults to 500.
dataTableYesData array, e.g., [{ x: '2018', y: 99.9 }]. Cannot be empty.
transposeNoSet to true only when displaying a horizontal bar chart.
xFieldYesDimension field. Must exist in the data.
yFieldYesMeasure field. Must be numeric and exist in the data.
colorFieldNoColor grouping field. Should not duplicate the dimension field.
timeFieldNoTime field, such as year or month. The x field and time field must be different. this field is required in ranking_bar
chartThemeNoChart theme. Optional, defaults to 'light'.
titleNoChart title text.
subTitleNoChart subtitle text.
titleOrientNoTitle position in the chart.
xAxisTypeNoX-axis type: categorical ('band') or continuous ('linear').
xAxisOrientNoX-axis position in the chart.
xAxisTitleNoX-axis title.
xAxisHasGridNoShow vertical grid lines for the X-axis.
xAxisHasLabelNoShow X-axis labels.
xAxisHasTickNoShow X-axis ticks.
yAxisTypeNoY-axis type: categorical ('band') or continuous ('linear').
yAxisOrientNoY-axis position in the chart.
yAxisTitleNoY-axis title.
yAxisHasGridNoShow horizontal grid lines for the Y-axis.
yAxisHasLabelNoShow Y-axis labels.
yAxisHasTickNoShow Y-axis ticks.
backgroundNoChart background color (hex). Optional, defaults to white.
colorsNoColor palette for chart elements.
stackOrPercentNoStacking mode: 'stack' for stacked data, 'percent' for percentage stacking. Requires 'color' field.

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It only lists chart types without explaining what the tool actually does (e.g., creates visualizations from data, returns images/specs/html), performance characteristics, error conditions, or data format requirements. The description is insufficient for a complex tool with 29 parameters.

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 extremely concise - a single sentence that efficiently lists all supported chart types. Every word serves a purpose, and there's no redundant information. It's appropriately sized for a tool where detailed parameter documentation is handled in the schema.

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?

For a complex chart generation tool with 29 parameters, no annotations, and no output schema, the description is inadequate. It doesn't explain what the tool produces (images? HTML? chart specifications?), how to interpret results, error handling, or performance considerations. The high parameter count and complexity demand more contextual information than provided.

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 97%, so the schema already documents most parameters thoroughly. The description adds no parameter-specific information beyond listing chart types, which corresponds to the 'chartType' parameter's enum values. This meets the baseline expectation when schema coverage is high.

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: 'Generates Cartesian charts' with specific chart types listed (line, area, bar, waterfall, ranking bar, funnel). It distinguishes from sibling tools by focusing on Cartesian charts specifically, unlike polar, hierarchical, or other chart types in the sibling list.

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 doesn't mention when to choose Cartesian charts over other chart types (e.g., polar, scatter, heatmap) available in sibling tools, nor does it provide any context about prerequisites or typical use cases for the listed chart types.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_dual_axis_chartA

Generate a dual-axis chart for visualizing two quantitative variables using a combination of bar and line series. Ideal for comparing trends and magnitudes across two metrics with distinct y-axes.

ParametersJSON Schema
NameRequiredDescriptionDefault
outputNoChart output type. Defaults to 'image'.image
widthNoChart width. Optional, defaults to 500.
heightNoChart height. Optional, defaults to 500.
dataTableYesInput data for the dual axis chart, e.g., [{ x: '2018', gmv: 99.9, user: 1200 }].
xFieldYesDimension field. Must exist in the data.
yFieldYes
colorFieldNoColor grouping field. Should not duplicate the dimension field.
chartThemeNoChart theme. Optional, defaults to 'light'.
titleNoChart title text.
subTitleNoChart subtitle text.
titleOrientNoTitle position in the chart.
xAxisOrientNoX-axis position in the chart.
xAxisTitleNoX-axis title.
xAxisHasGridNoShow vertical grid lines for the X-axis.
xAxisHasLabelNoShow X-axis labels.
xAxisHasTickNoShow X-axis ticks.
leftYAxisTitleNoY-axis title.
leftYAxisHasGridNoShow horizontal grid lines for the Y-axis.
leftYAxisHasLabelNoShow Y-axis labels.
leftYAxisHasTickNoShow Y-axis ticks.
rightYAxisTitleNo
rightYAxisHasGridNo
rightYAxisHasLabelNo
rightYAxisHasTickNo
backgroundNoChart background color (hex). Optional, defaults to white.
colorsNoColor palette for chart elements.
stackOrPercentNoStacking mode: 'stack' for stacked data, 'percent' for percentage stacking. Requires 'color' field.

TDQS

A3.5/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 of behavioral disclosure. While it mentions the chart generation purpose, it doesn't describe important behavioral aspects like whether this is a read-only operation, what permissions might be needed, error handling, performance characteristics, or what the output actually looks like. For a complex 27-parameter tool with no annotations, this is a significant gap.

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 appropriately concise with two sentences that efficiently convey the core purpose and ideal use case. It's front-loaded with the main action and doesn't contain redundant information. However, given the tool's complexity, a slightly more structured approach might be beneficial, preventing a perfect score.

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?

For a complex 27-parameter chart generation tool with no annotations and no output schema, the description is insufficiently complete. It doesn't explain what the tool returns (chart specification, image, HTML?), doesn't mention default behaviors beyond what's in parameter defaults, and doesn't provide guidance on the many parameter interactions. The description should do more to help an agent navigate this complexity.

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 schema description coverage is 81%, which is high, so the baseline is 3. The description adds minimal parameter semantics beyond what's in the schema - it mentions 'two quantitative variables' which relates to yField, and 'bar and line series' which hints at visualization types, but doesn't provide additional context about parameter interactions or usage patterns that aren't already in the schema 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 specific action ('generate'), resource ('dual-axis chart'), and purpose ('visualizing two quantitative variables using a combination of bar and line series'). It distinguishes this tool from siblings by specifying the dual-axis nature and bar+line combination, which is unique among the listed chart generation 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 clear context about when to use this tool ('ideal for comparing trends and magnitudes across two metrics with distinct y-axes'), which helps the agent understand appropriate scenarios. However, it doesn't explicitly state when NOT to use it or mention specific alternatives among the sibling tools, which prevents a perfect score.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_heatmap_chartB

Generates a heatmap chart based on a Cartesian coordinate system. It is used to visualize the intensity or density of values at the intersection of two discrete variables, suitable for revealing association patterns and distribution characteristics between variables.

ParametersJSON Schema
NameRequiredDescriptionDefault
outputNoChart output type. Defaults to 'image'.image
widthNoChart width. Optional, defaults to 500.
heightNoChart height. Optional, defaults to 500.
dataTableYesHeatmap data array, e.g., [{ gender: 'male', age: '20-30', size: 30 }].
transposeNo
xFieldYesDimension field. Must exist in the data.
yFieldYes
sizeFieldYesMeasure field. Must be numeric and exist in the data.
chartThemeNoChart theme. Optional, defaults to 'light'.
titleNoChart title text.
subTitleNoChart subtitle text.
titleOrientNoTitle position in the chart.
xAxisTypeNoX-axis type: categorical ('band') or continuous ('linear').
xAxisOrientNoX-axis position in the chart.
xAxisTitleNoX-axis title.
xAxisHasGridNoShow vertical grid lines for the X-axis.
xAxisHasLabelNoShow X-axis labels.
xAxisHasTickNoShow X-axis ticks.
yAxisTypeNoY-axis type: categorical ('band') or continuous ('linear').
yAxisOrientNoY-axis position in the chart.
yAxisTitleNoY-axis title.
yAxisHasGridNoShow horizontal grid lines for the Y-axis.
yAxisHasLabelNoShow Y-axis labels.
yAxisHasTickNoShow Y-axis ticks.
backgroundNoChart background color (hex). Optional, defaults to white.
colorsNoColor palette for chart elements.

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 of behavioral disclosure. It describes what the tool does ('generates a heatmap chart') but doesn't disclose important behavioral traits such as whether it's a read-only or mutation operation, what permissions might be required, whether it has side effects, rate limits, or what the output looks like (e.g., file format, size). For a tool with 26 parameters and no output schema, this is a significant gap.

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 appropriately sized with two sentences that are front-loaded with the core purpose. The first sentence states what the tool does, and the second explains its use case. There's no wasted text, though it could be slightly more structured by explicitly separating purpose from guidelines.

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 (26 parameters, 4 required), lack of annotations, and no output schema, the description is incomplete. It doesn't address behavioral aspects like side effects or output format, nor does it provide usage guidance relative to sibling tools. For a data visualization tool with many configuration options, more context is needed to help an agent use it effectively.

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 schema description coverage is high at 92%, so the baseline is 3. The description adds minimal value beyond the schema by mentioning 'Cartesian coordinate system' and 'intensity or density of values,' which loosely relates to parameters like xField, yField, and sizeField, but doesn't provide additional syntax, format details, or examples beyond what's already documented in the schema properties.

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 with specific verbs ('generates a heatmap chart') and resources ('based on a Cartesian coordinate system'), and distinguishes it from siblings by specifying it's for 'visualizing intensity or density of values at the intersection of two discrete variables.' It explicitly mentions suitability for 'revealing association patterns and distribution characteristics between variables,' which differentiates it from other chart types like scatter or hierarchical charts.

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 mentions the tool is 'suitable for revealing association patterns and distribution characteristics between variables,' but doesn't explain when a heatmap is preferable over other chart types like scatter charts or dual-axis charts, nor does it mention any prerequisites or exclusions for usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_hierarchical_chartC

Generate a chart for hierarchical visualization of multi-level categorical data proportions, include sunburst, treemap, circle_packing.

ParametersJSON Schema
NameRequiredDescriptionDefault
outputNoChart output type. Defaults to 'image'.image
chartTypeYesChart type
widthNoChart width. Optional, defaults to 500.
heightNoChart height. Optional, defaults to 500.
dataTableYesHierarchical data for the chart, e.g., [{ category: 'Category 0', subCategory: 'Category 01', value: 10}].
colorFieldYes
valueFieldYesMeasure field. Must be numeric and exist in the data.
chartThemeNoChart theme. Optional, defaults to 'light'.
titleNoChart title text.
subTitleNoChart subtitle text.
titleOrientNoTitle position in the chart.
backgroundNoChart background color (hex). Optional, defaults to white.
colorsNoColor palette for chart elements.

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It states what the tool does but doesn't describe how it behaves: no information about performance characteristics, error handling, whether it generates files or returns data, authentication needs, or rate limits. For a complex chart generation tool, this leaves significant gaps.

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 appropriately concise with a single sentence that efficiently communicates the core functionality. It's front-loaded with the main purpose and includes the chart types. However, the comma-separated list of chart types at the end feels slightly tacked on rather than integrated.

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?

For a complex tool with 13 parameters, no annotations, and no output schema, the description is insufficient. It doesn't explain what the tool returns (image file? HTML string? visualization object?), doesn't address error conditions, and provides no guidance on the hierarchical data structure requirements beyond what's 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 description coverage is 92%, so the schema already documents most parameters thoroughly. The description adds minimal value beyond the schema - it mentions 'multi-level categorical data proportions' which hints at the hierarchical nature of dataTable, but doesn't explain parameter relationships or provide additional context not in the schema descriptions.

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's purpose: 'Generate a chart for hierarchical visualization of multi-level categorical data proportions' with specific chart types listed. It uses a clear verb ('Generate') and resource ('chart'), but doesn't explicitly differentiate from sibling tools like generate_sankey_chart or generate_wordcloud_venn, which might also handle hierarchical data.

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 doesn't mention sibling tools, doesn't specify scenarios where hierarchical charts are appropriate, and offers no exclusions or prerequisites. The agent must infer usage from the description alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_polar_chartC

Generate a polar chart (rose, radar, pie) to display numerical differences among different categories using radius and angle in polar coordinates.

ParametersJSON Schema
NameRequiredDescriptionDefault
outputNoChart output type. Defaults to 'image'.image
widthNoChart width. Optional, defaults to 500.
heightNoChart height. Optional, defaults to 500.
dataTableYesData for the chart, e.g., [{ category: 'Category 01', value: 10 }].
chartTypeYes
transposeNo
categoryFieldYesDimension field. Must exist in the data.
valueFieldYesMeasure field. Must be numeric and exist in the data.
colorFieldNoColor grouping field. Should not duplicate the dimension field.
chartThemeNoChart theme. Optional, defaults to 'light'.
titleNoChart title text.
subTitleNoChart subtitle text.
titleOrientNoTitle position in the chart.
angleAxisTitleNoAngle axis title.
angleAxisHasGridNoShow grid lines for the angle axis.
angleAxisHasLabelNoShow angle axis labels.
angleAxisHasTickNoShow angle axis ticks.
angleAxisTypeNoAngle axis type: categorical ('band') or continuous ('linear').
radiusAxisHasGridNoShow grid lines for the radius axis.
radiusAxisHasLabelNoShow radius axis labels.
radiusAxisHasTickNoShow radius axis ticks.
radiusAxisTypeNoRadius axis type: categorical ('band') or continuous ('linear').
radiusAxisTitleNoRadius axis title.
backgroundNoChart background color (hex). Optional, defaults to white.
colorsNoColor palette for chart elements.
stackOrPercentNoStacking mode: 'stack' for stacked data, 'percent' for percentage stacking. Requires 'color' field.

TDQS

C2.9/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 of behavioral disclosure. It states what the tool does but doesn't mention any behavioral traits: no information about permissions needed, rate limits, whether it's a read or write operation, what happens on failure, or output characteristics. For a complex chart generation tool with 26 parameters, this is a significant gap.

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, efficient sentence that clearly states the tool's core function. It's appropriately sized for a chart generation tool, though it could be slightly more informative given the tool's complexity. There's no wasted verbiage, and it's front-loaded with the essential information.

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?

For a complex tool with 26 parameters, no annotations, and no output schema, the description is inadequate. It doesn't explain what the tool returns (image, HTML, or spec), doesn't mention error conditions, and provides no guidance on how to structure data or choose between chart types. The high parameter count and lack of structured metadata mean the description should do more to help an agent use this tool correctly.

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 92%, so the schema already documents most parameters well. The description adds minimal value beyond the schema: it mentions 'radius and angle in polar coordinates' which provides context for some parameters like angleAxis and radiusAxis, but doesn't explain specific parameter relationships or usage patterns. The baseline of 3 is appropriate given the high schema coverage.

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's purpose: 'Generate a polar chart (rose, radar, pie) to display numerical differences among different categories using radius and angle in polar coordinates.' It specifies the verb ('generate'), resource ('polar chart'), and types of charts produced. However, it doesn't explicitly differentiate from sibling tools like 'generate_cartesian_chart' beyond mentioning polar coordinates.

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 doesn't mention sibling tools or suggest scenarios where polar charts are preferable to other chart types. The only contextual clue is the mention of 'polar coordinates,' which implies a specific data visualization need but lacks explicit usage instructions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_progress_chartB

Generates a progress chart for visualizing quantitative values normalized between 0 and 1. Ideal for representing progress, completion rates, or proportional metrics. The gauge chart and liquid chart currently only supports displaying data for a single dimension.

ParametersJSON Schema
NameRequiredDescriptionDefault
outputNoChart output type. Defaults to 'image'.image
widthNoChart width. Optional, defaults to 500.
heightNoChart height. Optional, defaults to 500.
dataTableYesData for the progress chart, e.g., [{ category: 'category 01', value: 0.5 }].
chartTypeYes
colorFieldNoDimension field, Must exist in the data, required in linear_progress, circular_progress and gauge
valueFieldYesMeasure field with values in [0, 1]. Must exist in the data.
chartThemeNoChart theme. Optional, defaults to 'light'.
titleNoChart title text.
subTitleNoChart subtitle text.
titleOrientNoTitle position in the chart.
backgroundNoChart background color (hex). Optional, defaults to white.
colorsNoColor palette for chart elements.

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 of behavioral disclosure. It mentions that the tool generates charts and specifies constraints for gauge/liquid charts (single dimension only), but fails to describe critical behaviors like whether this is a read-only operation, what permissions might be needed, how errors are handled, or what the output looks like (beyond implied visual formats). For a complex 13-parameter tool with no annotations, this is a significant gap.

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 appropriately concise with two sentences that directly address the tool's purpose and key constraints. It's front-loaded with the main functionality and avoids unnecessary elaboration. However, the second sentence could be slightly clearer in structure ('The gauge chart and liquid chart currently only supports' has minor grammatical issues).

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 (13 parameters, no annotations, no output schema), the description is insufficiently complete. It doesn't explain what the tool returns (e.g., image data, HTML code, or specification object), doesn't cover error conditions or performance characteristics, and provides minimal guidance on parameter interactions. For a chart generation tool with multiple output types and chart variants, more contextual information 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?

The schema description coverage is high at 92%, so most parameters are documented in the schema itself. The description adds minimal parameter semantics beyond the schema—it mentions 'quantitative values normalized between 0 and 1' (relevant to valueField) and 'single dimension' constraint (relevant to dataTable structure for certain chart types). This meets the baseline expectation when schema coverage is high but doesn't provide substantial additional value.

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's purpose: 'Generates a progress chart for visualizing quantitative values normalized between 0 and 1.' It specifies the resource (progress chart) and verb (generates), and mentions specific use cases like progress, completion rates, or proportional metrics. However, it doesn't explicitly differentiate from sibling tools like generate_cartesian_chart or generate_scatter_chart, which prevents a perfect score.

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 provides some implied usage guidance by stating it's 'ideal for representing progress, completion rates, or proportional metrics' and noting that 'gauge chart and liquid chart currently only supports displaying data for a single dimension.' However, it lacks explicit when-to-use vs. when-not-to-use instructions or named alternatives among sibling tools, leaving the agent to infer appropriate contexts.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_range_column_chartB

Generate a range column chart to display the value range (such as minimum and maximum) for each category, suitable for comparing the range distribution across different categories.

ParametersJSON Schema
NameRequiredDescriptionDefault
outputNoChart output type. Defaults to 'image'.image
widthNoChart width. Optional, defaults to 500.
heightNoChart height. Optional, defaults to 500.
dataTableYesData for the range column chart, e.g., [{ category: 'Category 01', min: 10, max: 50 }].
xFieldYesDimension field. Must exist in the data.
yFieldYes
colorFieldNoColor grouping field. Should not duplicate the dimension field.
chartThemeNoChart theme. Optional, defaults to 'light'.
titleNoChart title text.
subTitleNoChart subtitle text.
titleOrientNoTitle position in the chart.
xAxisTypeNoX-axis type: categorical ('band') or continuous ('linear').
xAxisOrientNoX-axis position in the chart.
xAxisTitleNoX-axis title.
xAxisHasGridNoShow vertical grid lines for the X-axis.
xAxisHasLabelNoShow X-axis labels.
xAxisHasTickNoShow X-axis ticks.
yAxisTypeNoY-axis type: categorical ('band') or continuous ('linear').
yAxisOrientNoY-axis position in the chart.
yAxisTitleNoY-axis title.
yAxisHasGridNoShow horizontal grid lines for the Y-axis.
yAxisHasLabelNoShow Y-axis labels.
yAxisHasTickNoShow Y-axis ticks.
backgroundNoChart background color (hex). Optional, defaults to white.
colorsNoColor palette for chart elements.

TDQS

B3.1/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 of behavioral disclosure. The description only states what the tool generates without mentioning any behavioral traits such as performance characteristics, error handling, or output formats beyond the implied chart. It doesn't disclose whether this is a read-only operation, if it has side effects, rate limits, or authentication needs. For a complex tool with 25 parameters, this is a significant gap.

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 appropriately concise with two sentences that efficiently convey the tool's purpose and suitable use case. It's front-loaded with the main action and avoids unnecessary details. However, it could be slightly more structured by explicitly mentioning key parameters or output types to enhance clarity without adding bulk.

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 (25 parameters, no annotations, no output schema), the description is inadequate. It doesn't explain the output (e.g., what 'image' or 'spec' means), error conditions, or how to interpret results. For a data visualization tool with many configuration options, more context on usage patterns and expected outcomes is needed to guide an AI agent effectively.

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 96%, so the schema already documents most parameters thoroughly. The description adds minimal value beyond the schema, only implying that data should include 'minimum and maximum' values without explaining parameter interactions or data structure details. With high schema coverage, the baseline is 3, and the description doesn't significantly compensate with additional semantic insights.

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's purpose: 'Generate a range column chart to display the value range (such as minimum and maximum) for each category.' It specifies the verb ('Generate') and resource ('range column chart'), and explains what the chart visualizes. However, it doesn't explicitly differentiate this tool from its siblings (e.g., generate_cartesian_chart, generate_scatter_chart) beyond mentioning 'range distribution,' which might not be sufficient for clear sibling distinction.

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 provides implied usage context by stating the chart is 'suitable for comparing the range distribution across different categories.' This gives a general idea of when to use it, but it doesn't offer explicit guidance on when to choose this tool over alternatives (e.g., vs. generate_scatter_chart for correlation analysis) or any prerequisites. No exclusions or clear alternatives are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_sankey_chartC

Generate a Sankey diagram to visualize the flow relationships between nodes in complex networks, suitable for displaying the distribution and flow paths of source and target data.

ParametersJSON Schema
NameRequiredDescriptionDefault
outputNoChart output type. Defaults to 'image'.image
widthNoChart width. Optional, defaults to 500.
heightNoChart height. Optional, defaults to 500.
dataTableYesData for the Sankey diagram, e.g., [{ category: 'category 01', value: 10 }].
sourceFieldYesThe source field in the Sankey diagram; must exist in the data.
targetFieldYesThe target field in the Sankey diagram; must exist in the data.
valueFieldYesMeasure field. Must be numeric and exist in the data.
chartThemeNoChart theme. Optional, defaults to 'light'.
titleNoChart title text.
subTitleNoChart subtitle text.
titleOrientNoTitle position in the chart.
backgroundNoChart background color (hex). Optional, defaults to white.
colorsNoColor palette for chart elements.

TDQS

C2.9/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 of behavioral disclosure. It states the tool generates a diagram but lacks critical details: it doesn't specify if this is a read-only or mutating operation, what the output looks like (e.g., file format, size), performance considerations, or error handling. For a tool with 13 parameters and no annotations, this is a significant gap in transparency.

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 avoids redundancy and is front-loaded with the main action. However, it could be slightly more concise by omitting 'suitable for displaying...' which is somewhat repetitive, but overall, it's appropriately sized with zero wasted 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 (13 parameters, no output schema, no annotations), the description is incomplete. It fails to address key contextual aspects: what the output entails (e.g., a file, URL, or raw data), how errors are handled, or any behavioral traits like rate limits. For a chart generation tool with many options, more guidance is needed to ensure the agent can use it effectively.

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%, meaning all parameters are documented in the schema itself. The description adds no specific parameter information beyond implying the tool handles 'source and target data,' which loosely relates to sourceField and targetField. Since the schema does the heavy lifting, the baseline score of 3 is appropriate, as the description provides minimal additional semantic value.

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's purpose: 'Generate a Sankey diagram to visualize the flow relationships between nodes in complex networks.' It specifies the verb ('generate'), resource ('Sankey diagram'), and context ('visualize flow relationships'), making it easy to understand. However, it doesn't explicitly differentiate from sibling tools like generate_hierarchical_chart or generate_heatmap_chart, which might also handle network or flow data, preventing a perfect score.

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 mentions the tool is 'suitable for displaying the distribution and flow paths of source and target data,' but this is a restatement of purpose rather than usage advice. There's no mention of prerequisites, scenarios where other chart types might be better, or limitations, leaving the agent without operational context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_scatter_chartB

Generate a scatter chart to visually display the distribution, clustering trends, and correlations of data points in two-dimensional or multi-dimensional space. Suitable for analyzing relationships between variables, outlier detection, and similar scenarios.

ParametersJSON Schema
NameRequiredDescriptionDefault
outputNoChart output type. Defaults to 'image'.image
widthNoChart width. Optional, defaults to 500.
heightNoChart height. Optional, defaults to 500.
dataTableYesScatter chart data, e.g., [{ x: 34, y: 10, category: 'A' }].
xFieldYesMeasure field. Must be numeric and exist in the data.
yFieldYes
sizeFieldNoNumeric field for bubble size.
colorFieldNoColor grouping field. Should not duplicate the dimension field.
chartThemeNoChart theme. Optional, defaults to 'light'.
titleNoChart title text.
subTitleNoChart subtitle text.
titleOrientNoTitle position in the chart.
xAxisTypeNoX-axis type: categorical ('band') or continuous ('linear').
xAxisOrientNoX-axis position in the chart.
xAxisTitleNoX-axis title.
xAxisHasGridNoShow vertical grid lines for the X-axis.
xAxisHasLabelNoShow X-axis labels.
xAxisHasTickNoShow X-axis ticks.
yAxisTypeNoY-axis type: categorical ('band') or continuous ('linear').
yAxisOrientNoY-axis position in the chart.
yAxisTitleNoY-axis title.
yAxisHasGridNoShow horizontal grid lines for the Y-axis.
yAxisHasLabelNoShow Y-axis labels.
yAxisHasTickNoShow Y-axis ticks.
backgroundNoChart background color (hex). Optional, defaults to white.
colorsNoColor palette for chart elements.

TDQS

B3.1/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 of behavioral disclosure. While it mentions what the tool does (generates charts for specific analyses), it lacks critical behavioral details: it doesn't specify output format details (though the schema covers this), potential side effects, performance characteristics, error conditions, or any limitations. For a complex 26-parameter tool with no annotations, this is a significant gap in transparency.

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 appropriately concise with two sentences that efficiently state the tool's purpose and suitable use cases. It's front-loaded with the core functionality and avoids unnecessary elaboration. However, it could be slightly more structured by explicitly separating purpose from usage guidelines, and it doesn't waste words on redundant information already in the schema.

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 (26 parameters, no annotations, no output schema), the description is incomplete. It adequately explains the high-level purpose but fails to address behavioral aspects, output expectations, or integration context that would help an agent use it effectively. For a sophisticated chart generation tool with many configuration options, more comprehensive guidance is needed beyond the basic purpose statement.

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 96%, meaning the schema already documents most parameters thoroughly. The description adds minimal parameter semantics beyond the schema—it mentions 'two-dimensional or multi-dimensional space' which hints at the data structure, but doesn't explain parameter relationships or provide additional context about how parameters interact. With high schema coverage, the baseline is 3, and the description doesn't significantly compensate beyond this.

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's purpose: 'Generate a scatter chart to visually display the distribution, clustering trends, and correlations of data points in two-dimensional or multi-dimensional space.' It specifies the verb ('Generate') and resource ('scatter chart'), and mentions key use cases like analyzing relationships and outlier detection. However, it doesn't explicitly differentiate from sibling tools like 'generate_cartesian_chart' or 'generate_heatmap_chart', which prevents a perfect score.

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 provides implied usage guidance by stating the tool is 'Suitable for analyzing relationships between variables, outlier detection, and similar scenarios.' This gives some context about when to use it, but it doesn't explicitly mention when NOT to use it or suggest alternatives among the many sibling chart tools. No explicit comparisons or exclusions are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_wordcloud_vennC

Generate a word cloud to visualize word frequency or importance, or a Venn diagram to show relationships such as intersections and unions between sets.

ParametersJSON Schema
NameRequiredDescriptionDefault
outputNoChart output type. Defaults to 'image'.image
widthNoChart width. Optional, defaults to 500.
heightNoChart height. Optional, defaults to 500.
chartTypeYes
dataTableYesData for the chart, e.g., [{ word: 'TEST', value: 10 }].
colorFieldYesSpecifies the field in the dataset that represents each word (for word clouds) or the set (for Venn diagrams). For Venn diagrams, use a comma-separated string to describe the set. This field must exist in the dataset.
valueFieldYesSpecifies the field representing the metric value. Required for Venn diagrams.
chartThemeNoChart theme. Optional, defaults to 'light'.
titleNoChart title text.
subTitleNoChart subtitle text.
titleOrientNoTitle position in the chart.
backgroundNoChart background color (hex). Optional, defaults to white.
colorsNoColor palette for chart elements.

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden but provides minimal behavioral information. It states what the tool generates but doesn't mention output format options (image, HTML, spec), performance characteristics, error conditions, or any side effects. For a complex 13-parameter visualization tool, this is inadequate.

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 appropriately concise with two clear clauses describing the two chart types. It's front-loaded with the main purpose and wastes no words. However, it could be slightly more structured by separating the two visualization types more distinctly.

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?

For a complex 13-parameter visualization tool with no annotations and no output schema, the description is insufficient. It doesn't explain what the tool returns (image data, HTML, specification), how to interpret results, error handling, or provide examples. The high parameter count and lack of structured metadata require more descriptive 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?

With 92% schema description coverage, the schema already documents most parameters well. The description adds no parameter-specific information beyond what's in the schema. It mentions 'word frequency or importance' and 'relationships between sets' which loosely relate to dataTable, colorField, and valueField, but provides no additional semantic context.

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 visualizations (word clouds or Venn diagrams) for specific purposes: word clouds visualize word frequency/importance, and Venn diagrams show relationships between sets. It distinguishes from siblings by specifying these two chart types, though it doesn't explicitly contrast with other chart-generation 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 the nine sibling chart-generation tools. The description mentions the two chart types but doesn't explain when to choose word clouds over Venn diagrams or when to use this versus other visualization tools like heatmaps or scatter charts.

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. Dates show when Glama detected each change.

  1. 10 tool updates
    • First observedgenerate_cartesian_chart
    • First observedgenerate_dual_axis_chart
    • First observedgenerate_heatmap_chart
    • First observedgenerate_hierarchical_chart
    • First observedgenerate_polar_chart
    • First observedgenerate_progress_chart
    • First observedgenerate_range_column_chart
    • First observedgenerate_sankey_chart
    • First observedgenerate_scatter_chart
    • First observedgenerate_wordcloud_venn

TDQS

A3.6/5.0
Disambiguation5/5

Each tool is clearly distinct, targeting a specific chart type or visualization method (e.g., Cartesian, heatmap, hierarchical, Sankey). The descriptions precisely differentiate purposes, such as trend analysis for Cartesian charts versus flow relationships for Sankey diagrams, leaving no ambiguity for selection.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with 'generate_' as the prefix (e.g., generate_cartesian_chart, generate_heatmap_chart). This uniform naming convention makes the tool set predictable and easy to navigate for agents.

Tool Count5/5

With 10 tools, the server is well-scoped for chart generation, covering a comprehensive range of visualization types from basic charts like scatter and bar to specialized ones like Sankey and word clouds. Each tool earns its place without redundancy or excessive bloat.

Completeness5/5

The tool set provides complete coverage for data visualization, including common chart types (Cartesian, scatter, polar), specialized visualizations (heatmap, hierarchical, Sankey), and utility charts (progress, word cloud/Venn). There are no obvious gaps; agents can handle diverse visualization needs without dead ends.

Maintenance

ActivityInactive
ResponsivenessSyncing

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

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/VisActor/vchart-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server