Skip to main content
Glama

English | 日本語 | README

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:

  1. Choose the right tool for your request

  2. Structure the data appropriately

  3. Apply suitable styling and formatting

  4. 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}/chart

  • QR Codes: {BASE_URL}/qr

  • Word Clouds: {BASE_URL}/wordcloud

  • ApexCharts: {BASE_URL}/apex-charts/render

  • Google Charts: {BASE_URL}/google-charts/render

  • Barcodes: {BASE_URL}/barcode

  • GraphViz: {BASE_URL}/graphviz

  • Text-to-Chart: {BASE_URL}/natural

  • Watermarks: {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: Desktop in 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/charts

Tools

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

  1. Clone this repository

    git clone https://github.com/TakanariShimbo/quickchart-mcp-server.git
    cd quickchart-mcp-server
  2. Install dependencies

    npm ci
  3. Build the project

    npm run build
  4. Test 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

  1. Log in to NPM (create account if needed)

    npm login
  2. Create Access Token

2. Add Token to GitHub Repository

  1. Navigate to Repository Settings

    • Go to your GitHub repository

    • Click "Settings" tab

    • Go to "Secrets and variables" → "Actions"

  2. Add NPM Token

    • Click "New repository secret"

    • Name: NPM_TOKEN

    • Value: 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:

  1. Create GitHub Personal Access Token

    • Go to https://github.com/settings/tokens

    • 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_)

  2. 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.3

5. Verify Publication

  1. Check GitHub Actions

    • Go to "Actions" tab in your repository

    • Verify the "Publish to npm" workflow completed successfully

  2. Verify NPM Package

    • Visit: https://www.npmjs.com/package/@takanarishimbo/quickchart-mcp-server

    • Or run: npm view @takanarishimbo/quickchart-mcp-server

Release Process Flow

  1. release.sh script updates version in all files

  2. Creates git commit and tag

  3. Pushes to GitHub

  4. GitHub Actions workflow triggers on new tag

  5. Workflow builds project and publishes to NPM

  6. 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 init

2. Create DXT Package

npx @anthropic-ai/dxt pack

This 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 file

Resources

Official Documentation

QuickChart API

Chart Libraries

MCP Protocol

Tutorials & Examples

Getting Started

Advanced Usage

Development Tools

License

MIT - See LICENSE file for details

Available Tools

12 tools
create-barcodeC

Create barcodes using QuickChart - get barcode image URL or save barcode image to file

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesWhether to get barcode URL or save as file
outputPathNoPath where to save the file (only used with action=save_file)
typeYesBarcode type (e.g., qr, code128, ean13, datamatrix, upca, etc.)
textYesData to encode in the barcode
widthNoBarcode width
heightNoBarcode height
scaleNoScale factor
includeTextNoInclude human-readable text below barcode
rotateNoRotation: N=Normal, R=Right 90°, L=Left 90°, I=Inverted 180°

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It 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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: '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.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives 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

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesWhether to get chart URL or save as file
outputPathNoPath where to save the file (only used with action=save_file)
configYesApex Charts JSON configuration
widthNoImage width in pixels
heightNoImage height in pixels
apexChartsVersionNoApex Charts version to use

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It 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.

