vchart-mcp-server
OfficialThe vchart-mcp-server enables AI assistants to generate interactive charts and visualizations through the Model Context Protocol (MCP) using the VChart library.
Chart Types:
Cartesian Charts: line, area, bar, waterfall, funnel, and animated ranking bar charts
Polar Charts: radar, rose, and pie charts
Hierarchical Charts: sunburst, treemap, and circle packing charts
Progress Charts: linear, circular, gauge, and liquid charts for normalized values (0-1)
Specialized Charts: word clouds, Venn diagrams, range column charts, dual-axis charts, scatter/bubble charts, Sankey diagrams, and heatmaps
Output Formats:
Image (PNG/JPG) for embedding in documents
Interactive HTML for web display
VChart spec objects for programmatic use
Customization Features:
Chart dimensions (width/height), titles, and subtitles
Theme selection (light/dark) and custom color palettes
Background colors and detailed axis configuration (labels, grids, ticks, titles, orientation)
Stacking and percentage modes for relevant chart types
Deployment & Integration:
Multiple transport options (stdio for desktop apps, SSE/streamable for web)
Works with Claude, Cursor, VSCode, and other MCP-compatible applications
Private deployment support via custom image generation servers
Natural language chart creation through AI assistant integration
Allows running the VChart MCP server as a standalone Node.js application with SSE or Streamable transport, enabling integration with web-based AI applications beyond desktop clients.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@vchart-mcp-servergenerate a bar chart showing monthly sales data for 2024"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
A Model Context Protocol (MCP) server for the @visactor/vchart that enables AI assistants to generate interactive charts and visualizations.
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 format |
|
|
| Chart width | Number |
|
| Chart height | Number |
|
| Chart title | String | Optional |
| Chart subtitle | String | Optional |
| Title position | String | Optional |
| Chart theme | String | Optional |
| Background color | String | Optional |
| 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 |
| Data object array | Array | Yes |
| Chart type |
| Yes |
| X axis field name |
| Yes |
| Y axis field name |
| Yes |
| Color mapping field |
| Optional |
| Time field for animated ranking bar chart |
| Optional |
| Stack or percent mode |
| Optional |
| Display bar chart horizontally (as bar chart) |
| Optional |
| X axis type |
| Optional |
| X axis position |
| Optional |
| X axis title |
| Optional |
| Show X axis grid lines |
| Optional |
| Show X axis labels |
| Optional |
| Show X axis ticks |
| Optional |
| Y axis type |
| Optional |
| Y axis position |
| Optional |
| Y axis title |
| Optional |
| Show Y axis grid lines |
| Optional |
| Show Y axis labels |
| Optional |
| Show Y axis ticks |
| Optional |
generate_polar_chart
Generates polar coordinate system charts, including radar, rose, and pie charts.
Parameter | Description | Type/Options | Required |
| Data object array | Array | Yes |
| Chart type |
| Yes |
| Category field name |
| Yes |
| Value field name |
| Yes |
| Color mapping field |
| Optional |
| Angle axis title |
| Optional |
| Show angle axis grid lines |
| Optional |
| Show angle axis labels |
| Optional |
| Show angle axis ticks |
| Optional |
| Angle axis type |
| Optional |
| Radius axis title |
| Optional |
| Show radius axis grid lines |
| Optional |
| Show radius axis labels |
| Optional |
| Show radius axis ticks |
| Optional |
| Radius axis type |
| Optional |
generate_hierarchical_chart
Generates hierarchical charts, including treemap, circle packing, and sunburst charts.
Parameter | Description | Type/Options | Required |
| Data object array | Array | Yes |
| Chart type |
| Yes |
| Color mapping field |
| Yes |
| Value mapping field |
| Yes |
generate_progress_chart
Generates progress charts, including circular, linear, gauge, and liquid charts.
Parameter | Description | Type/Options | Required |
| Data object array | Array | Yes |
| Chart type |
| Yes |
| Progress value field name |
| Yes |
| Color mapping field (optional for liquid, required otherwise) |
| 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 |
| Data object array | Array | Yes |
| Chart type |
| Yes |
| Text field or Venn set field name |
| Yes |
| Value field name (required for Venn) |
| Optional |
generate_range_column_chart
Generates horizontal range bar charts, suitable for displaying data ranges and comparisons.
Parameter | Description | Type/Options | Required |
| Data object array |
| Yes |
| Category field name |
| Yes |
| Value field names |
| Yes |
| Color mapping field |
| Optional |
| X axis type |
| Optional |
| X axis position |
| Optional |
| X axis title |
| Optional |
| Show X axis grid lines |
| Optional |
| Show X axis labels |
| Optional |
| Show X axis ticks |
| Optional |
| Y axis type |
| Optional |
| Y axis position |
| Optional |
| Y axis title |
| Optional |
| Show Y axis grid lines |
| Optional |
| Show Y axis labels |
| Optional |
| Show Y axis ticks |
| Optional |
generate_dual_axis_chart
Combination chart with two Y axes, for comparing two metrics with different units.
Parameter | Description | Type/Options | Required |
| Data object array |
| Yes |
| X axis field name |
| Yes |
| Two Y axis field names |
| Yes |
| Color mapping field |
| Optional |
| Stack or percent mode |
| Optional |
| X axis position |
| Optional |
| X axis title |
| Optional |
| Show X axis grid lines |
| Optional |
| Show X axis labels |
| Optional |
| Show X axis ticks |
| Optional |
| Left Y axis title |
| Optional |
| Left Y axis grid lines |
| Optional |
| Left Y axis labels |
| Optional |
| Left Y axis ticks |
| Optional |
| Right Y axis title |
| Optional |
| Right Y axis grid lines |
| Optional |
| Right Y axis labels |
| Optional |
| Right Y axis ticks |
| Optional |
generate_scatter_chart
Displays the relationship between two variables, suitable for discovering patterns and outliers.
Parameter | Description | Type/Options | Required |
| Data object array |
| Yes |
| X axis field name |
| Yes |
| Y axis field name |
| Yes |
| Color mapping field |
| Optional |
| Size mapping field |
| Optional |
| X axis type |
| Optional |
| X axis position |
| Optional |
| X axis title |
| Optional |
| Show X axis grid lines |
| Optional |
| Show X axis labels |
| Optional |
| Show X axis ticks |
| Optional |
| Y axis type |
| Optional |
| Y axis position |
| Optional |
| Y axis title |
| Optional |
| Show Y axis grid lines |
| Optional |
| Show Y axis labels |
| Optional |
| Show Y axis ticks |
| Optional |
generate_sankey_chart
Generates Sankey diagrams.
Parameter | Description | Type | Required |
| Data object array |
| Yes |
| Source node field |
| Yes |
| Target node field |
| Yes |
| Value field |
| Yes |
generate_heatmap_chart
Generates heatmaps, suitable for displaying data density and distribution.
Parameter | Description | Type/Options | Required |
| Data object array |
| Yes |
| X axis field name |
| Yes |
| Y axis field name |
| Yes |
| Value field name |
| Yes |
| X axis type |
| Optional |
| X axis position |
| Optional |
| X axis title |
| Optional |
| Show X axis grid lines |
| Optional |
| Show X axis labels |
| Optional |
| Show X axis ticks |
| Optional |
| Y axis type |
| Optional |
| Y axis position |
| Optional |
| Y axis title |
| Optional |
| Show Y axis grid lines |
| Optional |
| Show Y axis labels |
| Optional |
| Show Y axis ticks |
| 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 claudeRunning with SSE or Streamable Transport
Install and Start
Install @visactor/vchart-mcp-server globally:
npm install -g @visactor/vchart-mcp-serverStart the server:
# For SSE transport (default endpoint: /sse)
mcp-server-chart --transport sse
# For Streamable transport (default endpoint: /streamable)
mcp-server-chart --transport streamableThen you can access the server at:
SSE transport:
http://localhost:3001/sseStreamable 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 endpointExample 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 buildDevelopment Mode (Auto Rebuild)
npm run watchTesting
# Test chart generation
npm run test-tool
# Run MCP Inspector for debugging
npm run inspectorDebugging
Since the MCP server communicates via stdio, debugging can be challenging. Use MCP Inspector for development:
npm run inspectorTesting 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
VIMD_IMAGE_SERVER- Custom image generation server URL (default: https://vmind.visactor.com/export)
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.
Related Projects
VChart - Underlying visualization library
Model Context Protocol - Protocol specification
Available Tools
10 toolsgenerate_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).
| Name | Required | Description | Default |
|---|---|---|---|
| output | No | Chart output type. Defaults to 'image'. | image |
| chartType | Yes | ||
| width | No | Chart width. Optional, defaults to 500. | |
| height | No | Chart height. Optional, defaults to 500. | |
| dataTable | Yes | Data array, e.g., [{ x: '2018', y: 99.9 }]. Cannot be empty. | |
| transpose | No | Set to true only when displaying a horizontal bar chart. | |
| xField | Yes | Dimension field. Must exist in the data. | |
| yField | Yes | Measure field. Must be numeric and exist in the data. | |
| colorField | No | Color grouping field. Should not duplicate the dimension field. | |
| timeField | No | Time field, such as year or month. The x field and time field must be different. this field is required in ranking_bar | |
| chartTheme | No | Chart theme. Optional, defaults to 'light'. | |
| title | No | Chart title text. | |
| subTitle | No | Chart subtitle text. | |
| titleOrient | No | Title position in the chart. | |
| xAxisType | No | X-axis type: categorical ('band') or continuous ('linear'). | |
| xAxisOrient | No | X-axis position in the chart. | |
| xAxisTitle | No | X-axis title. | |
| xAxisHasGrid | No | Show vertical grid lines for the X-axis. | |
| xAxisHasLabel | No | Show X-axis labels. | |
| xAxisHasTick | No | Show X-axis ticks. | |
| yAxisType | No | Y-axis type: categorical ('band') or continuous ('linear'). | |
| yAxisOrient | No | Y-axis position in the chart. | |
| yAxisTitle | No | Y-axis title. | |
| yAxisHasGrid | No | Show horizontal grid lines for the Y-axis. | |
| yAxisHasLabel | No | Show Y-axis labels. | |
| yAxisHasTick | No | Show Y-axis ticks. | |
| background | No | Chart background color (hex). Optional, defaults to white. | |
| colors | No | Color palette for chart elements. | |
| stackOrPercent | No | Stacking mode: 'stack' for stacked data, 'percent' for percentage stacking. Requires 'color' field. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| output | No | Chart output type. Defaults to 'image'. | image |
| width | No | Chart width. Optional, defaults to 500. | |
| height | No | Chart height. Optional, defaults to 500. | |
| dataTable | Yes | Input data for the dual axis chart, e.g., [{ x: '2018', gmv: 99.9, user: 1200 }]. | |
| xField | Yes | Dimension field. Must exist in the data. | |
| yField | Yes | ||
| colorField | No | Color grouping field. Should not duplicate the dimension field. | |
| chartTheme | No | Chart theme. Optional, defaults to 'light'. | |
| title | No | Chart title text. | |
| subTitle | No | Chart subtitle text. | |
| titleOrient | No | Title position in the chart. | |
| xAxisOrient | No | X-axis position in the chart. | |
| xAxisTitle | No | X-axis title. | |
| xAxisHasGrid | No | Show vertical grid lines for the X-axis. | |
| xAxisHasLabel | No | Show X-axis labels. | |
| xAxisHasTick | No | Show X-axis ticks. | |
| leftYAxisTitle | No | Y-axis title. | |
| leftYAxisHasGrid | No | Show horizontal grid lines for the Y-axis. | |
| leftYAxisHasLabel | No | Show Y-axis labels. | |
| leftYAxisHasTick | No | Show Y-axis ticks. | |
| rightYAxisTitle | No | ||
| rightYAxisHasGrid | No | ||
| rightYAxisHasLabel | No | ||
| rightYAxisHasTick | No | ||
| background | No | Chart background color (hex). Optional, defaults to white. | |
| colors | No | Color palette for chart elements. | |
| stackOrPercent | No | Stacking mode: 'stack' for stacked data, 'percent' for percentage stacking. Requires 'color' field. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| output | No | Chart output type. Defaults to 'image'. | image |
| width | No | Chart width. Optional, defaults to 500. | |
| height | No | Chart height. Optional, defaults to 500. | |
| dataTable | Yes | Heatmap data array, e.g., [{ gender: 'male', age: '20-30', size: 30 }]. | |
| transpose | No | ||
| xField | Yes | Dimension field. Must exist in the data. | |
| yField | Yes | ||
| sizeField | Yes | Measure field. Must be numeric and exist in the data. | |
| chartTheme | No | Chart theme. Optional, defaults to 'light'. | |
| title | No | Chart title text. | |
| subTitle | No | Chart subtitle text. | |
| titleOrient | No | Title position in the chart. | |
| xAxisType | No | X-axis type: categorical ('band') or continuous ('linear'). | |
| xAxisOrient | No | X-axis position in the chart. | |
| xAxisTitle | No | X-axis title. | |
| xAxisHasGrid | No | Show vertical grid lines for the X-axis. | |
| xAxisHasLabel | No | Show X-axis labels. | |
| xAxisHasTick | No | Show X-axis ticks. | |
| yAxisType | No | Y-axis type: categorical ('band') or continuous ('linear'). | |
| yAxisOrient | No | Y-axis position in the chart. | |
| yAxisTitle | No | Y-axis title. | |
| yAxisHasGrid | No | Show horizontal grid lines for the Y-axis. | |
| yAxisHasLabel | No | Show Y-axis labels. | |
| yAxisHasTick | No | Show Y-axis ticks. | |
| background | No | Chart background color (hex). Optional, defaults to white. | |
| colors | No | Color palette for chart elements. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| output | No | Chart output type. Defaults to 'image'. | image |
| chartType | Yes | Chart type | |
| width | No | Chart width. Optional, defaults to 500. | |
| height | No | Chart height. Optional, defaults to 500. | |
| dataTable | Yes | Hierarchical data for the chart, e.g., [{ category: 'Category 0', subCategory: 'Category 01', value: 10}]. | |
| colorField | Yes | ||
| valueField | Yes | Measure field. Must be numeric and exist in the data. | |
| chartTheme | No | Chart theme. Optional, defaults to 'light'. | |
| title | No | Chart title text. | |
| subTitle | No | Chart subtitle text. | |
| titleOrient | No | Title position in the chart. | |
| background | No | Chart background color (hex). Optional, defaults to white. | |
| colors | No | Color palette for chart elements. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| output | No | Chart output type. Defaults to 'image'. | image |
| width | No | Chart width. Optional, defaults to 500. | |
| height | No | Chart height. Optional, defaults to 500. | |
| dataTable | Yes | Data for the chart, e.g., [{ category: 'Category 01', value: 10 }]. | |
| chartType | Yes | ||
| transpose | No | ||
| categoryField | Yes | Dimension field. Must exist in the data. | |
| valueField | Yes | Measure field. Must be numeric and exist in the data. | |
| colorField | No | Color grouping field. Should not duplicate the dimension field. | |
| chartTheme | No | Chart theme. Optional, defaults to 'light'. | |
| title | No | Chart title text. | |
| subTitle | No | Chart subtitle text. | |
| titleOrient | No | Title position in the chart. | |
| angleAxisTitle | No | Angle axis title. | |
| angleAxisHasGrid | No | Show grid lines for the angle axis. | |
| angleAxisHasLabel | No | Show angle axis labels. | |
| angleAxisHasTick | No | Show angle axis ticks. | |
| angleAxisType | No | Angle axis type: categorical ('band') or continuous ('linear'). | |
| radiusAxisHasGrid | No | Show grid lines for the radius axis. | |
| radiusAxisHasLabel | No | Show radius axis labels. | |
| radiusAxisHasTick | No | Show radius axis ticks. | |
| radiusAxisType | No | Radius axis type: categorical ('band') or continuous ('linear'). | |
| radiusAxisTitle | No | Radius axis title. | |
| background | No | Chart background color (hex). Optional, defaults to white. | |
| colors | No | Color palette for chart elements. | |
| stackOrPercent | No | Stacking mode: 'stack' for stacked data, 'percent' for percentage stacking. Requires 'color' field. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| output | No | Chart output type. Defaults to 'image'. | image |
| width | No | Chart width. Optional, defaults to 500. | |
| height | No | Chart height. Optional, defaults to 500. | |
| dataTable | Yes | Data for the progress chart, e.g., [{ category: 'category 01', value: 0.5 }]. | |
| chartType | Yes | ||
| colorField | No | Dimension field, Must exist in the data, required in linear_progress, circular_progress and gauge | |
| valueField | Yes | Measure field with values in [0, 1]. Must exist in the data. | |
| chartTheme | No | Chart theme. Optional, defaults to 'light'. | |
| title | No | Chart title text. | |
| subTitle | No | Chart subtitle text. | |
| titleOrient | No | Title position in the chart. | |
| background | No | Chart background color (hex). Optional, defaults to white. | |
| colors | No | Color palette for chart elements. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| output | No | Chart output type. Defaults to 'image'. | image |
| width | No | Chart width. Optional, defaults to 500. | |
| height | No | Chart height. Optional, defaults to 500. | |
| dataTable | Yes | Data for the range column chart, e.g., [{ category: 'Category 01', min: 10, max: 50 }]. | |
| xField | Yes | Dimension field. Must exist in the data. | |
| yField | Yes | ||
| colorField | No | Color grouping field. Should not duplicate the dimension field. | |
| chartTheme | No | Chart theme. Optional, defaults to 'light'. | |
| title | No | Chart title text. | |
| subTitle | No | Chart subtitle text. | |
| titleOrient | No | Title position in the chart. | |
| xAxisType | No | X-axis type: categorical ('band') or continuous ('linear'). | |
| xAxisOrient | No | X-axis position in the chart. | |
| xAxisTitle | No | X-axis title. | |
| xAxisHasGrid | No | Show vertical grid lines for the X-axis. | |
| xAxisHasLabel | No | Show X-axis labels. | |
| xAxisHasTick | No | Show X-axis ticks. | |
| yAxisType | No | Y-axis type: categorical ('band') or continuous ('linear'). | |
| yAxisOrient | No | Y-axis position in the chart. | |
| yAxisTitle | No | Y-axis title. | |
| yAxisHasGrid | No | Show horizontal grid lines for the Y-axis. | |
| yAxisHasLabel | No | Show Y-axis labels. | |
| yAxisHasTick | No | Show Y-axis ticks. | |
| background | No | Chart background color (hex). Optional, defaults to white. | |
| colors | No | Color palette for chart elements. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| output | No | Chart output type. Defaults to 'image'. | image |
| width | No | Chart width. Optional, defaults to 500. | |
| height | No | Chart height. Optional, defaults to 500. | |
| dataTable | Yes | Data for the Sankey diagram, e.g., [{ category: 'category 01', value: 10 }]. | |
| sourceField | Yes | The source field in the Sankey diagram; must exist in the data. | |
| targetField | Yes | The target field in the Sankey diagram; must exist in the data. | |
| valueField | Yes | Measure field. Must be numeric and exist in the data. | |
| chartTheme | No | Chart theme. Optional, defaults to 'light'. | |
| title | No | Chart title text. | |
| subTitle | No | Chart subtitle text. | |
| titleOrient | No | Title position in the chart. | |
| background | No | Chart background color (hex). Optional, defaults to white. | |
| colors | No | Color palette for chart elements. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| output | No | Chart output type. Defaults to 'image'. | image |
| width | No | Chart width. Optional, defaults to 500. | |
| height | No | Chart height. Optional, defaults to 500. | |
| dataTable | Yes | Scatter chart data, e.g., [{ x: 34, y: 10, category: 'A' }]. | |
| xField | Yes | Measure field. Must be numeric and exist in the data. | |
| yField | Yes | ||
| sizeField | No | Numeric field for bubble size. | |
| colorField | No | Color grouping field. Should not duplicate the dimension field. | |
| chartTheme | No | Chart theme. Optional, defaults to 'light'. | |
| title | No | Chart title text. | |
| subTitle | No | Chart subtitle text. | |
| titleOrient | No | Title position in the chart. | |
| xAxisType | No | X-axis type: categorical ('band') or continuous ('linear'). | |
| xAxisOrient | No | X-axis position in the chart. | |
| xAxisTitle | No | X-axis title. | |
| xAxisHasGrid | No | Show vertical grid lines for the X-axis. | |
| xAxisHasLabel | No | Show X-axis labels. | |
| xAxisHasTick | No | Show X-axis ticks. | |
| yAxisType | No | Y-axis type: categorical ('band') or continuous ('linear'). | |
| yAxisOrient | No | Y-axis position in the chart. | |
| yAxisTitle | No | Y-axis title. | |
| yAxisHasGrid | No | Show horizontal grid lines for the Y-axis. | |
| yAxisHasLabel | No | Show Y-axis labels. | |
| yAxisHasTick | No | Show Y-axis ticks. | |
| background | No | Chart background color (hex). Optional, defaults to white. | |
| colors | No | Color palette for chart elements. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| output | No | Chart output type. Defaults to 'image'. | image |
| width | No | Chart width. Optional, defaults to 500. | |
| height | No | Chart height. Optional, defaults to 500. | |
| chartType | Yes | ||
| dataTable | Yes | Data for the chart, e.g., [{ word: 'TEST', value: 10 }]. | |
| colorField | Yes | Specifies 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. | |
| valueField | Yes | Specifies the field representing the metric value. Required for Venn diagrams. | |
| chartTheme | No | Chart theme. Optional, defaults to 'light'. | |
| title | No | Chart title text. | |
| subTitle | No | Chart subtitle text. | |
| titleOrient | No | Title position in the chart. | |
| background | No | Chart background color (hex). Optional, defaults to white. | |
| colors | No | Color palette for chart elements. |
TDQS
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.
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.
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.
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.
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.
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.
10 tool updates
- First observed
generate_cartesian_chart - First observed
generate_dual_axis_chart - First observed
generate_heatmap_chart - First observed
generate_hierarchical_chart - First observed
generate_polar_chart - First observed
generate_progress_chart - First observed
generate_range_column_chart - First observed
generate_sankey_chart - First observed
generate_scatter_chart - First observed
generate_wordcloud_venn
TDQS
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.
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.
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.
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
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
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
MCP server for AI dialogue using various LLM models via AceDataCloud
A Model Context Protocol server for Wix AI tools
MCP server for GLM chat completions using Zhipu AI models via AceDataCloud
Related MCP Servers
- FlicenseNot gradedqualityFmaintenanceA Model Context Protocol (MCP) server implementation that provides the LLM an interface for visualizing data using Vega-Lite syntax.100-
- TypeScriptMIT

MCP Server AntVofficial
AlicenseAqualityBmaintenanceA Model Context Protocol server that provides AntV visualization library documentation and code examples to AI assistants, supporting G2, G6, and F2 libraries for data visualization workflows.326239MIT- AlicenseNot gradedqualityCmaintenanceAn MCP (Model Context Protocol) server that enables LLMs to generate ECharts visualizations by accepting chart type, data and parameters and returning cloud image URLs of the generated charts.1981Apache 2.0
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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