quickchart-mcp-server
Creates data visualizations using Chart.js through QuickChart.io's API, supporting various chart types including bar, line, pie, radar, scatter, and bubble charts with extensive customization options.
Supports generating visualizations in JPEG format, providing a compressed image format option for charts, diagrams, and other visual elements.
Generates visualizations in SVG format, allowing for scalable vector graphics output that maintains quality at any size when creating charts, diagrams, and other visual elements.
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., "@quickchart-mcp-servercreate a bar chart showing monthly sales data"
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.
QuickChart MCP Server
Overview
This Model Context Protocol (MCP) server provides powerful visualization tools using QuickChart.io APIs.
With this MCP, AI assistants can create charts, diagrams, barcodes, QR codes, word clouds, tables, and more.
Example prompts:
"I need a chart showing our Q4 sales by region"
"Create a QR code for our contact information"
"Generate a professional table from this CSV data"
"Make a word cloud from these customer reviews"
"Draw a flowchart of our deployment process"
The AI will:
Choose the right tool for your request
Structure the data appropriately
Apply suitable styling and formatting
Save or display the result as needed
Output Options
Get URLs: Perfect for sharing, embedding in web pages, or quick previews
Save Files: Ideal for reports, presentations, or archival purposes
Supported Formats:
Images: PNG, JPEG, WebP, SVG
Documents: PDF
Data: Base64 encoding
File Management:
Files are saved to your Desktop by default (configurable)
Custom output directory via environment variable
Custom paths supported for organization
Automatic directory creation when needed
Related MCP server: ECharts MCP
Installation
Via Claude Desktop
Add to your Claude Desktop configuration:
{
"mcpServers": {
"quickchart": {
"command": "npx",
"args": ["-y", "@takanarishimbo/quickchart-mcp-server"]
}
}
}With Custom Configuration
{
"mcpServers": {
"quickchart": {
"command": "npx",
"args": ["-y", "@takanarishimbo/quickchart-mcp-server"],
"env": {
"QUICKCHART_BASE_URL": "https://your-quickchart-instance.com",
"QUICKCHART_DEFAULT_OUTPUT_DIR": "/home/username/Downloads",
"QUICKCHART_ENABLE_QRCODE": "false"
}
}
}
}Environment Variables
Environment Variables:
URL Configuration:
QUICKCHART_BASE_URL: Main QuickChart API base URL (default:
https://quickchart.io)QUICKCHART_API_BASE_URL: QuickChart API server base URL (default:
https://api.quickchart.io)
Setting QUICKCHART_BASE_URL will configure these endpoints:
Charts:
{BASE_URL}/chartQR Codes:
{BASE_URL}/qrWord Clouds:
{BASE_URL}/wordcloudApexCharts:
{BASE_URL}/apex-charts/renderGoogle Charts:
{BASE_URL}/google-charts/renderBarcodes:
{BASE_URL}/barcodeGraphViz:
{BASE_URL}/graphvizText-to-Chart:
{BASE_URL}/naturalWatermarks:
{BASE_URL}/watermark
Setting QUICKCHART_API_BASE_URL will configure these endpoints:
Tables:
{API_BASE_URL}/v1/table
Tool Disable Settings:
To disable specific tools, set these environment variables to false:
QUICKCHART_ENABLE_CHART: Chart.js chart tool
QUICKCHART_ENABLE_APEXCHARTS: ApexCharts tool
QUICKCHART_ENABLE_GOOGLECHARTS: Google Charts tool
QUICKCHART_ENABLE_TEXTCHART: Text-to-chart tool
QUICKCHART_ENABLE_SPARKLINE: Sparkline tool
QUICKCHART_ENABLE_GRAPHVIZ: GraphViz tool
QUICKCHART_ENABLE_WORDCLOUD: Word cloud tool
QUICKCHART_ENABLE_BARCODE: Barcode tool
QUICKCHART_ENABLE_QRCODE: QR code tool
QUICKCHART_ENABLE_TABLE: Table tool
QUICKCHART_ENABLE_WATERMARK: Watermark tool
QUICKCHART_ENABLE_HELP: Visualization tool help
File Management:
QUICKCHART_DEFAULT_OUTPUT_DIR: Default directory for saving files (absolute path, default:
Desktopin home directory)
Default Output Directory Examples:
# Save to custom charts directory (Linux/macOS)
QUICKCHART_DEFAULT_OUTPUT_DIR=/home/username/Documents/charts
# Save to custom charts directory (Windows)
QUICKCHART_DEFAULT_OUTPUT_DIR=C:/Users/username/Documents/chartsTools
create-chart-using-chartjs
Create charts using Chart.js and QuickChart.io - get chart image URL or save chart image to file
Documentation: QuickChart.io Chart API
Input: Action (get_url/save_file), outputPath, dimensions (integers), format options, encoding method, and Chart.js configuration object
Output: Chart URL or confirmation message with saved file path
Supported Chart Types:
bar: Bar charts for comparing values across categories
line: Line charts for showing trends over time
pie: Pie charts for showing proportions and percentages
doughnut: Doughnut charts (pie chart with hollow center)
radar: Radar charts for comparing multiple variables
polarArea: Polar area charts for cyclical data visualization
scatter: Scatter plots for correlation analysis
bubble: Bubble charts for three-dimensional data relationships
area: Area charts for showing cumulative values over time
mixed: Mixed charts combining multiple chart types
Prompt Examples:
Sales Reports: "Create a bar chart showing monthly sales data"
Performance Metrics: "Generate a gauge chart showing our 85% performance score"
Trend Analysis: "Show quarterly revenue growth as a line chart"
Data Comparison: "Compare product performance across regions using a pie chart"
Statistical Analysis: "Create a scatter plot to show the relationship between price and sales"
Usage Examples for AI:
{
"action": "save_file",
"chart": {
"type": "bar",
"data": {
"labels": ["Q1", "Q2", "Q3", "Q4"],
"datasets": [
{
"label": "Sales 2024",
"data": [65, 59, 80, 81],
"backgroundColor": "rgba(54, 162, 235, 0.8)"
}
]
}
}
}create-chart-using-apexcharts
Create charts using ApexCharts library - get chart image URL or save chart image to file
Documentation: ApexCharts Image Rendering
Input: Action (get_url/save_file), outputPath, ApexCharts configuration, dimensions, and version options
Output: ApexCharts URL or confirmation message with saved file path
Supported Chart Types:
line: Line charts for depicting trends and behaviors over time
area: Area charts for showing cumulative data trends
bar: Bar charts for categorical data comparison
column: Column charts for vertical data comparison
pie: Pie charts for proportion visualization
donut: Donut charts for enhanced proportion display
scatter: Scatter plots for correlation analysis
bubble: Bubble charts for multi-dimensional data
candlestick: Candlestick charts for financial data
boxplot: Box plots for statistical data distribution
heatmap: Heat maps for matrix data visualization
treemap: Tree maps for hierarchical data
radar: Radar charts for multi-variable comparison
radialbar: Radial bar charts and circular gauges
rangearea: Range area charts for data ranges
rangebar: Range bar charts for time periods
funnel: Funnel charts for process visualization
Prompt Examples:
Financial Dashboards: "Create a candlestick chart for stock prices"
Interactive Reports: "Generate a multi-series area chart with zoom functionality"
Time Series Analysis: "Show real-time data with datetime axis charts"
Usage Examples for AI:
{
"action": "save_file",
"config": {
"series": [
{
"name": "Sales",
"data": [30, 40, 45, 50, 49, 60, 70, 91]
}
],
"chart": {
"type": "line"
},
"xaxis": {
"categories": ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug"]
}
}
}create-chart-using-googlecharts
Create charts using Google Charts library - get chart image URL or save chart image to file
Documentation: Google Charts Image Server
Input: Action (get_url/save_file), outputPath, JavaScript drawing code, packages, dimensions, and API keys
Output: Google Charts URL or confirmation message with saved file path
Supported Chart Types:
bar: Bar charts for category data comparison
column: Column charts for vertical data comparison
line: Line charts for trend visualization
area: Area charts and stepped area charts
pie: Pie charts for proportion display
donut: Donut charts for enhanced proportion visualization
scatter: Scatter charts for correlation analysis
bubble: Bubble charts for multi-dimensional data
combo: Combo charts combining multiple chart types
gauge: Gauge charts for measurement and target values
timeline: Timeline charts for time-series events
gantt: Gantt charts for project management
geochart: Geographic charts and world maps
treemap: Tree map charts for hierarchical data
sankey: Sankey diagrams for flow visualization
candlestick: Candlestick charts for financial data
histogram: Histograms for data distribution
calendar: Calendar charts for date-based data
org: Organizational charts for hierarchy display
table: Table charts for structured data display
waterfall: Waterfall charts for cumulative effects
annotation: Annotation charts for detailed analysis
Prompt Examples:
Geographic Data: "Create a world map showing sales by country"
Organizational Charts: "Generate a company hierarchy diagram"
Timeline Visualizations: "Show project milestones on a timeline chart"
Usage Examples for AI:
{
"action": "get_url",
"code": "const data = google.visualization.arrayToDataTable([['Task', 'Hours'], ['Work', 8], ['Sleep', 8], ['Eat', 2], ['Commute', 2], ['Watch TV', 4]]); const chart = new google.visualization.PieChart(document.getElementById('chart')); chart.draw(data);",
"packages": ["corechart"]
}create-chart-using-natural-language
Generate charts from natural language descriptions - get chart image URL or save chart image to file
Documentation: Text to Chart API
Input: Action (get_url/save_file), outputPath, natural language description, data values, and chart options
Output: AI-generated chart URL or confirmation message with saved file path
Main Features:
Natural Language Analysis: Understands descriptions like "blue line chart showing monthly sales"
Automatic Chart Selection: Determines optimal chart type automatically
Data Integration: Automatic processing of CSV format data
Style Application: Automatic optimization of colors, fonts, and layout
Prompt Examples:
Quick Prototyping: "Show monthly revenue growth as a blue line chart"
Data Exploration: "Create a chart that best represents this sales data"
Automated Reporting: "Generate appropriate visualization from CSV data"
Usage Examples for AI:
{
"action": "save_file",
"description": "Show monthly revenue growth as a blue line chart",
"data1": "100,120,150,180,200",
"labels": "Jan,Feb,Mar,Apr,May",
"title": "Revenue Growth"
}create-sparkline-using-chartjs
Create compact sparkline charts - get sparkline image URL or save sparkline image to file
Documentation: Sparkline API
Input: Action (get_url/save_file), outputPath, Chart.js configuration, dimensions, and display options
Output: Sparkline URL or confirmation message with saved file path
Supported Chart Types:
line: Single line sparklines for trend visualization
multiline: Multiple line sparklines for comparison
Key Features:
Compact Design: Small charts embeddable in dashboards and reports
Customizable Styling: Adjustable colors, line thickness, and point styles
Fill Options: Optional area fill under lines
Line Properties: Configurable tension, dash patterns, and point radius
Multiple Series: Support for multiple data series in one sparkline
Prompt Examples:
Dashboard Widgets: "Generate small trend indicators for KPI dashboard"
Inline Metrics: "Create mini charts for email reports"
Mobile Displays: "Show compact data trends for mobile apps"
Usage Examples for AI:
{
"action": "save_file",
"config": {
"type": "line",
"data": {
"datasets": [
{
"data": [10, 15, 12, 18, 22, 20, 25],
"borderColor": "blue",
"pointRadius": 0
}
]
}
},
"width": 200,
"height": 50
}create-diagram-using-graphviz
Create graph diagrams using GraphViz - get diagram image URL or save diagram image to file
Documentation: GraphViz API
Input: Action (get_url/save_file), outputPath, DOT graph description, layout algorithm, format, and dimensions
Output: GraphViz diagram URL or confirmation message with saved file path
What You Can Create:
Flowcharts: Step-by-step process diagrams with decision points
Organizational Charts: Company hierarchy and reporting structures
Network Diagrams: System architecture and infrastructure maps
Decision Trees: Logic flow and decision-making processes
ER Diagrams: Database schema and relationships
State Machines: System state transitions and workflows
Mind Maps: Concept mapping and brainstorming diagrams
Dependency Graphs: Project dependencies and task relationships
System Architecture: Software component interactions
Data Flow Diagrams: Information flow through systems
Prompt Examples:
Workflow Documentation: "Generate a flowchart showing our approval process"
System Architecture: "Create a network diagram of our infrastructure"
Decision Trees: "Map out the customer onboarding decision flow"
Supported Layout Algorithms:
dot: Hierarchical graphs (flowcharts, org charts)
neato: Undirected graphs (network diagrams)
fdp: Force-directed model layouts
circo: Circular layouts (cycle diagrams)
twopi: Radial layouts (hub-and-spoke diagrams)
Prompt Examples:
Workflow Documentation: "Generate a flowchart showing our approval process"
System Architecture: "Create a network diagram of our infrastructure"
Decision Trees: "Map out the customer onboarding decision flow"
Usage Examples for AI:
{
"action": "get_url",
"graph": "digraph G { Start -> Process -> Decision; Decision -> End [label=\"Yes\"]; Decision -> Process [label=\"No\"]; }",
"layout": "dot"
}create-wordcloud
Create word cloud visualizations - get word cloud image URL or save word cloud image to file
Documentation: Word Cloud API
Input: Action (get_url/save_file), outputPath, text content, fonts, colors, and layout options
Output: Word cloud URL or confirmation message with saved file path
Prompt Examples:
Content Analysis: "Create a word cloud from customer feedback"
Survey Results: "Visualize most common responses in survey data"
Social Media Analytics: "Show trending keywords from social posts"
Prompt Examples:
Content Analysis: "Create a word cloud from customer feedback"
Survey Results: "Visualize most common responses in survey data"
Social Media Analytics: "Show trending keywords from social posts"
Usage Examples for AI:
{
"action": "get_url",
"text": "innovation technology artificial intelligence machine learning data science",
"width": 800,
"height": 400,
"backgroundColor": "#f0f0f0"
}create-barcode
Generate barcodes and QR codes - get barcode image URL or save barcode image to file
Documentation: Barcode API
Input: Action (get_url/save_file), outputPath, barcode type, text data, dimensions, and formatting options
Output: Barcode URL or confirmation message with saved file path
Supported Barcode Types (100+ formats):
QR Code: High-density 2D barcode for URLs, text, and data
Code 128: Versatile 1D barcode for alphanumeric content
EAN-13/UPC-A: Standard retail product identification
Data Matrix: Compact 2D barcode for small items
PDF417: High-capacity 2D barcode for documents
Aztec: Compact 2D barcode with built-in error correction
What You Can Create:
Product Management: UPC-A and EAN-13 codes for retail products
Inventory Management: Code 128 barcodes for warehouse tracking
Shipping Labels: Generate tracking codes for logistics
Document Encoding: PDF417 codes for storing large amounts of data
Asset Tracking: Data Matrix codes for equipment and tools
Mobile Applications: QR codes for app downloads and links
Contact Information: QR codes containing vCard data
Event Tickets: Secure barcodes for entry validation
Payment Processing: QR codes for mobile payments
Location Sharing: QR codes with GPS coordinates
WiFi Access: QR codes for network credentials
Promotional Campaigns: QR codes linking to special offers
Prompt Examples:
Inventory Management: "Generate product barcodes for warehouse system"
Retail Operations: "Create UPC codes for new product lines"
Asset Tracking: "Generate Code128 barcodes for equipment tracking"
Prompt Examples:
Inventory Management: "Generate product barcodes for warehouse system"
Retail Operations: "Create UPC codes for new product lines"
Asset Tracking: "Generate Code128 barcodes for equipment tracking"
Usage Examples for AI:
{
"action": "get_url",
"type": "code128",
"text": "ABC123456789",
"width": 300,
"height": 100
}create-table
Convert data to table images - get table image URL or save table image to file
Documentation: Table Image API
Input: Action (get_url/save_file), outputPath, table data structure, column definitions, and styling options
Output: Table image URL or confirmation message with saved file path
Prompt Examples:
Financial Reports: "Convert quarterly earnings data into professional table"
Comparison Charts: "Create feature comparison table for products"
Summary Reports: "Generate formatted tables for executive presentations"
Prompt Examples:
Financial Reports: "Convert quarterly earnings data into professional table"
Comparison Charts: "Create feature comparison table for products"
Summary Reports: "Generate formatted tables for executive presentations"
Usage Examples for AI:
{
"action": "save_file",
"data": {
"title": "Q4 Sales Report",
"columns": [
{ "title": "Product", "dataIndex": "product" },
{ "title": "Revenue", "dataIndex": "revenue" }
],
"dataSource": [
{ "product": "Product A", "revenue": "$50,000" },
{ "product": "Product B", "revenue": "$75,000" }
]
}
}create-qr-code
Create QR codes with extensive customization options - get QR code image URL or save QR code image to file
Documentation: QR Code API
Input: Action (get_url/save_file), outputPath, text content, format options, size, colors, error correction level, and advanced customization
Output: QR code URL or confirmation message with saved file path
What You Can Create:
Website Links: Direct links to websites, landing pages, and online content
Contact Information: vCard data for easy contact sharing
WiFi Access: Network credentials for guest access
Event Details: Calendar events, meeting information, and RSVP links
App Downloads: Direct links to app stores and download pages
Payment Information: Payment links and cryptocurrency addresses
Location Sharing: GPS coordinates and map links
Social Media: Profile links and social media connections
Product Information: Item details, specifications, and reviews
Marketing Campaigns: Promotional links and special offers
Business Cards: Digital business card information
Menu Access: Restaurant menus and ordering systems
Document Sharing: Links to PDFs, forms, and downloads
Survey Links: Research questionnaires and feedback forms
Prompt Examples:
Marketing Campaigns: "Create QR codes linking to product pages"
Event Management: "Generate QR codes for ticket verification"
Contact Sharing: "Create QR codes containing business card information"
WiFi Access: "Generate QR codes for guest network access"
Prompt Examples:
Marketing Campaigns: "Create QR codes linking to product pages"
Event Management: "Generate QR codes for ticket verification"
Contact Sharing: "Create QR codes containing business card information"
WiFi Access: "Generate QR codes for guest network access"
Usage Examples for AI:
{
"action": "save_file",
"text": "https://example.com",
"size": 300,
"centerImageUrl": "https://example.com/logo.png",
"centerImageSizeRatio": 0.2,
"caption": "Visit our website"
}create-watermark
Add watermarks and logos to images - get watermarked image URL or save watermarked image to file
Documentation: Watermark API
Input: Action (get_url/save_file), outputPath, main image URL, watermark image URL, positioning, and opacity options
Output: Watermarked image URL or confirmation message with saved file path
Prompt Examples:
Document Protection: "Add company logo watermark to reports"
Brand Consistency: "Apply watermarks to all marketing materials"
Copyright Protection: "Add attribution to shared visualizations"
Prompt Examples:
Document Protection: "Add company logo watermark to reports"
Brand Consistency: "Apply watermarks to all marketing materials"
Copyright Protection: "Add attribution to shared visualizations"
Usage Examples for AI:
{
"action": "save_file",
"mainImageUrl": "https://example.com/chart.png",
"watermarkImageUrl": "https://example.com/logo.png",
"position": "bottom-right",
"opacity": 0.7
}get-visualization-tool-help
Get detailed usage information and examples for all available chart, diagram, and QR code tools
Input: No parameters required
Output: Complete documentation for all visualization tools in JSON format
Usage Examples for AI:
{}This tool provides comprehensive information about all available tools including:
Supported chart types and features
Prompt examples for each tool
Detailed usage examples with JSON configuration
Official documentation links
What you can create with each tool
Additional web resources for AI to search
Development
Clone this repository
git clone https://github.com/TakanariShimbo/quickchart-mcp-server.git cd quickchart-mcp-serverInstall dependencies
npm ciBuild the project
npm run buildTest with MCP Inspector (optional)
npx @modelcontextprotocol/inspector node dist/index.js
Publishing to NPM
This project includes automated NPM publishing via GitHub Actions. To set up publishing:
1. Create NPM Access Token
Log in to NPM (create account if needed)
npm loginCreate Access Token
Click "Generate New Token"
Select "Automation" (for CI/CD usage)
Copy the generated token (starts with
npm_)
2. Add Token to GitHub Repository
Navigate to Repository Settings
Go to your GitHub repository
Click "Settings" tab
Go to "Secrets and variables" → "Actions"
Add NPM Token
Click "New repository secret"
Name:
NPM_TOKENValue: Paste your NPM token from step 1
Click "Add secret"
3. Setup GitHub Personal Access Token (for release script)
The release script needs to push to GitHub, so you'll need a GitHub token:
Create GitHub Personal Access Token
Click "Generate new token" → "Generate new token (classic)"
Set expiration (recommended: 90 days or custom)
Select scopes:
✅
repo(Full control of private repositories)
Click "Generate token"
Copy the generated token (starts with
ghp_)
Configure Git with Token
# Option 1: Use GitHub CLI (recommended) gh auth login # Option 2: Configure git to use token git config --global credential.helper store # Then when prompted for password, use your token instead
4. Release New Version
Use the included release script to automatically version, tag, and trigger publishing:
# Increment patch version (0.1.0 → 0.1.1)
npm run release patch
# Increment minor version (0.1.0 → 0.2.0)
npm run release minor
# Increment major version (0.1.0 → 1.0.0)
npm run release major
# Set specific version
npm run release 1.2.35. Verify Publication
Check GitHub Actions
Go to "Actions" tab in your repository
Verify the "Publish to npm" workflow completed successfully
Verify NPM Package
Visit:
https://www.npmjs.com/package/@takanarishimbo/quickchart-mcp-serverOr run:
npm view @takanarishimbo/quickchart-mcp-server
Release Process Flow
release.shscript updates version in all filesCreates git commit and tag
Pushes to GitHub
GitHub Actions workflow triggers on new tag
Workflow builds project and publishes to NPM
Package becomes available globally via
npm install
Creating Desktop Extension (DXT)
Desktop Extensions (.dxt) enable one-click installation of MCP servers in Claude Desktop. To create a DXT file for this server:
1. Initialize DXT Manifest
Run this command in the project root directory:
npx @anthropic-ai/dxt init2. Create DXT Package
npx @anthropic-ai/dxt packThis creates a .dxt file that users can install in Claude Desktop with a single click.
3. User Configuration
The DXT file includes user-configurable options that allow users to:
URL Configuration: Set custom QuickChart instance URLs
Tool Management: Enable/disable specific visualization tools
Easy Installation: No manual JSON configuration required
Users can modify these settings during installation or later through Claude Desktop's extension management interface.
Project Structure
quickchart-mcp-server/
├── src/
│ ├── index.ts # Main server implementation
│ ├── tools/
│ │ ├── index.ts # Tool registry and exports
│ │ ├── chart.ts # Chart.js tool
│ │ ├── wordcloud.ts # Word cloud tool
│ │ ├── apexcharts.ts # ApexCharts tool
│ │ ├── barcode.ts # Barcode/QR tool
│ │ ├── googlecharts.ts # Google Charts tool
│ │ ├── graphviz.ts # GraphViz tool
│ │ ├── sparkline.ts # Sparkline tool
│ │ ├── table.ts # Table image tool
│ │ ├── textchart.ts # Text-to-chart tool
│ │ ├── watermark.ts # Watermark tool
│ │ └── qrcode.ts # QR code tool
│ └── utils/
│ ├── config.ts # Configuration management
│ └── file.ts # File utilities
├── package.json # Package configuration
├── package-lock.json
├── tsconfig.json # TypeScript configuration
├── .github/
│ └── workflows/
│ └── npm-publish.yml # NPM publish workflow
├── scripts/
│ └── release.sh # Release automation script
├── docs/
│ ├── README.md # This file
│ └── README_ja.md # Japanese documentation
└── .gitignore # Git ignore fileResources
Official Documentation
QuickChart API
QuickChart Main Documentation - Comprehensive guide to all QuickChart APIs
Chart Libraries
Chart.js Documentation - Popular JavaScript charting library
ApexCharts Documentation - Modern charting library
Google Charts Documentation - Google's visualization API
GraphViz Documentation - Graph visualization software
MCP Protocol
Model Context Protocol - Official MCP specification
MCP SDK Documentation - TypeScript SDK for MCP
Claude Desktop MCP Guide - Using MCP with Claude
MCP Inspector - Debug and test MCP servers
Tutorials & Examples
Getting Started
QuickChart Gallery - Chart examples and inspiration
Chart.js Examples - Interactive chart examples
ApexCharts Demos - Live chart demonstrations
GraphViz Gallery - Graph visualization examples
Advanced Usage
Chart.js Configuration - Detailed configuration options
DOT Language Guide - GraphViz syntax reference
QR Code Best Practices - QR code design guidelines
Data Visualization Guidelines - Choosing the right chart type
Development Tools
Chart.js Chart Builder - Interactive chart builder
QR Code Generator - Online QR code testing
GraphViz Online - Test DOT syntax online
License
MIT - See LICENSE file for details
Available Tools
12 toolscreate-barcodeC
Create barcodes using QuickChart - get barcode image URL or save barcode image to file
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Whether to get barcode URL or save as file | |
| outputPath | No | Path where to save the file (only used with action=save_file) | |
| type | Yes | Barcode type (e.g., qr, code128, ean13, datamatrix, upca, etc.) | |
| text | Yes | Data to encode in the barcode | |
| width | No | Barcode width | |
| height | No | Barcode height | |
| scale | No | Scale factor | |
| includeText | No | Include human-readable text below barcode | |
| rotate | No | Rotation: N=Normal, R=Right 90°, L=Left 90°, I=Inverted 180° |
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 mentions the two action outcomes (URL or file save) but doesn't describe what the URL format looks like, file format (likely PNG/JPEG), error conditions, rate limits, authentication needs, or whether the operation has side effects. For a tool with 9 parameters and no annotation coverage, this is insufficient behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is perfectly concise - a single sentence that front-loads the core purpose and immediately specifies the two action options. Every word earns its place with zero redundancy or unnecessary elaboration.
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 tool with 9 parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain what the tool returns (URL string? file path? success confirmation?), doesn't mention error handling, and provides no context about the QuickChart service (rate limits, supported formats, etc.). The description should do more given the complexity and lack of structured metadata.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 9 parameters thoroughly. The description adds minimal value beyond the schema - it mentions the two action options but doesn't provide additional context about parameter interactions (e.g., that outputPath is only relevant for save_file). Baseline 3 is appropriate when the schema does the heavy lifting.
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: 'Create barcodes using QuickChart' with two specific actions (get URL or save to file). It distinguishes itself from sibling tools like 'create-qr-code' by handling multiple barcode types, but doesn't explicitly contrast with all siblings. The verb 'create' is specific and the resource 'barcodes' is well-defined.
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 like 'create-qr-code' (which appears to be a specialized sibling). It mentions the two action options but doesn't explain when to choose one over the other or when this tool is preferred over other visualization tools in the sibling list. No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create-chart-using-apexchartsC
Create charts using Apex Charts - get chart image URL or save chart image to file
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Whether to get chart URL or save as file | |
| outputPath | No | Path where to save the file (only used with action=save_file) | |
| config | Yes | Apex Charts JSON configuration | |
| width | No | Image width in pixels | |
| height | No | Image height in pixels | |
| apexChartsVersion | No | Apex Charts version to use |
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 mentions the two actions (get_url, save_file) but doesn't explain what the URL points to (e.g., temporary storage, expiration), file formats (e.g., PNG, SVG), error handling, rate limits, or authentication needs. For a tool with 6 parameters and no annotations, this leaves significant behavioral 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 a single, efficient sentence that front-loads the core purpose and key output options. It avoids redundancy and wastes no words, though it could be slightly more structured by separating purpose from action options for better readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (6 parameters, nested 'config' object, no output schema, and no annotations), the description is inadequate. It doesn't explain the output format (e.g., image type, URL validity), error cases, or provide any context for the 'config' parameter, which is critical for correct usage. This leaves the agent with insufficient information to use the tool 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%, so the schema already documents all parameters thoroughly. The description adds no additional meaning beyond what's in the schema—it doesn't explain the 'config' parameter's structure, provide examples for 'width'/'height', or clarify dependencies like 'outputPath' only being used with 'save_file'. Baseline 3 is appropriate as the schema does the heavy lifting.
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: 'Create charts using Apex Charts' specifies the verb (create) and resource (charts), and distinguishes it from sibling tools like create-chart-using-chartjs by naming the specific library. However, it doesn't explicitly differentiate from create-chart-using-natural-language in terms of input method (JSON config vs. natural language).
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 two output options (get URL or save file) but doesn't explain when to choose one over the other, nor does it compare with sibling tools like create-chart-using-chartjs or create-chart-using-googlecharts. There are no prerequisites, exclusions, or context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create-chart-using-chartjsC
Create a chart using QuickChart.io - get chart image URL or save chart image to file
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Whether to get chart URL or save chart as file | |
| outputPath | No | Path where to save the file (only used with action=save_file) | |
| width | No | Pixel width (default: 500) | |
| height | No | Pixel height (default: 300) | |
| devicePixelRatio | No | Pixel ratio for Retina support (default: 2) | |
| format | No | Output format (default: png) | |
| backgroundColor | No | Canvas background color - rgb, hex, hsl, or color names (default: transparent) | |
| version | No | Chart.js version - '2', '3', '4', or specific version (default: '2.9.4') | |
| encoding | No | Chart configuration encoding method (default: url) | |
| key | No | API key (optional) | |
| chart | Yes | Chart.js configuration object |
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 mentions the two action types (get URL or save file) but doesn't describe what happens during execution: whether it makes external API calls, has rate limits, requires authentication (though 'key' parameter hints at optional API key), what errors might occur, or what the response looks like. For a tool with 11 parameters and external dependencies, this is inadequate behavioral 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 extremely concise - a single sentence that efficiently communicates the core functionality. It's front-loaded with the main action and includes both possible outcomes. Every word earns its place with no redundancy or unnecessary elaboration.
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 11 parameters (including nested objects), no annotations, and no output schema, the description is insufficient. It doesn't explain what the tool returns (URL string? file path? success confirmation?), doesn't mention the external service dependency (QuickChart.io), and provides no guidance on the complex 'chart' parameter construction. The agent would struggle to use this tool effectively based on the description alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all parameters are documented in the schema. The description adds minimal value beyond the schema - it mentions the two action types which are already covered by the 'action' parameter enum, and references QuickChart.io which provides context for the tool's implementation. However, it doesn't explain parameter relationships or provide usage examples that would help an agent understand how to construct the complex 'chart' object parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('create a chart') and the technology used ('using QuickChart.io'), along with the two possible outcomes ('get chart image URL or save chart image to file'). It distinguishes from some siblings by specifying Chart.js, but doesn't explicitly differentiate from other chart creation tools like 'create-chart-using-apexcharts' or 'create-chart-using-googlecharts' beyond the technology name.
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. With multiple chart creation siblings available (apexcharts, googlecharts, natural language, sparkline), there's no indication of when Chart.js/QuickChart.io is preferable, what scenarios it's designed for, or any prerequisites for use. The agent must infer usage from tool names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create-chart-using-googlechartsC
Create charts using Google Charts - get chart image URL or save chart image to file
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Whether to get chart URL or save as file | |
| outputPath | No | Path where to save the file (only used with action=save_file) | |
| code | Yes | JavaScript drawChart function code | |
| packages | No | Google Charts packages to load (default: 'corechart') | |
| width | No | Chart width in pixels | |
| height | No | Chart height in pixels | |
| mapsApiKey | No | Google Maps API key (for geo charts) |
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 mentions the two action outcomes but doesn't describe authentication needs (mapsApiKey suggests some charts may require API keys), rate limits, error conditions, or what happens when saving files (overwrite behavior, file format).
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?
Extremely concise single sentence that efficiently communicates the core functionality. Every word earns its place with no wasted text. The description is front-loaded with the main purpose followed by the two action outcomes.
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 tool with 7 parameters, no annotations, and no output schema, the description is insufficient. It doesn't explain what the tool returns (URL format for get_url, success indicators for save_file), doesn't mention the JavaScript code requirements, and provides no context about the Google Charts ecosystem or limitations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 7 parameters thoroughly. The description adds no additional parameter semantics beyond what's in the schema. The baseline of 3 is appropriate when the schema does all the parameter documentation work.
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: 'Create charts using Google Charts' with two specific actions (get URL or save file). It distinguishes from siblings by specifying the Google Charts library, but doesn't explicitly contrast with other chart creation tools like create-chart-using-apexcharts or create-chart-using-chartjs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. The description mentions the two action types but doesn't provide context for choosing between them or when to prefer Google Charts over other chart libraries available as sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create-chart-using-natural-languageC
Create charts from natural language descriptions - get chart image URL or save chart image to file
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Whether to get chart URL or save as file | |
| outputPath | No | Path where to save the file (only used with action=save_file) | |
| description | Yes | Natural language chart description | |
| width | No | Chart width in pixels | |
| height | No | Chart height in pixels | |
| backgroundColor | No | Background color | |
| data1 | No | First dataset values (comma-separated) | |
| data2 | No | Second dataset values (comma-separated) | |
| labels | No | Data labels (comma-separated) | |
| title | No | Chart title |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions the two possible actions (get URL or save file) but doesn't disclose important behavioral traits: what format the chart image is (PNG, SVG, etc.), whether there are rate limits, authentication requirements, error handling, or what the URL/file output looks like.
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 efficiently structured in a single sentence that covers the core functionality and two main outcomes. It's appropriately sized for the tool's complexity, though it could be slightly more front-loaded with the primary purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 10-parameter tool with no annotations and no output schema, the description is insufficient. It doesn't explain what the tool returns (beyond mentioning URL or file save), doesn't cover error cases, and provides no context about the chart generation process or limitations of the natural language approach.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds minimal value beyond the schema - it mentions 'natural language descriptions' which aligns with the 'description' parameter, but doesn't provide additional context about parameter interactions or usage examples.
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: 'Create charts from natural language descriptions' with specific outcomes ('get chart image URL or save chart image to file'). It distinguishes from some siblings (e.g., create-barcode, create-qr-code) by focusing on charts, but doesn't differentiate from other chart-creation siblings like create-chart-using-apexcharts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like create-chart-using-apexcharts or create-chart-using-chartjs. The description mentions the action parameter options but doesn't provide context for choosing between them or when this natural language approach is preferable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create-diagram-using-graphvizB
Create graph diagrams using GraphViz - get diagram image URL or save diagram image to file
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Whether to get graph URL or save as file | |
| outputPath | No | Path where to save the file (only used with action=save_file) | |
| graph | Yes | DOT graph description | |
| layout | No | Graph layout algorithm (default: dot) | |
| format | No | Output format (default: svg) | |
| width | No | Image width in pixels | |
| height | No | Image height in pixels |
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 mentions the two action outcomes but lacks critical details: whether this is a read/write operation, if it requires external GraphViz installation, rate limits, error handling, or what happens when saving files (overwrites? permissions?). The description is insufficient for a tool with 7 parameters and file operations.
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 front-loads the core purpose ('Create graph diagrams using GraphViz') followed by the two main actions. There's no wasted text, though it could be slightly more structured (e.g., separating purpose from options).
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 (7 parameters, file operations, no output schema, and no annotations), the description is incomplete. It doesn't explain what a 'DOT graph description' is, how the output looks (URL format? file location?), error conditions, or dependencies. For a tool that can save files and generate images, more context is needed for safe and effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 7 parameters thoroughly. The description adds minimal value beyond the schema—it mentions 'get diagram image URL or save diagram image to file' which aligns with the 'action' parameter but doesn't provide additional context about parameter interactions or usage examples. Baseline 3 is appropriate when schema does heavy lifting.
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: 'Create graph diagrams using GraphViz' with specific verbs ('create', 'get', 'save') and resources ('diagrams', 'image URL', 'file'). It distinguishes from sibling tools by specifying GraphViz rather than other visualization libraries like ApexCharts or ChartJS, though it doesn't explicitly contrast with all siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by mentioning two actions ('get diagram image URL or save diagram image to file'), but provides no explicit guidance on when to choose this tool over alternatives like 'create-chart-using-*' tools or 'create-diagram' (if existed). It doesn't mention prerequisites, limitations, or specific scenarios favoring GraphViz.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create-qr-codeC
Create QR codes using QuickChart - get QR code image URL or save QR code image to file
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Whether to get QR code URL or save as file | |
| outputPath | No | Path where to save the file (only used with action=save_file) | |
| text | Yes | Content of the QR code (URL, text, etc.) | |
| format | No | Output format (default: png) | |
| size | No | Image dimensions in pixels (default: 150) | |
| margin | No | Whitespace around QR image (default: 4) | |
| dark | No | Hex color for QR grid cells (default: black) | |
| light | No | Hex color for background (default: white, use '0000' for transparent) | |
| ecLevel | No | Error correction level (default: M) | |
| centerImageUrl | No | URL of center image (must be URL-encoded) | |
| centerImageSizeRatio | No | Center image size ratio (0.0-1.0, default: 0.3) | |
| caption | No | Text below QR code | |
| captionFontFamily | No | Caption font family (default: 'sans-serif') | |
| captionFontSize | No | Caption font size (default: 10) | |
| captionFontColor | No | Caption text color (default: black) |
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 the two possible actions but doesn't describe what happens during each action (e.g., what the URL format is, where files are saved, error conditions, or performance characteristics). For a tool with 15 parameters and no annotation coverage, this is a significant gap in behavioral 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 extremely concise - a single sentence that efficiently communicates the core functionality. It's front-loaded with the main purpose and immediately specifies the two action options. Every word earns its place with zero wasted text or redundancy.
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 tool with 15 parameters, no annotations, and no output schema, the description is inadequate. It doesn't explain what the tool returns (URL format, file location, error responses), doesn't mention any constraints or limitations, and provides no guidance on parameter interactions. The single sentence description fails to address the complexity of this multi-parameter visualization tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 15 parameters thoroughly. The description doesn't add any parameter-specific information beyond what's in the schema. It mentions the two action options but doesn't provide additional context about parameter interactions or usage patterns. The baseline of 3 is appropriate when the schema does all the parameter documentation work.
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: 'Create QR codes using QuickChart' with specific actions 'get QR code image URL or save QR code image to file'. It distinguishes from sibling tools by specifying QR codes rather than other visualizations like charts or barcodes, though it doesn't explicitly differentiate from create-barcode. The verb 'create' is specific and the resource 'QR codes' is well-defined.
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 like create-barcode or other visualization tools. It mentions the two action options (get_url vs save_file) but doesn't explain when to choose one over the other or any prerequisites. There's no context about when QR codes are appropriate compared to other formats or tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create-sparkline-using-chartjsC
Create sparkline charts using Chart.js - get sparkline image URL or save sparkline image to file
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Whether to get sparkline URL or save as file | |
| outputPath | No | Path where to save the file (only used with action=save_file) | |
| chart | Yes | Chart.js configuration for sparkline | |
| width | No | Chart width in pixels (default: 100) | |
| height | No | Chart height in pixels (default: 30) | |
| devicePixelRatio | No | Device pixel ratio (default: 2) | |
| backgroundColor | No | Background color (default: transparent) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only mentions the two action outcomes without explaining behavioral aspects like whether this generates external URLs, file system access requirements, performance characteristics, error handling, or what happens with invalid chart configurations. For a tool with 7 parameters and no annotation coverage, this is insufficient.
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 with just one sentence that efficiently communicates the core functionality. It's front-loaded with the main purpose and wastes no words on unnecessary elaboration.
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 tool with 7 parameters, nested objects, no annotations, and no output schema, the description is inadequate. It doesn't explain what a sparkline is, what the output looks like, how the chart configuration should be structured, or provide any examples. The agent would need to rely heavily on the schema alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds minimal value by mentioning the two action types, but doesn't provide additional context about parameter interactions, default behaviors, or usage patterns beyond what's 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 verb 'create' and resource 'sparkline charts using Chart.js', and specifies two output options (get URL or save file). It distinguishes from siblings by focusing on sparklines specifically, though it doesn't explicitly contrast with other chart creation 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 about when to use this tool versus alternatives like 'create-chart-using-chartjs' or other visualization siblings. The description mentions two action types but doesn't explain when to choose one over the other or provide any context about appropriate use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create-tableC
Create table images using QuickChart - get table image URL or save table image to file
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Whether to get table URL or save as file | |
| outputPath | No | Path where to save the file (only used with action=save_file) | |
| data | Yes | Table data with title, columns, and dataSource | |
| options | No | Table styling options |
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 mentions the two action types but doesn't describe what happens when each is selected (e.g., what format the URL returns, where files are saved, error conditions, or performance characteristics). For a tool with file system interaction and external service dependency (QuickChart), this leaves significant behavioral 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 extremely concise (one sentence) and front-loaded with the core functionality. Every word earns its place: 'Create table images using QuickChart' establishes the what and how, while '- get table image URL or save table image to file' efficiently describes the two primary actions. No wasted words or redundant 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 tool with 4 parameters (including complex nested objects), no annotations, and no output schema, the description is inadequate. It doesn't explain what the tool returns (URL format? file path? success confirmation?), doesn't mention QuickChart integration requirements or limitations, and provides no error handling context. The single sentence description leaves too many operational questions unanswered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds minimal value beyond the schema - it mentions 'table images' which hints at the data parameter's purpose, but doesn't provide additional context about parameter relationships or usage patterns. This meets the baseline expectation when schema coverage is complete.
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: 'Create table images using QuickChart' with two specific actions (get URL or save to file). It distinguishes from most siblings by focusing on tables rather than charts, barcodes, or other visualizations. However, it doesn't explicitly differentiate from all possible table-related tools that might exist elsewhere.
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 QuickChart over other charting tools in the sibling list, nor does it provide context about appropriate use cases for table images versus other visualization formats. The agent receives no usage context beyond the tool's basic functionality.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create-watermarkA
Add watermarks/logos to images using QuickChart - get watermarked image URL or save watermarked image to file
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Whether to get watermarked image URL or save as file | |
| outputPath | No | Path where to save the file (only used with action=save_file) | |
| mainImageUrl | Yes | URL of the main image to watermark | |
| markImageUrl | Yes | URL of the watermark/logo image | |
| opacity | No | Watermark opacity (0.0 to 1.0) | |
| imageWidth | No | Main image width in pixels | |
| imageHeight | No | Main image height in pixels | |
| markWidth | No | Watermark width in pixels | |
| markHeight | No | Watermark height in pixels | |
| markRatio | No | Watermark size ratio relative to main image | |
| position | No | Watermark position | |
| positionX | No | Custom X position in pixels | |
| positionY | No | Custom Y position in pixels | |
| margin | No | Margin from edges in pixels |
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 two possible actions (get URL or save file), it doesn't describe important behavioral aspects like: whether this is a read-only or destructive operation, what permissions or authentication might be required, rate limits, error conditions, or what happens when saving files (overwrites? creates directories?). For a tool with 14 parameters and no annotation coverage, 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 perfectly concise - a single sentence that efficiently communicates the tool's purpose, the service it uses, and the two primary outcomes. Every word earns its place with zero wasted text, and the information is front-loaded appropriately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (14 parameters, no annotations, no output schema), the description is insufficiently complete. It doesn't explain what the tool returns (URL format? file path? success indicator?), doesn't mention error handling, and provides minimal behavioral context. For a tool with this many configuration options and no structured output documentation, the description should do more to help the agent understand how to 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 100%, so all parameters are documented in the schema itself. The description doesn't add any parameter-specific information beyond what's already in the schema descriptions. According to the scoring rules, when schema coverage is high (>80%), the baseline is 3 even with no param info in the description.
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 ('Add watermarks/logos to images'), the tool/service used ('using QuickChart'), and the two possible outcomes ('get watermarked image URL or save watermarked image to file'). It distinguishes itself from sibling tools which are all about creating various visualizations (charts, barcodes, etc.) rather than modifying existing images with watermarks.
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 (for watermarking images) and implies the two usage scenarios (URL generation vs file saving). However, it doesn't explicitly state when NOT to use it or mention alternatives for similar functionality, 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.
create-wordcloudC
Create a word cloud using QuickChart.io - get word cloud image URL or save word cloud image to file
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Whether to get word cloud URL or save as file | |
| outputPath | No | Path where to save the file (only used with action=save_file) | |
| text | Yes | Input text for word cloud generation | |
| format | No | Output format (default: svg) | |
| width | No | Image width in pixels | |
| height | No | Image height in pixels | |
| backgroundColor | No | Background color - rgb, hex, hsl, or color names | |
| fontFamily | No | Font family to use for words | |
| fontWeight | No | Font weight (normal, bold, etc.) | |
| loadGoogleFonts | No | Google Fonts to load (comma-separated) | |
| fontScale | No | Largest font size for most frequent words | |
| scale | No | Frequency scaling method | |
| padding | No | Pixel spacing between words | |
| rotation | No | Maximum word rotation angle in degrees | |
| maxNumWords | No | Maximum number of words to display | |
| minWordLength | No | Minimum word character length | |
| case | No | Word case transformation | |
| colors | No | Array of color values for words | |
| removeStopwords | No | Remove common stopwords | |
| cleanWords | No | Remove symbols and extra characters from words | |
| language | No | Language code for stopword removal (e.g., 'en', 'es') | |
| useWordList | No | Treat input text as a list of words rather than sentences |
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 the two action types (get_url, save_file) but doesn't describe what happens during each action, potential limitations, rate limits, authentication requirements, or what happens if the service is unavailable. For a tool that presumably makes external API calls, this is insufficient behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that communicates the core functionality and two main options. It's appropriately sized for the tool's complexity, though it could potentially benefit from slightly more context about when to choose each action type.
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 tool with 22 parameters, no annotations, and no output schema, the description is inadequate. It doesn't explain what a word cloud is, what the output looks like, any limitations or requirements, or how to interpret results. The agent would need to rely entirely on the parameter schema without contextual guidance about the tool's behavior and appropriate use cases.
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 100% schema description coverage, the schema already documents all 22 parameters thoroughly. The description mentions the two action types but doesn't add meaningful semantic context beyond what's in the parameter descriptions. The baseline of 3 is appropriate when the schema does all the heavy lifting for parameter documentation.
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: 'Create a word cloud using QuickChart.io' with two possible outcomes (get URL or save to file). It specifies the service provider (QuickChart.io) and the output types, but doesn't explicitly differentiate from sibling tools like 'create-chart-using-chartjs' or 'create-barcode' beyond mentioning 'word cloud' specifically.
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. There are multiple sibling tools for creating visualizations (charts, diagrams, barcodes, etc.), but the description doesn't indicate when a word cloud is appropriate versus other visualization types or which sibling tools might be alternatives for similar tasks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-visualization-tool-helpB
Get detailed usage information and examples for all available chart, diagram, and QR code tools
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
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 retrieves 'detailed usage information and examples,' implying a read-only, informational operation, but doesn't specify output format, data structure, or any constraints (e.g., rate limits, authentication needs). This leaves significant gaps in understanding how the tool behaves beyond its basic purpose.
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 tool's purpose without unnecessary words. It is front-loaded with the key action ('Get detailed usage information and examples') and specifies the scope clearly. Every part of the sentence earns its place, making it highly concise and effective.
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 (low, with 0 parameters) and the absence of annotations and output schema, the description is minimally adequate. It explains what the tool does but lacks details on behavioral traits, output format, or usage context. For a helper tool in a visualization-focused server, more guidance on when and how to use it would improve completeness, but it meets the basic threshold for a simple informational tool.
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 tool has 0 parameters, and schema description coverage is 100%, so there are no parameters to document. The description doesn't need to add parameter semantics, and it appropriately avoids mentioning any. A baseline of 4 is applied since no parameters exist, and the description doesn't introduce confusion by referencing non-existent inputs.
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: 'Get detailed usage information and examples for all available chart, diagram, and QR code tools.' It specifies the verb ('Get'), resource ('usage information and examples'), and scope ('all available chart, diagram, and QR code tools'). However, it doesn't explicitly differentiate from siblings like 'create-chart-using-natural-language' which might also provide guidance, so it doesn't reach the highest clarity level.
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 prerequisites, timing (e.g., use before creating visualizations), or exclusions. For example, it doesn't clarify if this is for general reference or troubleshooting, leaving the agent to infer usage from context alone.
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.
12 tool updates
- First observed
create-barcode - First observed
create-chart-using-apexcharts - First observed
create-chart-using-chartjs - First observed
create-chart-using-googlecharts - First observed
create-chart-using-natural-language - First observed
create-diagram-using-graphviz - First observed
create-qr-code - First observed
create-sparkline-using-chartjs - First observed
create-table - First observed
create-watermark - First observed
create-wordcloud - First observed
get-visualization-tool-help
TDQS
Each tool has a clearly distinct purpose targeting specific visualization types or formats (e.g., barcodes, charts with different libraries, QR codes, tables, watermarks, word clouds). The descriptions reinforce these distinctions by specifying the underlying technology or use case, leaving no ambiguity about which tool to select for a given task.
All tool names follow a consistent verb_noun pattern starting with 'create-' or 'get-', with clear and descriptive suffixes (e.g., '-barcode', '-chart-using-apexcharts', '-qr-code'). This uniformity makes the tool set predictable and easy to navigate, enhancing usability for agents.
With 12 tools, the server is well-scoped for its purpose of generating various visualizations (charts, diagrams, codes, etc.). Each tool earns its place by covering a specific visualization type or library, avoiding bloat while providing comprehensive coverage for common needs in this domain.
The tool set offers complete coverage for the visualization domain, including multiple chart libraries (Chart.js, Apex Charts, Google Charts), specialized visualizations (barcodes, QR codes, word clouds, tables, watermarks), and a help tool. There are no obvious gaps; agents can generate a wide range of visual outputs and access documentation seamlessly.
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…
Official Miro MCP server - Supports context to code and creating diagrams, docs, and data tables.
The Mercado Pago MCP Server implements the Model Context Protocol to provide AI agents and LLMs with access to Mercado Pago's APIs and tools within compatible development environments. It acts as an intermediary that translates Mercado Pago resources into executable functions (tools) that AI applications can invoke to perform actions and automate flows. The server simplifies integration, enables using documentation to implement or improve code, and optimizes operations through natural language interactions without manual implementations.
MCP server for Qwen Image 3 AI image generation
Related MCP Servers
- AlicenseCqualityFmaintenanceAn MCP server for generating customizable data visualizations using QuickChart.io, supporting multiple chart types and Chart.js configuration.2200159MIT
- 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
- AlicenseAqualityDmaintenanceA MCP server for data visualization. It exposes tools to render charts (line, bar, pie, scatter, heatmap, etc.) from data and returns plots as either image/text/mermaid diagram.24MIT
- AlicenseCqualityDmaintenanceA server based on Model Context Protocol (MCP), providing a standardized interface for interacting with Quick Chart and supporting chart generation and management.12Apache 2.0
Appeared in Searches
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/TakanariShimbo/quickchart-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server