Conciseness4/5

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.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (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.

Parameters3/5

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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: '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.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It mentions 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

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesWhether to get chart URL or save chart as file
outputPathNoPath where to save the file (only used with action=save_file)
widthNoPixel width (default: 500)
heightNoPixel height (default: 300)
devicePixelRatioNoPixel ratio for Retina support (default: 2)
formatNoOutput format (default: png)
backgroundColorNoCanvas background color - rgb, hex, hsl, or color names (default: transparent)
versionNoChart.js version - '2', '3', '4', or specific version (default: '2.9.4')
encodingNoChart configuration encoding method (default: url)
keyNoAPI key (optional)
chartYesChart.js configuration object

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It 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.

Conciseness5/5

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.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex tool with 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.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all parameters are documented 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.

Purpose4/5

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.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. 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

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesWhether to get chart URL or save as file
outputPathNoPath where to save the file (only used with action=save_file)
codeYesJavaScript drawChart function code
packagesNoGoogle Charts packages to load (default: 'corechart')
widthNoChart width in pixels
heightNoChart height in pixels
mapsApiKeyNoGoogle Maps API key (for geo charts)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but provides minimal behavioral information. It 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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: '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.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use 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

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesWhether to get chart URL or save as file
outputPathNoPath where to save the file (only used with action=save_file)
descriptionYesNatural language chart description
widthNoChart width in pixels
heightNoChart height in pixels
backgroundColorNoBackground color
data1NoFirst dataset values (comma-separated)
data2NoSecond dataset values (comma-separated)
labelsNoData labels (comma-separated)
titleNoChart title

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries 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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds 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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: '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.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use 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

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesWhether to get graph URL or save as file
outputPathNoPath where to save the file (only used with action=save_file)
graphYesDOT graph description
layoutNoGraph layout algorithm (default: dot)
formatNoOutput format (default: svg)
widthNoImage width in pixels
heightNoImage height in pixels

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries 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.

Conciseness4/5

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.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (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.

Parameters3/5

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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: '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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesWhether to get QR code URL or save as file
outputPathNoPath where to save the file (only used with action=save_file)
textYesContent of the QR code (URL, text, etc.)
formatNoOutput format (default: png)
sizeNoImage dimensions in pixels (default: 150)
marginNoWhitespace around QR image (default: 4)
darkNoHex color for QR grid cells (default: black)
lightNoHex color for background (default: white, use '0000' for transparent)
ecLevelNoError correction level (default: M)
centerImageUrlNoURL of center image (must be URL-encoded)
centerImageSizeRatioNoCenter image size ratio (0.0-1.0, default: 0.3)
captionNoText below QR code
captionFontFamilyNoCaption font family (default: 'sans-serif')
captionFontSizeNoCaption font size (default: 10)
captionFontColorNoCaption text color (default: black)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It 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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: '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.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives 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

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesWhether to get sparkline URL or save as file
outputPathNoPath where to save the file (only used with action=save_file)
chartYesChart.js configuration for sparkline
widthNoChart width in pixels (default: 100)
heightNoChart height in pixels (default: 30)
devicePixelRatioNoDevice pixel ratio (default: 2)
backgroundColorNoBackground color (default: transparent)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but 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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesWhether to get table URL or save as file
outputPathNoPath where to save the file (only used with action=save_file)
dataYesTable data with title, columns, and dataSource
optionsNoTable styling options

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It 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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: '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.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when to choose 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

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesWhether to get watermarked image URL or save as file
outputPathNoPath where to save the file (only used with action=save_file)
mainImageUrlYesURL of the main image to watermark
markImageUrlYesURL of the watermark/logo image
opacityNoWatermark opacity (0.0 to 1.0)
imageWidthNoMain image width in pixels
imageHeightNoMain image height in pixels
markWidthNoWatermark width in pixels
markHeightNoWatermark height in pixels
markRatioNoWatermark size ratio relative to main image
positionNoWatermark position
positionXNoCustom X position in pixels
positionYNoCustom Y position in pixels
marginNoMargin from edges in pixels

TDQS

A3.6/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. While it mentions the 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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context about when to use this tool (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

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesWhether to get word cloud URL or save as file
outputPathNoPath where to save the file (only used with action=save_file)
textYesInput text for word cloud generation
formatNoOutput format (default: svg)
widthNoImage width in pixels
heightNoImage height in pixels
backgroundColorNoBackground color - rgb, hex, hsl, or color names
fontFamilyNoFont family to use for words
fontWeightNoFont weight (normal, bold, etc.)
loadGoogleFontsNoGoogle Fonts to load (comma-separated)
fontScaleNoLargest font size for most frequent words
scaleNoFrequency scaling method
paddingNoPixel spacing between words
rotationNoMaximum word rotation angle in degrees
maxNumWordsNoMaximum number of words to display
minWordLengthNoMinimum word character length
caseNoWord case transformation
colorsNoArray of color values for words
removeStopwordsNoRemove common stopwords
cleanWordsNoRemove symbols and extra characters from words
languageNoLanguage code for stopword removal (e.g., 'en', 'es')
useWordListNoTreat input text as a list of words rather than sentences

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It 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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: '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.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. 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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description 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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: '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.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention 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.

  1. 12 tool updates
    • First observedcreate-barcode
    • First observedcreate-chart-using-apexcharts
    • First observedcreate-chart-using-chartjs
    • First observedcreate-chart-using-googlecharts
    • First observedcreate-chart-using-natural-language
    • First observedcreate-diagram-using-graphviz
    • First observedcreate-qr-code
    • First observedcreate-sparkline-using-chartjs
    • First observedcreate-table
    • First observedcreate-watermark
    • First observedcreate-wordcloud
    • First observedget-visualization-tool-help

TDQS

A3.6/5.0
Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness5/5

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

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    An 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.
    19
    81
    Apache 2.0
  • A
    license
    A
    quality
    D
    maintenance
    A 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.
    2
    4
    MIT
  • A
    license
    C
    quality
    D
    maintenance
    A server based on Model Context Protocol (MCP), providing a standardized interface for interacting with Quick Chart and supporting chart generation and management.
    1
    2
    Apache 2.0

Latest Blog Posts

MCP directory API

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

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

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