Skip to main content
Glama
zhugejun
by zhugejun

@chartone/mcp

Branded chart rendering for AI agents. Hosted MCP, zero setup.

ChartOne MCP gives any AI agent the ability to produce themed charts and return them as both an inline image and a persistent hosted URL — perfect for emails, Slack messages, PDFs, and dashboards.

Install

Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "chartone": {
      "command": "npx",
      "args": ["-y", "@chartone/mcp"],
      "env": {
        "CHARTONE_API_KEY": "sk-..."
      }
    }
  }
}

Restart Claude Desktop. Anonymous mode (no key) returns watermarked charts.

Cursor / Zed / Windsurf

Same config shape, in each client's MCP settings file. See docs.chartone.dev/mcp for current paths.

Hosted endpoint (beta)

For cloud agents that can't run local stdio servers:

POST https://api.chartone.dev/mcp
Authorization: Bearer sk-...   (optional, anonymous returns watermark)
Content-Type: application/json

Body: { "method": "tools/list" }  or  { "method": "tools/call", "params": {...} }

Related MCP server: Chart-Output MCP Server

Tools

  • render_chart — render a chart from explicit type, data, theme.

  • suggest_chart — give it data + intent ("show quarterly trends"), it picks the chart type/theme and renders.

Both return an inline image plus a persistent hosted URL.

Get an API key

Sign up at chartone.dev. Free tier includes a generous render quota; paid tiers remove the watermark and extend URL lifetime.

Available Tools

2 tools
render_chartB

Render a branded chart from data and return it as an inline image with a persistent hosted URL. Use this tool any time the user asks to create, generate, or visualize a chart — even when also composing a message, email, or document. After the tool runs, embed the returned URL directly in your response; never write a placeholder like "[chart link]". Without an API key only the "modern" and "minimal" themes are available — default to "modern" unless the user explicitly requests a theme.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataYes
typeYes
themeNomodern
titleNo
widthNo
formatNopng
heightNo

TDQS

B3.1/5.0
Behavior3/5

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

With no annotations, the description must disclose behavioral traits. It usefully notes that only 'modern' and 'minimal' themes are available without an API key, and that the tool returns a persistent hosted URL. However, it does not cover errors, authentication, rate limits, or what happens if parameters are invalid.

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 paragraph with clear, action-oriented sentences. It front-loads the purpose and provides specific instructions for the AI (embed the URL, never write placeholder). No unnecessary words, but the lack of param details could be seen as over-concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

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

Given the tool has 7 parameters, nested objects, and no output schema, the description should explain return values and parameter semantics more thoroughly. It offers a high-level summary but omits details on error handling, data format expectations, and limitations beyond the theme API key restriction.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It only mentions the theme restriction and the need for an API key, but does not explain the data structure, type enum options, width/height, format, or title. The complex nested data parameter is left entirely to the schema's property names.

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 renders a branded chart from data and returns a hosted URL. It explicitly says to use it when the user asks to create, generate, or visualize a chart. However, it does not distinguish from the sibling tool suggest_chart, which likely provides chart type suggestions.

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 gives clear guidance on when to use the tool (any chart creation request) and instructs the AI to embed the URL. But it lacks explicit when-not-to-use scenarios or alternative tools, such as suggesting suggest_chart for chart type decisions.

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

suggest_chartB

Given raw data and a natural-language description of intent (e.g., 'show quarterly sales trends'), ChartOne's AI picks the best chart type and theme, renders the chart, and returns it with a rationale.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataYes
widthNo
formatNopng
heightNo
user_intentYes

TDQS

B3.3/5.0
Behavior3/5

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

Discloses AI selection, rendering, and rationale. No annotations provided. Does not mention limitations, error handling, or potential side effects. Adequate but not comprehensive.

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?

Single sentence is concise and front-loaded with purpose. Could be more structured with separate parameter explanations, but overall efficient.

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?

Tool has 5 parameters, nested objects, AI decision-making, and output (chart image + rationale). Description is too brief to cover all aspects. No output schema. Missing details on output format, error scenarios, or constraints.

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?

Provides meaning for 'data' (raw data) and 'user_intent' (natural-language description). Schema description coverage is 0%, so description partially compensates. Optional parameters (width, height, format) are not explained.

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?

Description clearly states it picks chart type/theme, renders chart, and returns rationale. Verb 'picks' indicates AI selection. However, it does not explicitly distinguish from sibling 'render_chart', which likely renders a predefined chart type.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

Implies usage when you have raw data and need AI to choose chart. Sibling tool is listed but no guidance on when to use one over the other. No explicit when-not-to-use or alternatives.

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. 2 tool updatesv0.1.5
    • First observedrender_chart
    • First observedsuggest_chart

TDQS

B3.4/5.0
Disambiguation4/5

Both tools generate charts, but render_chart takes explicit data and renders a chart, while suggest_chart uses AI to recommend chart type and theme based on intent. The descriptions clearly differentiate their roles, though there is minor overlap in that both produce chart images.

Naming Consistency5/5

Both tool names follow a consistent verb_noun pattern using snake_case (render_chart, suggest_chart), making them predictable and easy to understand.

Tool Count4/5

With only 2 tools, the server feels minimal but appropriately scoped for a focused chart rendering and suggestion utility. The count is slightly under what might be expected, but each tool has a clear purpose.

Completeness3/5

The server covers chart creation and intelligent suggestion, but lacks tools for managing or editing previously rendered charts (e.g., update, delete, list). This is a notable gap if charts are stored with persistent URLs.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

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

curl -X GET 'https://glama.ai/api/mcp/v1/servers/zhugejun/chartone-mcp'

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