mcp-dashboards
MCP Dashboards renders 31 types of interactive charts, dashboards, and KPI widgets directly inside AI conversations, with no external tools required.
Chart Types
Basic: Pie/Donut, Bar (vertical, horizontal, stacked, drill-down), Line/Area, Scatter
Financial: Candlestick/OHLC with optional volume bars
Comparison & Ranking: Radar, Lollipop, Dumbbell, Slope, Bullet
Distribution: Boxplot, Violin
Flow & Hierarchy: Sankey, Treemap, Waterfall, Funnel
Geographic: Choropleth world map, Bubble/Pin map
Specialty: Word Cloud, Heatmap, Timeline, Radial Cluster, Sparkline, Waffle
KPI Widgets: 11 hero metric variants (big number, progress ring, NPS, orb, gem, countdown, etc.)
Full Dashboards: Composite layouts with KPI cards and multiple charts in a responsive grid
Data Tables: Sortable and interactive
Smart & Live Tools
Auto-detect the best chart for any JSON data or URL (
render_from_json,render_from_url)Real-time auto-polling charts that update on a timer (
render_live_chart,poll_http)
Theming & Styling
20 built-in themes (boardroom, corporate, tokyo-midnight, clinical, startup, etc.)
8 typography options and 5 visual effects presets (shimmer, neon, energetic, etc.)
Mix-and-match palettes, typography, and effects independently
Interactivity
Hover tooltips, click-to-select data points, drill-down navigation, scroll-zoom (up to 12x on maps)
Export
PNG, PowerPoint (PPT), A4 document, or CSV
Privacy & Security
All processing is local — no external data collection or transmission
API credentials for live polling stay server-side in environment variable presets, never exposed in conversations
Supports real-time tracking and visualization of Bitcoin price data through interactive charts that can be updated on a timer.
MCP Dashboards
Your AI can talk about data. Now it can show it.
The problem
We use AI for everything - analysis, reports, strategy. But when it comes to actually seeing the story in your data, you're stuck copying numbers into a spreadsheet and building charts yourself. The conversation has the insight. The visualization is somewhere else.
Related MCP server: trading212-mcp-server
The solution
MCP Dashboards renders interactive charts, dashboards, and KPI widgets directly inside your AI conversation. 32 chart tools covering 45+ chart subtypes (bar has stacked/drilldown, hero has 11 variants, flowchart has 6 node kinds + 5 edge styles, etc.), 21 themes, 4 visual discovery catalogs, live polling, PNG/PPT/A4 export - all from a single MCP server. No browser tabs, no copy-paste, no context switching.
The only official npm package ismcp-dashboards, published from this repository. Similarly named packages are not ours: mcp-dashboards-shared was malware (see OSSF advisory MAL-2026-4296, removed by npm security in May 2026). Install only mcp-dashboards.
Quick Start
Claude Desktop
Add to your claude_desktop_config.json:
Windows:
%APPDATA%\Claude\claude_desktop_config.jsonmacOS:
~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"dashboard": {
"command": "npx",
"args": ["-y", "mcp-dashboards", "--stdio"]
}
}
}Claude Code / VS Code
claude mcp add dashboard -- npx -y mcp-dashboards --stdioRemote (Streamable HTTP)
npx mcp-dashboards
# Server starts on http://127.0.0.1:3001/mcpBound to localhost by default. See Configuration if you need to expose it on your network or allow browser access from a non-localhost origin.
Supported clients
Works in any MCP Apps-compatible client: Claude Desktop, Claude Web, VS Code (GitHub Copilot), Goose, Postman, MCPJam. ChatGPT support is rolling out.
Just ask
No API to learn. Describe what you want in plain English:
"Compare Q1 vs Q2 revenue by region as a bar chart"
"Show my portfolio allocation as a donut chart with the boardroom theme"
"Build a dashboard with monthly sales KPIs and a trend line"
"Visualize website traffic by country on a world map"
"Track Bitcoin price live, updating every 30 seconds"
"Show the conversion funnel from signup to purchase"
"Rank the team by performance using a radar chart"
"Diagram my multi-agent pipeline as a flowchart and let me step through it"
The AI picks the right tool, formats your data, and renders the chart inline. Click any data point to ask follow-up questions.
Don't know where to start? Ask "show me the catalog" - opens a master dashboard with one live visual tile per customization dimension (a real bar chart for charts, a pie for themes, a progress ring for hero variants, a neon-glowing card for effects). Click any tile, hit Ask, and you'll drill into that sub-catalog.
Interactive charts, not images
Every chart is interactive HTML rendered directly in your conversation:
Explore in-chat - hover tooltips, click-to-select (feeds back to the AI), drill-down with breadcrumbs, scroll-zoom up to 12x on maps and heatmaps
Editable flowcharts - drag nodes, multi-select, rename via right-click, minimap + node list to navigate, step-through playback of the flow, then sync your layout back to the AI to save it
Live polling - real-time charts that auto-update from any API on a timer
Export anywhere - PPT (16:9 slides), A4 (paginated with smart page breaks), PNG, CSV
Tool | Type | Best For |
| Pie/Donut | Composition - "what makes up the whole?" |
| Bar | Comparison - vertical, horizontal, stacked, drill-down |
| Line/Area | Trends - smooth curves, gradient fills, time series |
| Scatter | Relationships - per-point labels, annotations, quadrants |
| Candlestick | Finance - OHLC data with volume bars |
| Radar | Multi-axis comparison - skills, scores, product attributes |
| Treemap | Hierarchy - nested rectangles sized by value |
| Sankey | Flow - money, users, or resources between stages |
| Word Cloud | Frequency - sized words from text analysis |
| Boxplot/Violin | Distribution - quartiles, outliers, density shapes |
| Live | Real-time - auto-polls any MCP tool on a timer |
| Data proxy | Fetch JSON from any HTTP endpoint - secure presets or public URLs |
| Bullet | KPI vs target - 2-8 zone bands with labels |
| Lollipop | Ranking - clean dots with optional target markers |
| Dumbbell | Gaps - before/after with scale labels and zone bands |
| Variance | Budget - actual vs budget, color-coded over/under |
| Funnel | Conversion - staged drop-off with percentages |
| Slope | Change - ranking shifts between two periods |
| Waffle | Proportion - 10x10 grid showing composition |
| Sparkline | Compact trends - mini cards with change indicators |
| Radial | Health check - multi-metric ring gauges with status |
| Waterfall | Cumulative - cascading bars showing impact |
| Heatmap | Intensity - 2D grid with color mapping |
| Geo/Map | Geography - color-coded countries by value (choropleth) |
| Bubble Map | Pin map - sized circles at lat/lng coordinates |
| Timeline | Progress - milestone tracker with status indicators |
| Flowchart | Workflows, pipelines, architectures, agent flows - rich card-based DAG with status states, drag, zoom, live polling |
| Hero | KPI widgets - 11 variants (progress ring, gem, orb, NPS, etc.) |
| Dashboard | Everything - KPI cards + multiple charts in responsive grid |
| Table | Data - sortable columns, striped rows, CSV export |
| Auto-detect | Any JSON data - picks the best chart automatically |
| URL fetch | Fetches JSON from a URL and auto-visualizes |
Discovery / Catalogs - visual entry points for browsing what's available:
Tool | Shows | When to use |
| Master catalog with 4 live preview tiles | Don't know where to start. Click any tile, hit Ask, drill in. |
| All 32 chart types with mini previews | Looking for the right chart for your data |
| All 21 themes with color/typography/effects | Picking a theme |
| All 11 hero metric variants | Picking a KPI widget style |
| All 5 effect presets, each applied to a real card | Picking an animation/glow style |
Typography is still configurable on every chart via typography=<name> (8 options listed under Themes) - it just doesn't have its own catalog because all 8 options were visually identical without per-card font loading, which wasn't worth the build for one preview tool.
Question | Best Chart | Also Works |
"What makes up the whole?" | Pie/Waffle | Treemap, Stacked bar |
"How do values compare?" | Bar | Lollipop, Bullet, Radar |
"What's the trend over time?" | Line | Sparkline, Slope |
"Are we hitting targets?" | Bullet | Variance, Radial |
"Where's the gap?" | Dumbbell | Variance |
"How does X relate to Y?" | Scatter | Heatmap |
"What's the conversion rate?" | Funnel | Waterfall, Sankey |
"What changed between periods?" | Slope | Dumbbell |
"What's the financial picture?" | Candlestick | Line |
"Show me the KPI" | Hero metric | Dashboard |
"What's the distribution?" | Boxplot | Violin (same tool) |
"Where does money/traffic flow?" | Sankey | Treemap |
"How do options score across axes?" | Radar | Heatmap |
"What are the top keywords?" | Word Cloud | Bar, Treemap |
"Where are users/sales/revenue?" | Geo map | Bubble map, Heatmap |
"Monitor this in real-time" | Live chart | - |
Themes
21 built-in themes. Pass theme to any tool.
Family | Themes |
Classic |
|
Black/AI |
|
Forest |
|
Sky |
|
Office |
|
Gray/ML |
|
Mix-and-match with palette, typography (8 options: system, mono, professional, editorial, bold, techno, cyberpunk, luxury), and effects (5 presets: none, subtle, shimmer, neon, energetic).
Live Polling
Real-time charts that auto-update from any API. The live chart polls data via poll_http, which supports two modes:
Secure presets (authenticated APIs)
Configure presets via env vars. Credentials stay server-side and never appear in the conversation.
{
"mcpServers": {
"dashboard": {
"command": "npx",
"args": ["-y", "mcp-dashboards", "--stdio"],
"env": {
"POLL_PRESET_T212_CASH_URL": "https://live.trading212.com/api/v0/equity/account/cash",
"POLL_PRESET_T212_CASH_HEADERS": "{\"Authorization\": \"Bearer YOUR_API_KEY\"}"
}
}
}
}Then ask: "Monitor my portfolio total and P/L live" - the AI uses render_live_chart with pollArgs: { preset: "t212_cash" }.
Naming: POLL_PRESET_<NAME>_URL and POLL_PRESET_<NAME>_HEADERS (JSON object).
Public URLs (no auth needed)
For public APIs, use the URL directly:
"Show me Bitcoin price updating every 30 seconds" - uses pollArgs: { url: "https://api.coingecko.com/api/v3/simple/price?ids=bitcoin&vs_currencies=usd" }.
How It Works
Built on MCP Apps. You ask the AI to visualize data, it calls the right tool, and the chart renders inline in your conversation. Self-contained - zero CDN, zero external requests.
MCP Apps supported (inline rendering): Claude Desktop, VS Code Insiders + MCP Apps extension, Goose, Postman.
No MCP Apps support? No problem. Every chart response also includes a clickable link to the same interactive chart in your browser:
http://localhost:PORT/chart/{id}- the clickable link in chat. Backed by a tiny same-machine HTTP server bound to 127.0.0.1, lazy-started on the first preview request.file:///.../chart-{id}.html- the persistent shareable artifact. Same HTML bytes, written to disk so you can email, archive, or open it after the server has shut down.
Why both: Claude Code (VS Code) strips file://, vscode://, and command:// URL schemes from chat markdown, so only http:// produces a working clickable link. The file:// path is provided for sharing and offline viewing. Tool annotations (readOnlyHint, idempotentHint, openWorldHint) help clients reason about tool behavior.
Configuration
All optional. Defaults are safe - set these only if you need to override.
Env var | Default | What it does |
|
| How long to keep chart preview HTML files on disk. |
| unset | Kill switch - no HTML files written, no preview server started, no preview links. Inline rendering still works in MCP Apps clients. |
|
| HTTP-transport bind host. Stays on localhost by default. Set to |
| localhost only | Comma-separated origins allowed to call the HTTP endpoint from a browser. Set this to add a non-localhost origin (e.g. |
| empty | Comma-separated hostnames that bypass the SSRF guard for |
|
| Per-host throttle for outbound HTTP calls. |
|
| How many initial requests can fire immediately before the rate kicks in. |
| - | Server-side preset URL for live polling. See Live Polling. |
| - | Auth headers (JSON object) for the matching preset URL. |
What's on disk
Chart HTML files are written to <system temp>/mcp-dashboards/ and auto-deleted after 7 days. The chart's built-in download button (PNG / PPT / A4) is the recommended way to save anything permanently.
Ask your AI to "list chart files" or "delete chart files older than 1 day" anytime - invokes list_chart_files / delete_chart_files.
Requirements: Node.js 18+.
git clone https://github.com/KyuRish/mcp-dashboards.git
cd mcp-dashboards
npm install
npm run build
npm run serve # http://localhost:3001
npm run dev # watch modeSupport
If MCP Dashboards is useful to you:
Built by Rishabh Dogra - connect on LinkedIn.
Privacy
All processing happens locally. No data is collected, transmitted, or stored externally.
External calls only happen when you explicitly ask - render_from_url and poll_http need a URL or preset you provide. Both refuse to fetch private, loopback, or link-local addresses (your 192.168.* network, AWS metadata at 169.254.169.254, etc.) so a prompt-injected AI can't quietly reach internal services. They also throttle per hostname so a runaway loop won't get your IP banned from a real API.
Credentials in env var presets never leave your machine. The browser preview server and the optional HTTP transport both bind to 127.0.0.1 by default and are not reachable from other devices. Chart HTML files live in your system temp folder and auto-delete after 7 days. See Configuration to change any of this.
License
FSL-1.1-MIT - Free to use for any purpose except building a competing commercial product. Each version converts to MIT two years after release. For commercial licensing, contact contact@kyuish.com.
Third-party software
The bundled UI artifact (dist/mcp-app.html) embeds open-source libraries from the Chart.js, html2canvas-pro, Luxon, TopoJSON, and Dagre projects, distributed under MIT or ISC licenses. Full attribution and license texts are reproduced in THIRD_PARTY_LICENSES.md.
Available Tools
40 toolsdelete_chart_filesADestructive
Delete chart preview HTML files saved on disk (in the system temp folder). REQUIRES the user's explicit instruction to run - it deletes files from disk and cannot be undone. Provide at least one of: chartIds (specific file IDs to delete), olderThanDays (bulk delete by age), or all=true (delete every chart file). Scope is hard-locked to mcp-dashboards temp folder; cannot touch anything else. Returns lists of successfully deleted files and per-file failures (e.g. files currently locked by an open browser).
| Name | Required | Description | Default |
|---|---|---|---|
| all | No | Explicit confirmation to delete ALL chart files in the temp folder. Defaults to false. | |
| chartIds | No | Specific chart IDs to delete (12-char hex strings). Each must match /^[a-f0-9]{12}$/ or it is rejected. | |
| olderThanDays | No | Delete chart files older than N days (positive integer). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructive. Description adds critical context: files deleted from disk, irreversible, scope locked to mcp-dashboards temp folder, returns per-file success/failure including locked files. Exceeds annotation burden.
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?
Four well-structured sentences with critical warning first. No wasted words; every sentence adds value.
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 deletion tool with three parameters and no output schema, description fully covers usage, scope, parameter semantics, and return behavior. No gaps.
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 covers 100% of parameters. Description adds meaning: explains that chartIds are specific IDs, olderThanDays is bulk by age, all is complete deletion; adds regex constraint for chartIds and requirement to provide at least one. Also describes return format.
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?
Clearly states the tool deletes chart preview HTML files from disk. Differentiates from siblings (all render/poll/save tools) by being the only deletion tool.
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?
Explicitly requires user explicit instruction, warns that deletion is irreversible, and explains how to choose between parameters (chartIds, olderThanDays, all). Does not explicitly contrast with alternatives, but no sibling does deletion, so it's clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_chart_filesARead-onlyIdempotent
List all chart preview HTML files saved on disk (in the system temp folder). These are auto-generated each time a chart is rendered and auto-cleaned after 7 days (configurable via MCP_DASHBOARDS_RETAIN_DAYS env var). Returns file metadata (id, name, size, age). Use this to audit disk usage, then call delete_chart_files to remove specific files or all of them.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds context beyond annotations: files are auto-generated and auto-cleaned after 7 days, configurable via env var. Returns specific metadata fields. No contradiction with annotations.
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?
Two focused sentences with no waste. First sentence defines tool, second provides usage and behavior context.
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?
Tool is simple with no parameters. Description covers source, lifecycle, return data, and appropriate usage. No gaps.
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?
No parameters exist; schema coverage is 100%. Description does not need to add parameter info. Baseline for 0 params is 4.
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?
Description clearly states it lists chart preview HTML files on disk, specifies resource and action. Distinguishes from sibling tools like delete_chart_files.
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?
Explicitly says to use for auditing disk usage, then references delete_chart_files as follow-up action. Provides clear guidance on when to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
poll_httpARead-only
Fetch JSON from an HTTP endpoint. Used by render_live_chart to poll external APIs. No presets configured. Use "preset" for authenticated APIs (credentials stored server-side in env vars, never exposed). Use "url" only for public APIs that need no authentication. NEVER pass API keys or tokens in the "headers" argument - configure a preset instead.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Direct URL to fetch (public APIs only - no auth needed) | |
| body | No | Request body for POST requests | |
| method | No | HTTP method. Default: GET | |
| preset | No | Named preset that maps to a pre-configured URL + auth headers. No presets configured. Configure via env vars: POLL_PRESET_<NAME>_URL and POLL_PRESET_<NAME>_HEADERS (JSON object). | |
| headers | No | Extra HTTP headers (public APIs only - NEVER put API keys here) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the description adds value by explaining how presets work via environment variables and emphasizing security. It does not cover all behavioral traits like response format or rate limiting, but the safety profile is well-covered by annotations.
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 concise with four sentences, front-loading the core purpose. Every sentence provides essential information: purpose, usage context, parameter distinction, and a critical security warning. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (5 optional parameters with security implications) and no output schema, the description covers the key points: when to use each parameter, authentication method, and a security warning. It omits details about response handling or error cases, but the openWorldHint annotation implies variability; overall sufficient for agent selection.
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 coverage is 100%, so baseline is 3. The description adds semantic value by reinforcing the security distinction between 'preset' and 'url', and by stating that no presets are configured. This extra context helps the agent understand parameter usage beyond the schema's own descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool fetches JSON from an HTTP endpoint, specifies its usage by render_live_chart for polling, and distinguishes it from siblings which are all rendering or file-saving tools. The verb 'Fetch' and resource 'JSON from HTTP endpoint' are specific and unambiguous.
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 gives explicit guidance on when to use 'preset' (authenticated APIs) versus 'url' (public APIs), with a strong warning against passing API keys in headers. It also notes that no presets are configured, setting clear expectations. This directly helps the agent choose the correct parameter and avoid misuse.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_bar_chartBar ChartARead-onlyIdempotent
Render an interactive bar chart. Supports vertical/horizontal, stacked, multi-series, and click-to-drill-down (options.drilldown). Supports themes for styled visuals.
| Name | Required | Description | Default |
|---|---|---|---|
| theme | No | Theme preset: boardroom, corporate, sales-floor, golden-treasury, clinical, startup, ops-control, tokyo-midnight, zen-garden, consultant, black-tron, black-elegance, black-matrix, forest-amber, forest-earth, sky-light, sky-ocean, sky-twilight, gray-hf, gray-copilot, office-red | |
| title | Yes | Chart title | |
| labels | Yes | Category labels for the x-axis | |
| effects | No | Override effects: none, subtle, shimmer, neon, energetic | |
| options | No | ||
| palette | No | Override palette only (mix-and-match) | |
| datasets | Yes | One or more data series | |
| typography | No | Override typography: professional, luxury, cyberpunk, editorial, mono, bold, system, techno |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so the tool is safe and idempotent. The description adds that the chart is interactive (drill-down), providing behavioral value beyond annotations.
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?
Two concise sentences front-loading purpose then features, with zero waste.
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?
No output schema, but description covers key capabilities. It is mostly complete for a rendering tool, though could mention return type or side effects.
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 coverage is high (88%), so baseline is 3. Description mentions drilldown and themes but does not add substantial meaning beyond what schema descriptions already provide.
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 it renders a bar chart and lists supported modes (vertical/horizontal, stacked, multi-series, click-to-drill-down), distinguishing it from sibling chart 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 explicit guidance on when to use this tool vs alternatives. The description implies usage for bar chart needs but lacks exclusionary context or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_boxplot_chartBoxplot / ViolinARead-onlyIdempotent
Render a boxplot or violin chart - 'What is the distribution?' Shows median, quartiles, whiskers, and outliers. Pass raw number arrays per category - stats computed automatically. Use style='violin' for density shape.
| Name | Required | Description | Default |
|---|---|---|---|
| theme | No | Theme preset: boardroom, corporate, sales-floor, golden-treasury, clinical, startup, ops-control, tokyo-midnight, zen-garden, consultant, black-tron, black-elegance, black-matrix, forest-amber, forest-earth, sky-light, sky-ocean, sky-twilight, gray-hf, gray-copilot, office-red | |
| title | Yes | Chart title | |
| labels | Yes | Category labels (e.g. ['Q1', 'Q2', 'Q3', 'Q4']) | |
| effects | No | Override effects: none, subtle, shimmer, neon, energetic | |
| options | No | ||
| palette | No | Override palette only (mix-and-match) | |
| datasets | Yes | One or more data series | |
| typography | No | Override typography: professional, luxury, cyberpunk, editorial, mono, bold, system, techno |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false. The description adds that stats are computed automatically, which is helpful. No contradiction, but no further behavioral details (e.g., return format) are provided.
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 three sentences, each adding value: purpose, input format, and an option example. No fluff, front-loaded, and easy to scan.
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?
The description covers core functionality and data input but omits output format (e.g., what is returned) and advanced options (theme, effects, etc.). Given moderate complexity and no output schema, more details would improve completeness.
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 coverage is 88% so the schema describes most parameters. The description adds meaning by explaining that data should be raw number arrays and that stats are computed automatically, which complements the schema.
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 'Render a boxplot or violin chart' with the specific purpose of showing distribution (median, quartiles, whiskers, outliers). It distinguishes from sibling chart tools by name and functionality.
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 tells when to use it ('What is the distribution?') and how to pass data (raw number arrays). However, it does not explicitly exclude alternatives or compare to other distribution-oriented charts, missing some guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_bubble_mapBubble MapARead-onlyIdempotent
Render a bubble/pin map - sized circles at geographic coordinates. Pass an array of { label, latitude, longitude, value } points. Great for showing city-level data, office locations, event density, etc.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | Array of geographic data points | |
| theme | No | Theme preset: boardroom, corporate, sales-floor, golden-treasury, clinical, startup, ops-control, tokyo-midnight, zen-garden, consultant, black-tron, black-elegance, black-matrix, forest-amber, forest-earth, sky-light, sky-ocean, sky-twilight, gray-hf, gray-copilot, office-red | |
| title | Yes | Chart title | |
| effects | No | Override effects: none, subtle, shimmer, neon, energetic | |
| palette | No | Override palette only (mix-and-match) | |
| sizeRange | No | Min and max bubble radius in pixels. Default: [3, 25] | |
| projection | No | Map projection. Default: naturalEarth1 | |
| typography | No | Override typography: professional, luxury, cyberpunk, editorial, mono, bold, system, techno | |
| bubbleColor | No | Bubble fill color. Default: theme accent | |
| showOutline | No | Show country outlines. Default: true |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint, idempotentHint, and destructiveHint, but the description does not add any behavioral details beyond 'render', such as what the tool returns (e.g., image URL, file path). It misses explaining the output or side effects.
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?
Two sentences that are front-loaded with the core purpose and data structure. Every word serves a purpose; no unnecessary 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?
With 10 parameters and no output schema, the description should clarify what the tool returns or how to use its result. It only describes input, leaving gaps for an agent to understand the full workflow.
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 coverage is 100%, so baseline is 3. The description adds context by specifying the expected point fields ({label, latitude, longitude, value}) and example uses (city-level data, etc.), adding meaning beyond the schema.
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 renders a bubble/pin map with sized circles at geographic coordinates. It specifies the expected data structure and provides example use cases, distinguishing it from other render tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives use cases like city-level data, office locations, and event density, but does not explicitly state when not to use this tool or provide alternatives like render_geo_chart. Usage guidance is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_bullet_chartBullet ChartARead-onlyIdempotent
Render bullet charts - 'Are we hitting target?' Horizontal bars with qualitative zones and a target marker. Supports 2-8 zones with optional labels and colors. Great for KPI vs target, seniority bands, maturity models.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | Array of bullet items | |
| theme | No | Theme preset: boardroom, corporate, sales-floor, golden-treasury, clinical, startup, ops-control, tokyo-midnight, zen-garden, consultant, black-tron, black-elegance, black-matrix, forest-amber, forest-earth, sky-light, sky-ocean, sky-twilight, gray-hf, gray-copilot, office-red | |
| title | Yes | Chart title | |
| effects | No | Override effects: none, subtle, shimmer, neon, energetic | |
| palette | No | Override palette only (mix-and-match) | |
| typography | No | Override typography: professional, luxury, cyberpunk, editorial, mono, bold, system, techno | |
| zoneColors | No | Custom colors per zone band. Defaults to red-to-green gradient | |
| zoneLabels | No | Labels for each zone band. Length should be zones+1 (e.g., 5 thresholds = 6 labels) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the description adds value by detailing the chart's visual elements (zones, target marker) and constraints (2-8 zones). No contradiction with annotations.
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?
Two efficient sentences covering purpose, features, and use cases. No filler, front-loaded with key 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 chart-rendering tool with no output schema and 8 parameters, the description covers core purpose and zone details. Could mention theme/palette support briefly, but schema handles specifics. Adequately complete.
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 coverage is 100% with descriptions for all parameters. The description does not add new parameter-specific details beyond the schema, so baseline score applies.
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?
Description clearly states the verb ('render'), resource ('bullet chart'), and its purpose ('Are we hitting target?'). It distinguishes from sibling charts like render_bar_chart by defining the specific chart type and use case (KPI vs target, maturity models).
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?
Provides examples of when to use (KPI vs target, seniority bands) but does not explicitly state when not to use or name alternatives. Still, the context helps the agent decide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_candlestick_chartCandlestick ChartARead-onlyIdempotent
Render an interactive candlestick or OHLC financial chart. Provide date/OHLC data for stock prices, crypto, forex, or any time-series financial data. Supports themes for styled visuals.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | Array of {date, o, h, l, c} OHLC data points | |
| theme | No | Theme preset: boardroom, corporate, sales-floor, golden-treasury, clinical, startup, ops-control, tokyo-midnight, zen-garden, consultant, black-tron, black-elegance, black-matrix, forest-amber, forest-earth, sky-light, sky-ocean, sky-twilight, gray-hf, gray-copilot, office-red | |
| title | Yes | Chart title | |
| effects | No | Override effects: none, subtle, shimmer, neon, energetic | |
| options | No | ||
| palette | No | Override palette only (mix-and-match) | |
| typography | No | Override typography: professional, luxury, cyberpunk, editorial, mono, bold, system, techno |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, which cover the major behavioral traits (non-destructive, idempotent, safe). The description adds no further behavioral context (e.g., authentication, rate limits, output format), but also does not contradict the annotations. The baseline score is appropriate given the annotations carry the transparency burden.
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 two sentences, front-loaded with the primary action and type, followed by supported data and themes. No unnecessary words; concise and efficient. Every sentence adds value.
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 rich input schema (86% coverage) and clear annotations, the description adequately covers the tool's purpose and data requirements. However, it omits the return type (e.g., rendered chart as HTML/image), which could aid the agent in understanding the output. Still, the description is largely complete for a chart rendering 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?
With 86% schema description coverage, the input schema already provides detailed descriptions for most parameters, including the data array, theme presets, and options. The description only adds general context ('Provide date/OHLC data... Supports themes') without enriching specific parameter meanings. It meets the baseline for high-coverage schemas.
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 specifies the tool renders an interactive candlestick or OHLC financial chart, distinguishing it from other chart types. It explicitly mentions the data format (date/OHLC) and use cases (stock prices, crypto, forex), which is specific and differentiating from sibling tools like render_line_chart or render_bar_chart.
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 the tool is for financial time-series data (stock, crypto, forex) but does not explicitly state when to use it versus alternatives or when not to use it. No exclusions or comparisons are provided, leaving the agent to infer appropriate usage from the name and description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_catalogMaster CatalogARead-onlyIdempotent
Master entry point to discover everything mcp-dashboards can do. Each tile is a live visual preview of one customization dimension - a real bar chart for charts, a pie for themes, a progress ring for hero variants, a neon-glowing card for effects. Click any tile then hit Ask, and the AI will route to the matching sub-catalog tool (render_chart_catalog, render_theme_catalog, render_hero_catalog, render_effects_catalog).
| Name | Required | Description | Default |
|---|---|---|---|
| theme | No | Theme preset: boardroom, corporate, sales-floor, golden-treasury, clinical, startup, ops-control, tokyo-midnight, zen-garden, consultant, black-tron, black-elegance, black-matrix, forest-amber, forest-earth, sky-light, sky-ocean, sky-twilight, gray-hf, gray-copilot, office-red |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnly, idempotent, non-destructive. Description adds context about previews and routing, which aligns with annotations. No contradictions.
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?
Two concise sentences that front-load the purpose and describe the interaction without unnecessary detail. Every sentence contributes.
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 simple catalog tool with one optional parameter and no output schema, the description covers purpose, interaction, and routing behavior. No gaps.
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 coverage is 100% with a comprehensive list of theme values. Description does not add additional meaning about how the theme parameter affects the catalog output, so it does not add value beyond the schema.
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?
Description clearly states it is the 'master entry point' to discover capabilities, with live visual previews and routing to sub-catalog tools. This distinguishes it from sibling render tools that focus on specific chart types.
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?
Description implies usage by suggesting to click a tile and hit Ask, and mentions sub-catalog tools as alternatives. However, it does not explicitly state when not to use it or contrast with direct render tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_chart_catalogChart CatalogARead-onlyIdempotent
Show a visual catalog of every available chart type as a dashboard of mini previews. Click any card to learn more about that chart tool. For a master entry point covering all customization dimensions, see render_catalog.
| Name | Required | Description | Default |
|---|---|---|---|
| theme | No | Theme preset: boardroom, corporate, sales-floor, golden-treasury, clinical, startup, ops-control, tokyo-midnight, zen-garden, consultant, black-tron, black-elegance, black-matrix, forest-amber, forest-earth, sky-light, sky-ocean, sky-twilight, gray-hf, gray-copilot, office-red |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate safety (readOnlyHint, idempotentHint, destructiveHint false). The description adds that clicking cards leads to more info, but no additional behavioral traits beyond what annotations provide. It does not contradict annotations.
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?
Two sentences with no wasted words. The first sentence states purpose, the second provides a useful alternative reference.
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 simple tool with one optional parameter, no output schema, and full annotation coverage, the description adequately covers purpose and provides a pointer to a related tool. No gaps for the use case.
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 coverage is 100% with one parameter 'theme' fully described in the schema. The description adds no additional meaning for this parameter, so baseline score of 3 applies.
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 action ('Show a visual catalog') and resource ('every available chart type as a dashboard of mini previews'). It also distinguishes itself from the sibling tool render_catalog by noting that this tool is for previews while render_catalog covers customization.
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 explicit guidance to use render_catalog for customization, implying this tool is for a visual overview. However, it does not give context on when to prefer this over other chart renderers like render_bar_chart.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_dashboardDashboardBRead-onlyIdempotent
Render a full dashboard with KPI cards, charts, and optional hero metric in a responsive grid. Available themes: boardroom (investors, board decks), corporate (enterprise daily use), sales-floor (quota tracking, leaderboards), golden-treasury (wealth, luxury real estate), clinical (healthcare, compliance - WCAG AAA), startup (SaaS metrics, YC demos), ops-control (DevOps, manufacturing), tokyo-midnight (crypto, trading, gaming), zen-garden (wellness, sustainability), consultant (agency deliverables, presentations), office-red (corporate report-style, Word/PowerPoint aesthetic). Mix-and-match: set palette + typography + effects independently.
| Name | Required | Description | Default |
|---|---|---|---|
| hero | No | Hero metric(s) - single object or array for multi-hero row | |
| kpis | No | KPI cards at the top. Include sparkline[] with 5-20 trend values whenever a metric has a % change - this adds an inline mini chart to the card | |
| theme | No | Theme preset: boardroom, corporate, sales-floor, golden-treasury, clinical, startup, ops-control, tokyo-midnight, zen-garden, consultant, black-tron, black-elegance, black-matrix, forest-amber, forest-earth, sky-light, sky-ocean, sky-twilight, gray-hf, gray-copilot, office-red | |
| title | Yes | Dashboard title | |
| charts | Yes | Array of charts to display in the grid | |
| footer | No | Footer bar with text and/or timestamp | |
| layout | No | Layout variant: default (hero above KPIs), hero-center (hero prominent), kpi-top (KPIs first) | |
| columns | No | Number of grid columns (1-4). Default: auto-fill based on available width | |
| effects | No | Override effects: none, subtle, shimmer, neon, energetic | |
| palette | No | Override palette only (mix-and-match) | |
| typography | No | Override typography: professional, luxury, cyberpunk, editorial, mono, bold, system, techno |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds theme listings and customization details but does not disclose any additional behavioral traits (e.g., data source expectations, limitations). Minimal value added beyond annotations.
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?
Description is a single paragraph that front-loads the main purpose and lists themes efficiently. It is concise, though the lengthy theme list could be shortened or placed in schema. Overall well-structured.
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 (11 parameters, nested objects), the description explains dashboard components and theming adequately but omits details about layout, grid behavior, and chart-specific options that are only in schema. With no output schema, more could be added to cover return format.
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 descriptions cover 100% of parameters. The description provides a list of themes and notes mix-and-match customization, but this largely echoes schema information. Baseline 3 is appropriate as the description adds marginal extra meaning.
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?
Description explicitly states 'Render a full dashboard with KPI cards, charts, and optional hero metric', clearly identifying the verb (render) and resource (dashboard). It contrasts with sibling single-chart renders by specifying it produces a composite dashboard.
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 explicit guidance on when to use this tool versus alternatives. The description implies it's for full dashboards, but does not provide criteria for choosing it over individual chart renders or other composite tools. Usage is implicit rather than prescriptive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_dumbbell_chartDumbbell ChartBRead-onlyIdempotent
Render a dumbbell chart - 'How big is the gap?' Before/after dots connected by a bar. Supports scale labels and background zones for absolute positioning context.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | Array of {label, before, after} items | |
| unit | No | Unit suffix | |
| theme | No | Theme preset: boardroom, corporate, sales-floor, golden-treasury, clinical, startup, ops-control, tokyo-midnight, zen-garden, consultant, black-tron, black-elegance, black-matrix, forest-amber, forest-earth, sky-light, sky-ocean, sky-twilight, gray-hf, gray-copilot, office-red | |
| title | Yes | Chart title | |
| zones | No | Background zone thresholds (same as bullet chart zones) | |
| effects | No | Override effects: none, subtle, shimmer, neon, energetic | |
| palette | No | Override palette only (mix-and-match) | |
| afterLabel | No | Label for 'after' column (default: After) | |
| typography | No | Override typography: professional, luxury, cyberpunk, editorial, mono, bold, system, techno | |
| zoneColors | No | Custom colors per zone band | |
| zoneLabels | No | Labels for each zone band | |
| beforeLabel | No | Label for 'before' column (default: Before) | |
| scaleLabels | No | Labels at scale positions, e.g. {'40': 'Engineer', '65': 'Sr. Engineer'} |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds that it supports scale labels and background zones, which is useful behavioral context. However, it doesn't detail rendering output (e.g., returns an image) or other behaviors.
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?
Two sentences, front-loaded with purpose, then features. No extraneous words. Efficient and to the point.
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?
Covers core chart type and two advanced features (scale labels, zones) but omits mention of cosmetic parameters (theme, effects) and does not describe output. For a tool with 13 parameters and no output schema, slightly more context would be beneficial.
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 coverage is 100% with descriptions for all parameters. The description adds no parameter-specific information beyond the chart's purpose. Baseline 3 is appropriate since the schema handles 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 it renders a dumbbell chart and explains the visual metaphor ('Before/after dots connected by a bar'). It distinguishes from siblings by specifying this chart type, but does not explicitly differentiate from similar charts like render_slope_chart.
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 an implicit usage hint ('How big is the gap?') suggesting before/after comparisons, but lacks explicit guidance on when to use this tool versus alternatives, and does not mention when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_effects_catalogEffects CatalogARead-onlyIdempotent
Show a visual catalog of all 5 effect presets - none, subtle, shimmer, neon, energetic. Each card previews the effect and lists the underlying treatments it bundles. Click any card to use that effect. For a master entry point covering all customization dimensions, see render_catalog.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds behavioral context by explaining that each card previews the effect and lists underlying treatments, which is beyond what annotations provide. No contradictions.
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 three concise sentences with no redundancy. It front-loads the core purpose, lists the presets, explains card behavior, and points to an alternative. Every sentence adds value.
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 no parameters and no output schema, the description fully covers what the tool does: shows a visual catalog of 5 effect presets with previews and treatment lists. No gaps remain.
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 no parameters, and schema coverage is 100%. Per guidelines, baseline is 4 for zero parameters. The description doesn't need to add parameter info.
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 displays a visual catalog of exactly 5 effect presets, naming each one (none, subtle, shimmer, neon, energetic). It distinguishes itself from siblings by noting that 'render_catalog' is the master entry point for all customization dimensions.
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 explicit guidance on when to use this tool (for effects presets) and when to use an alternative ('For a master entry point covering all customization dimensions, see render_catalog').
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_flowchartFlowchartARead-onlyIdempotent
Render an interactive flowchart or diagram. USE THIS whenever the user wants to visualize a flow or structure: a workflow, data pipeline / ETL, system or software architecture, multi-agent or LLM agent design, decision tree, process map, org chart, or state machine. Nodes are rich cards (6 kinds: agent / tool / decision / data / input / output) with a type chip, name, and up to 3 property rows (e.g. model, tokens, latency); pass icon for a custom glyph. Edges support 5 typed kinds (request / response / async / stream / error) with distinct styles. Dagre auto-layout (DAG); draggable, zoomable, pannable, with a node list, minimap, and step-through playback. Status states (queued / running / done / failed / skipped) animate in place: set pollTool + statusPath for live updates, or pass a steps sequence of {nodeId: status} snapshots for manual playback. Do NOT hand-author x/y coordinates to position nodes - omit them and dagre auto-lays out the graph cleanly. Only pass x/y that were round-tripped back to you from a previous render (a user's saved drag layout), and only as a complete set covering every node; a partial set is ignored to prevent overlaps. This is a full-canvas tool, not a dashboard tile - for multi-chart layouts use render_dashboard.
| Name | Required | Description | Default |
|---|---|---|---|
| edges | Yes | Edges between nodes (form a DAG) | |
| nodes | Yes | Nodes in the flow | |
| steps | No | Optional playback sequence: an ordered array of {nodeId: status} snapshots. The user can step/play through them with the playback control. If omitted, a progressive reveal is derived from the graph topology. | |
| theme | No | Theme preset: boardroom, corporate, sales-floor, golden-treasury, clinical, startup, ops-control, tokyo-midnight, zen-garden, consultant, black-tron, black-elegance, black-matrix, forest-amber, forest-earth, sky-light, sky-ocean, sky-twilight, gray-hf, gray-copilot, office-red | |
| title | Yes | Chart title | |
| effects | No | Override effects: none, subtle, shimmer, neon, energetic | |
| palette | No | Override palette only (mix-and-match) | |
| interval | No | Poll interval in seconds. Default: 2 | |
| pollArgs | No | Arguments to pass to pollTool | |
| pollTool | No | Optional: name of an MCP tool to poll for live status updates (use 'poll_http' with a preset for external APIs) | |
| subtitle | No | Optional subtitle | |
| direction | No | Layout direction. TB (top-bottom, default) or LR (left-right) | |
| statusPath | No | Dot-path to a {nodeId: status} map in the poll result (e.g. 'states' or 'agents.statuses'). If omitted, the result itself is treated as the map. | |
| typography | No | Override typography: professional, luxury, cyberpunk, editorial, mono, bold, system, techno | |
| interactive | No | Allow drag-to-reposition nodes. Default: true |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds behavioral details such as interactivity (draggable, zoomable, pannable), auto-layout via Dagre, status states with live polling or manual playback, and constraints on x/y usage. No contradiction with annotations.
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 comprehensive but somewhat lengthy; however, every sentence serves a purpose, and key information is front-loaded. It strikes a good balance between completeness and clarity.
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?
Despite lacking an output schema, the description thoroughly covers the tool's functionality, including interactive features, status updates, polling, and layout constraints. It equips the agent with all necessary context to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so every parameter already has a description. The description adds value by explaining usage constraints (e.g., x/y only from previous renders, statusPath dot-path, pollTool usage) and providing context beyond the schema.
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 renders interactive flowcharts/diagrams and lists specific use cases (workflow, data pipeline, system architecture, etc.). It distinguishes itself from sibling tools like render_dashboard by noting it's a full-canvas tool.
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 explicitly says 'USE THIS whenever the user wants to visualize a flow or structure' and provides numerous examples. It also warns when not to use it (for multi-chart layouts, use render_dashboard) and advises against hand-authoring coordinates unless round-tripped.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_from_jsonAuto ChartARead-onlyIdempotent
Automatically detect the best chart type for arbitrary JSON data. Pass any JSON - arrays, objects, nested structures - and get the most appropriate visualization.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | Any JSON data - arrays, objects, key-value pairs, nested structures | |
| title | Yes | Chart title | |
| options | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, covering safety and idempotency. The description adds the core auto-detection behavior, which is valuable beyond annotations. It does not contradict annotations.
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?
Two sentences, front-loaded, every word earns its place. No unnecessary 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 low-complexity tool with strong annotations and moderate schema, the description provides enough context (auto-detection, input flexibility). The lack of output schema is partially mitigated by the description's mention of 'visualization'.
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 coverage is 67% with descriptions for title and options.preferredType. The tool description adds context for the 'data' parameter ('arrays, objects, nested structures'), which is not fully detailed in the schema (type missing). This provides moderate added value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action: automatically detects the best chart type for arbitrary JSON data. It distinguishes itself from sibling tools that produce specific chart types (e.g., render_bar_chart) by emphasizing auto-detection.
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 when you have arbitrary JSON and want automatic chart selection, but it does not explicitly declare when to use this tool versus the many specific chart renderers (e.g., render_bar_chart). No guidance on when not to use or prerequisites is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_from_urlChart from URLARead-only
Fetch JSON data from a URL and automatically visualize it. The server fetches the data, detects the best chart type, and renders it interactively.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL that returns JSON data | |
| title | Yes | Chart title | |
| options | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only and non-destructive behavior. The description adds that it fetches data from a URL, auto-detects chart type, and renders interactively, which goes beyond annotations. No mention of error handling or edge cases, but overall transparent.
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?
Two sentences, front-loading the core purpose, with no unnecessary words. Every sentence adds value.
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 (URL fetch, auto-detection, interactive rendering) and no output schema, the description covers key behaviors but lacks details on error handling, authentication, or return format. Still sufficient to differentiate from siblings.
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 coverage is 67% with descriptions for title and url. The description does not add new parameter meanings beyond what the schema provides; the auto-detection mention relates to options.preferredType but adds no syntax. Baseline 3 is appropriate.
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 fetches JSON from a URL, auto-detects the chart type, and renders it interactively. This distinguishes it from siblings like render_from_json (inline JSON) and chart-specific tools (which require explicit type selection).
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 use when you have a URL with JSON data and want automatic chart rendering. It does not provide explicit when-not or alternative tool references, but the context is clear given the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_funnel_chartFunnel ChartARead-onlyIdempotent
Render a funnel chart - 'Where do we lose people?' Width-proportional bars showing conversion stages with optional conversion percentages between stages.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | Array of funnel stages (top to bottom) | |
| theme | No | Theme preset: boardroom, corporate, sales-floor, golden-treasury, clinical, startup, ops-control, tokyo-midnight, zen-garden, consultant, black-tron, black-elegance, black-matrix, forest-amber, forest-earth, sky-light, sky-ocean, sky-twilight, gray-hf, gray-copilot, office-red | |
| title | Yes | Chart title | |
| effects | No | Override effects: none, subtle, shimmer, neon, energetic | |
| palette | No | Override palette only (mix-and-match) | |
| typography | No | Override typography: professional, luxury, cyberpunk, editorial, mono, bold, system, techno | |
| showConversion | No | Show conversion % between stages (default: true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly and idempotent behavior. The description adds visual details (width-proportional bars, conversion percentages) that go beyond annotations without contradiction.
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 concise single sentence that provides core purpose and visual details. It is front-loaded and efficient, though could benefit from additional context without becoming verbose.
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 7 parameters, 100% schema coverage, and no output schema, the description covers the basic purpose and visual behavior. However, it lacks information on return value, ordering of stages, default options, or error handling, leaving some gaps for a complex chart 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 coverage is 100%, so parameter semantics are already well-defined. The description adds value by mentioning the showConversion parameter's effect but does not significantly enhance understanding beyond the schema.
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 renders a funnel chart for conversion stages, with width-proportional bars and optional conversion percentages. It distinguishes from siblings like render_bar_chart or render_pie_chart by specifying the funnel chart purpose.
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 for conversion analysis ('Where do we lose people?') but does not explicitly state when to use this versus other chart tools, nor provide when-not or alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_geo_chartGeo MapARead-onlyIdempotent
Render a choropleth world map - 'Where is the value concentrated?' Color-coded countries by numeric value. Pass data as { countryCode: value } using ISO 3166-1 alpha-2 codes (US, DE, IN, GB, etc.).
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | Country values as { alpha2Code: number }. e.g. { 'US': 100, 'DE': 50, 'IN': 75 } | |
| theme | No | Theme preset: boardroom, corporate, sales-floor, golden-treasury, clinical, startup, ops-control, tokyo-midnight, zen-garden, consultant, black-tron, black-elegance, black-matrix, forest-amber, forest-earth, sky-light, sky-ocean, sky-twilight, gray-hf, gray-copilot, office-red | |
| title | Yes | Chart title | |
| effects | No | Override effects: none, subtle, shimmer, neon, energetic | |
| palette | No | Override palette only (mix-and-match) | |
| colorScale | No | Color scale: blue (default), green, red, heat, purple, orange | |
| projection | No | Map projection. Default: naturalEarth1 | |
| showLegend | No | Show color scale legend. Default: true | |
| typography | No | Override typography: professional, luxury, cyberpunk, editorial, mono, bold, system, techno | |
| missingColor | No | Hex color for countries without data. Default: theme border color |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint as true, and destructiveHint as false. The description adds the fact that it renders a map but does not elaborate on behavior like performance or edge cases. With annotations covering safety, the description adds minimal extra 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 two sentences, front-loading the purpose and data format. Every word earns its place, with no fluff or repetition.
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?
With 10 parameters (2 required) and no output schema, the description captures the core functionality concisely. It could mention that the output is an image or chart, but the purpose is clear enough for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds value by clarifying that country codes must be ISO 3166-1 alpha-2 and providing an example data format, which goes beyond the schema's property descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool renders a choropleth world map, using the verb 'Render' and specifying the resource as a geographic map color-coded by numeric values. It distinguishes from sibling tools like render_bar_chart by focusing on geographic concentration.
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 use for geographic data visualization with the question 'Where is the value concentrated?' and specifies the data format with ISO codes. However, it does not explicitly state when not to use or provide alternatives among the many sibling render tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_heatmap_chartHeatmapBRead-onlyIdempotent
Render a heatmap - 'When are patterns strongest?' Color-coded grid of values across rows and columns. Supports color scales: default (blue-purple-orange), red-green, blue, heat.
| Name | Required | Description | Default |
|---|---|---|---|
| rows | Yes | Row labels | |
| theme | No | Theme preset: boardroom, corporate, sales-floor, golden-treasury, clinical, startup, ops-control, tokyo-midnight, zen-garden, consultant, black-tron, black-elegance, black-matrix, forest-amber, forest-earth, sky-light, sky-ocean, sky-twilight, gray-hf, gray-copilot, office-red | |
| title | Yes | Chart title | |
| values | Yes | 2D array of values [row][column] | |
| columns | Yes | Column labels | |
| effects | No | Override effects: none, subtle, shimmer, neon, energetic | |
| palette | No | Override palette only (mix-and-match) | |
| colorScale | No | Color scale: default, red-green, blue, heat | |
| typography | No | Override typography: professional, luxury, cyberpunk, editorial, mono, bold, system, techno |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true and idempotentHint=true, so the description need not repeat those. It adds that color scales are supported, but does not disclose other behavioral traits like input validation, performance, or error handling.
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, concise sentence with a question and key details. It is front-loaded and efficient, though it could benefit from slightly more structure to separate use case from features.
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 has 9 parameters (4 required) and no output schema, the description fails to explain how values map to colors, usage of theme and effects, or expected output format. It is minimal and leaves many behavioral aspects undocumented.
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 coverage is 100%, so the schema already describes each parameter. The description mentions supported color scales, which overlaps with the schema's colorScale description. It adds marginal value beyond what the schema provides.
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 it renders a heatmap, a color-coded grid, and adds a use-case question 'When are patterns strongest?'. It distinguishes from sibling tools by specifying the heatmap type, but does not explicitly differentiate from other heatmap-like tools if any exist.
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. The question 'When are patterns strongest?' implies a use case but does not explicitly state scenarios or when not to use it. No alternatives mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_hero_catalogHero Variant CatalogARead-onlyIdempotent
Show all 11 hero metric variants in a single dashboard - big_number, progress_ring, status, comparison, rank, countdown, threshold, breakdown, nps, orb, gem. Each card is a working preview with sample data. Click any card to learn about that variant.
| Name | Required | Description | Default |
|---|---|---|---|
| theme | No | Theme preset: boardroom, corporate, sales-floor, golden-treasury, clinical, startup, ops-control, tokyo-midnight, zen-garden, consultant, black-tron, black-elegance, black-matrix, forest-amber, forest-earth, sky-light, sky-ocean, sky-twilight, gray-hf, gray-copilot, office-red |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds context beyond annotations by stating 'working preview with sample data' and 'click any card to learn'. Annotations already indicate read-only and idempotent, and the description aligns without contradiction.
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?
Two sentences, front-loaded with the main action, zero wasted words. Efficiently conveys purpose and interactive nature.
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 display tool with one optional parameter and no output schema, the description fully covers what the tool does, including the interactive preview behavior. Annotations support completeness.
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 coverage is 100% for the single parameter 'theme', and its description in the schema is already comprehensive. The tool description does not add further parameter semantics, so baseline score applies.
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 'Show', the resource 'hero metric variants', and the scope 'all 11 variants in a single dashboard'. It lists the variants explicitly, distinguishing from sibling tools like render_hero_metric.
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 for when to use this tool (to display all hero metric variants). It does not explicitly exclude scenarios or mention alternatives, but the purpose is well-defined.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_hero_metricHero MetricARead-onlyIdempotent
Render a purpose-driven hero metric widget. Pick the variant that answers your question:
big_number: 'How much? Which direction?' Default hero metric - clean, professional, works in any context. Large value + trend arrow + optional sparkline. Params: value, unit, change, changePeriod, sparkline[]
progress_ring: 'How close to goal?' Animated ring or half-gauge. Params: value, unit, label, progress (0-100), style ('ring'|'gauge'), size, color
status: 'Good or bad?' Pulsing dot + subsystem badges. Params: label, statusLevel ('good'|'warn'|'bad'), subsystems[{name,status}], count, peak
comparison: 'How do we compare?' Before/after + improvement. Params: before, after, improvement, beforeLabel, afterLabel
rank: 'Where do I stand?' Badge + percentile. Params: rank, total, percentile, rankChange
countdown: 'How long left?' Time segment boxes. Params: segments[{value,label}] OR deadline (ISO date)
threshold: 'Above or below limit?' Gradient bar + marker. Params: value, max, threshold, unit, zones[{label,from,to,color}]
breakdown: 'What is the split?' Stacked bar + legend. Params: items[{label,value,color?}]
nps: 'How satisfied?' Score + rating scale. Params: value, max (default 100), rating ('good'|'neutral'|'bad')
orb: 'What is the headline?' Dramatic glowing sphere. Use golden orb for resumes/portfolios. For tech meetings use only black, white, or crystal-colored orbs as subtle flair. Best with dark themes (tokyo-midnight, ops-control, startup). Avoid for formal contexts (boardroom, clinical, consultant). Params: value, unit, label, color
gem: 'Premium gem metric' Faceted/spherical gem - for wealth, fintech, trading, crypto, luxury contexts ONLY. Best with golden-treasury, tokyo-midnight themes. Do NOT use for corporate, clinical, consultant, or boardroom dashboards - use big_number instead. Params: value, unit, label, gemType. gemTypes: crystal='Future' (forecasts, projections) | black_pearl='Rare find' (alt investments, crypto) | golden_pearl='Treasure' (gold, commodities) | white_pearl='Clean total' (savings) diamond='Crown number' (net worth, total revenue) | ruby='What's critical' (urgent, burn rate) | sapphire='Foundation' (stability, uptime) | emerald='Growth' (YoY, appreciation)
| Name | Required | Description | Default |
|---|---|---|---|
| max | No | Maximum value for threshold/nps | |
| peak | No | Peak count | |
| rank | No | Current rank | |
| size | No | Size: sm/md/lg/xl | |
| unit | No | Unit label (e.g. 'grams', '%', 'USD') | |
| after | No | After value | |
| color | No | Override accent color (hex) | |
| count | No | Live count | |
| items | No | Breakdown items | |
| label | No | Sub-label | |
| style | No | progress_ring style | |
| theme | No | Theme preset: boardroom, corporate, sales-floor, golden-treasury, clinical, startup, ops-control, tokyo-midnight, zen-garden, consultant, black-tron, black-elegance, black-matrix, forest-amber, forest-earth, sky-light, sky-ocean, sky-twilight, gray-hf, gray-copilot, office-red | |
| title | Yes | Chart title | |
| total | No | Total in ranking | |
| value | No | Main metric value | |
| zones | No | Color zones | |
| before | No | Before value | |
| change | No | Percentage change | |
| rating | No | NPS rating override | |
| effects | No | Override effects: none, subtle, shimmer, neon, energetic | |
| gemType | No | Gem type for variant=gem: diamond, ruby, sapphire, emerald, golden_pearl, white_pearl, black_pearl, crystal | |
| palette | No | Override palette only (mix-and-match) | |
| variant | No | Widget variant (default: big_number) | |
| deadline | No | ISO deadline date | |
| progress | No | Ring fill 0-100 | |
| segments | No | Time segments | |
| sparkline | No | Mini bar sparkline data | |
| threshold | No | Threshold limit line | |
| afterLabel | No | After column label | |
| percentile | No | Percentile | |
| rankChange | No | Positions moved | |
| subsystems | No | Subsystem badges | |
| typography | No | Override typography: professional, luxury, cyberpunk, editorial, mono, bold, system, techno | |
| beforeLabel | No | Before column label | |
| improvement | No | Improvement label | |
| statusLevel | No | Status level | |
| changePeriod | No | Period label for change (e.g. 'vs last month') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds rich behavioral context beyond annotations: 'animated ring', 'pulsing dot', 'glowing sphere', gem type meanings, and theme/context usage rules. No contradiction with annotations.
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?
Well-structured with clear variant headings and bullet points. Every sentence is informative, no fluff, appropriate length for the complexity.
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?
Thoroughly covers all 37 parameters across 11 variants, including usage guidance, behavioral traits, theme contexts, and gem type meanings. No output schema but description compensates fully.
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 coverage is 100%, but description groups parameters per variant and explains their purpose (e.g., 'Large value + trend arrow + optional sparkline'), adding semantic value beyond the schema.
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 it renders 'purpose-driven hero metric widgets', then lists 11 specific variants each with a distinct question they answer, distinguishing from sibling chart 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?
Provides explicit when-to-use guidance for each variant via questions (e.g., 'How much?', 'How close to goal?') and context restrictions (e.g., orb dark theme, gem luxury only). Lacks explicit exclusion of the tool itself versus siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_line_chartLine ChartARead-onlyIdempotent
Render an interactive line or area chart. Supports smooth curves, gradient fill, and multiple series. Supports themes for styled visuals.
| Name | Required | Description | Default |
|---|---|---|---|
| theme | No | Theme preset: boardroom, corporate, sales-floor, golden-treasury, clinical, startup, ops-control, tokyo-midnight, zen-garden, consultant, black-tron, black-elegance, black-matrix, forest-amber, forest-earth, sky-light, sky-ocean, sky-twilight, gray-hf, gray-copilot, office-red | |
| title | Yes | Chart title | |
| labels | Yes | X-axis labels (e.g. dates, categories) | |
| effects | No | Override effects: none, subtle, shimmer, neon, energetic | |
| options | No | ||
| palette | No | Override palette only (mix-and-match) | |
| datasets | Yes | One or more data series | |
| typography | No | Override typography: professional, luxury, cyberpunk, editorial, mono, bold, system, techno |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is clear. The description adds 'interactive' but no additional behavioral details (e.g., success/failure patterns, performance). No contradiction with annotations.
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?
Two sentences with no wasted words. Front-loaded with the core action ('Render an interactive line or area chart') followed by key features. Highly concise.
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 8 parameters, nested objects, and no output schema, the description is adequate but minimal. It covers core functionality but lacks usage guidance and behavioral context that would make it fully complete.
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 88%, which is high. The description does not add new meaning beyond listing capabilities already evident from the schema. Baseline score of 3 applies 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 specifies the tool renders an interactive line or area chart, with support for smooth curves, gradient fill, multiple series, and themes. This distinguishes it from sibling chart tools like render_bar_chart or render_scatter_chart.
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 (e.g., render_bar_chart, render_scatter_chart). The description does not state use cases or exclusions, leaving the agent without decision criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_live_chartLive ChartARead-onlyIdempotent
Render a real-time auto-updating line chart that polls a tool at a regular interval. Use when the user wants to MONITOR a live data source. Set pollTool to 'poll_http' with pollArgs containing a preset or URL to poll external APIs (including other MCP servers' data). The chart auto-refreshes - no user action needed.
| Name | Required | Description | Default |
|---|---|---|---|
| yMax | No | Y-axis maximum (e.g. 100 for percentages) | |
| yMin | No | Y-axis minimum | |
| theme | No | Theme preset: boardroom, corporate, sales-floor, golden-treasury, clinical, startup, ops-control, tokyo-midnight, zen-garden, consultant, black-tron, black-elegance, black-matrix, forest-amber, forest-earth, sky-light, sky-ocean, sky-twilight, gray-hf, gray-copilot, office-red | |
| title | Yes | Chart title | |
| colors | No | Custom color palette as hex codes (e.g. ['#FF6384', '#36A2EB']). Uses default palette if omitted. | |
| values | Yes | One or more numeric values to track per poll | |
| yLabel | No | Y-axis label | |
| effects | No | Override effects: none, subtle, shimmer, neon, energetic | |
| palette | No | Override palette only (mix-and-match) | |
| interval | No | Poll interval in seconds. Default: 2 | |
| pollArgs | No | Arguments to pass to the polled tool | |
| pollTool | Yes | Name of the MCP tool to call on each poll (e.g. 'get_system_metrics') | |
| maxPoints | No | Rolling window size. Default: 30 | |
| typography | No | Override typography: professional, luxury, cyberpunk, editorial, mono, bold, system, techno |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true. The description adds value by explaining that the chart auto-refreshes and polls a tool at a regular interval, which is behavioral context beyond the annotations.
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 three sentences long, front-loads the main action, and uses clear, direct language with no wasted words 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?
Given the tool's high complexity (14 parameters, nested objects) and many sibling tools, the description adequately explains the core functionality and usage. It could elaborate slightly on why to choose this over static line charts, but it is sufficient for correct invocation.
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 descriptions cover 100% of parameters, so baseline is 3. The description adds meaning by giving an example of using 'pollTool' with 'poll_http' and explaining how to poll external APIs, which provides context beyond the schema's generic 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 it renders a real-time auto-updating line chart that polls a tool. It uses a specific verb ('Render') and resource ('live chart'), and distinguishes itself from sibling tools like 'render_line_chart' by emphasizing the real-time, auto-updating polling behavior.
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 explicitly says 'Use when the user wants to MONITOR a live data source' and provides guidance on setting up polling via 'pollTool' and 'pollArgs'. It does not explicitly mention when not to use it, but the context is clear and helpful.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_lollipop_chartLollipop ChartARead-onlyIdempotent
Render a lollipop chart - 'How do segments compare?' Horizontal lines with dots at the value. Supports optional target markers for benchmarking. Clean alternative to bar charts for ranked data.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | Array of {label, value} items | |
| theme | No | Theme preset: boardroom, corporate, sales-floor, golden-treasury, clinical, startup, ops-control, tokyo-midnight, zen-garden, consultant, black-tron, black-elegance, black-matrix, forest-amber, forest-earth, sky-light, sky-ocean, sky-twilight, gray-hf, gray-copilot, office-red | |
| title | Yes | Chart title | |
| effects | No | Override effects: none, subtle, shimmer, neon, energetic | |
| palette | No | Override palette only (mix-and-match) | |
| typography | No | Override typography: professional, luxury, cyberpunk, editorial, mono, bold, system, techno |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior. The description adds that the tool renders a chart (non-destructive) and supports optional target markers, but goes beyond what annotations provide. It does not elaborate on other behavioral aspects like resource usage or side effects.
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?
Two highly efficient sentences: first defines purpose and visual, second adds features and usage context. No filler, each sentence earns its place.
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 6 parameters, 100% schema coverage, and annotations, the description covers purpose, key features, and usage context. It lacks details on parameters like theme or effects, but those are self-explanatory from the schema. The description is sufficiently complete for a straightforward chart 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 coverage is 100%, achieving baseline 3. The description adds value by explaining that the tool 'supports optional target markers for benchmarking,' which directly informs the target parameter. However, it does not elaborate on the other parameters (theme, effects, etc.), but they are adequately described in the schema.
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?
Description clearly states the tool renders a lollipop chart for comparing segments, with horizontal lines and dots. Also mentions optional target markers and positions it as a cleaner alternative to bar charts, effectively distinguishing it from sibling chart tools like render_bar_chart.
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 specifies the tool is for 'How do segments compare?' and labels it a 'Clean alternative to bar charts for ranked data,' giving clear context for when to use it over bar charts. However, it doesn't explicitly state when not to use it or mention other alternatives like dumbbell charts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_pie_chartPie ChartARead-onlyIdempotent
Render an interactive pie or donut chart from key-value data. Provide an array of {label, value} pairs. Supports themes for styled visuals.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | Array of {label, value} pairs | |
| theme | No | Theme preset: boardroom, corporate, sales-floor, golden-treasury, clinical, startup, ops-control, tokyo-midnight, zen-garden, consultant, black-tron, black-elegance, black-matrix, forest-amber, forest-earth, sky-light, sky-ocean, sky-twilight, gray-hf, gray-copilot, office-red | |
| title | Yes | Chart title | |
| effects | No | Override effects: none, subtle, shimmer, neon, energetic | |
| options | No | ||
| palette | No | Override palette only (mix-and-match) | |
| typography | No | Override typography: professional, luxury, cyberpunk, editorial, mono, bold, system, techno |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, idempotentHint=true, and destructiveHint=false, conveying safety. The description adds that it renders interactive charts and supports themes, but does not contradict annotations. However, it does not add deep behavioral context beyond what annotations imply.
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?
Two sentences with no redundancy. First sentence states purpose and required input; second mentions themes. Front-loaded and concise.
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?
The description covers essential aspects (data format, theme) but omits details on customization options (effects, donut mode, colors, legend, palette, typography). Given 7 parameters and no output schema, more context could help an agent select or configure the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 86%, so the schema already explains most parameters. The description mentions the core data format and theme support but does not delve into other parameters like effects, options, palette, etc. With high schema coverage, the description adds marginal value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool renders an interactive pie or donut chart from key-value data, specifying the input format as an array of {label, value} pairs. It distinguishes from siblings (many other render_* charts) by explicitly naming the chart type.
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 the tool is for pie/donut charts but provides no explicit guidance on when to use it vs alternatives like render_bar_chart or render_line_chart. No when-to-use, when-not-to-use, or alternative suggestions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_radar_chartRadar ChartARead-onlyIdempotent
Render a radar (spider/web) chart - 'How do items compare across multiple dimensions?' Great for skill profiles, product comparisons, competitive analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| theme | No | Theme preset: boardroom, corporate, sales-floor, golden-treasury, clinical, startup, ops-control, tokyo-midnight, zen-garden, consultant, black-tron, black-elegance, black-matrix, forest-amber, forest-earth, sky-light, sky-ocean, sky-twilight, gray-hf, gray-copilot, office-red | |
| title | Yes | Chart title | |
| labels | Yes | Axis labels around the perimeter (e.g. Speed, Cost, UX) | |
| effects | No | Override effects: none, subtle, shimmer, neon, energetic | |
| options | No | ||
| palette | No | Override palette only (mix-and-match) | |
| datasets | Yes | One or more data series to compare | |
| typography | No | Override typography: professional, luxury, cyberpunk, editorial, mono, bold, system, techno |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds no behavioral context beyond this, e.g., about rendering process, file output, or limitations.
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 two sentences with no fluff, front-loading the core purpose and then adding clarifying context. Every sentence contributes value.
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?
The tool has 8 parameters, nested objects, and no output schema. The description covers purpose and use cases but lacks details on output format, side effects, or constraints beyond the annotations. Adequate but not comprehensive.
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 coverage is high (88%), and the description adds a summary phrase but does not explain parameters beyond what the schema already provides. Baseline 3 is appropriate.
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 it renders a radar (spider/web) chart, gives a question phrase to illustrate its use, and provides specific examples (skill profiles, product comparisons). This distinguishes it from many sibling chart-rendering tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage through the question and examples, but does not explicitly state when not to use this tool or mention alternative chart types available in the sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_radial_clusterRadial ClusterARead-onlyIdempotent
Render a radial cluster - 'Multi-metric health check?' Multiple small ring gauges showing percentage metrics with status colors. Optional alert message.
| Name | Required | Description | Default |
|---|---|---|---|
| alert | No | Alert message below rings | |
| theme | No | Theme preset: boardroom, corporate, sales-floor, golden-treasury, clinical, startup, ops-control, tokyo-midnight, zen-garden, consultant, black-tron, black-elegance, black-matrix, forest-amber, forest-earth, sky-light, sky-ocean, sky-twilight, gray-hf, gray-copilot, office-red | |
| title | Yes | Chart title | |
| effects | No | Override effects: none, subtle, shimmer, neon, energetic | |
| metrics | Yes | Array of ring metrics | |
| palette | No | Override palette only (mix-and-match) | |
| typography | No | Override typography: professional, luxury, cyberpunk, editorial, mono, bold, system, techno |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool as read-only, idempotent, and non-destructive. The description adds no additional behavioral context (e.g., return format, side effects, or dependencies). With annotations covering safety, the description contributes little extra 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 two sentences, highly concise and front-loaded with the tool's purpose. No redundant or irrelevant 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?
The description is minimal but adequate for a simple rendering tool with fully documented parameters and annotations. It lacks output schema information, but that is accounted for. It does not cover limitations or prerequisites, which would be useful for a chart 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 input schema already documents all parameters. The description mentions 'status colors', which relates to the metrics' status field, but does not add meaning beyond the schema. Baseline score of 3 is appropriate.
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 renders a radial cluster chart for multi-metric health checks, with multiple ring gauges showing percentage metrics and status colors. It distinctively describes the chart type, differentiating it from sibling chart renderers.
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 phrase 'Multi-metric health check?' implies usage for comparing multiple metrics, but no explicit guidance on when to use this tool versus alternatives like render_bar_chart or render_pie_chart. No exclusions or when-not-to guidance provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_sankey_chartSankey DiagramARead-onlyIdempotent
Render a sankey flow diagram - 'Where does it go?' Shows flows between nodes with width proportional to value. Great for budget flows, user journeys, energy transfers, conversion funnels with multiple paths.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | Array of flows between nodes | |
| theme | No | Theme preset: boardroom, corporate, sales-floor, golden-treasury, clinical, startup, ops-control, tokyo-midnight, zen-garden, consultant, black-tron, black-elegance, black-matrix, forest-amber, forest-earth, sky-light, sky-ocean, sky-twilight, gray-hf, gray-copilot, office-red | |
| title | Yes | Chart title | |
| effects | No | Override effects: none, subtle, shimmer, neon, energetic | |
| options | No | ||
| palette | No | Override palette only (mix-and-match) | |
| typography | No | Override typography: professional, luxury, cyberpunk, editorial, mono, bold, system, techno |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering safety and idempotency. The description adds no behavioral details beyond the chart's visual mapping, which is consistent but not supplementary.
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?
Two sentences, no redundancy. The first sentence clearly states the action and concept; the second lists use cases. Every word is purposeful and front-loaded.
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 rendering tool with 7 parameters (2 required) and no output schema, the description adequately explains the chart type and typical applications. It could mention that the output is a rendered image, but the purpose is clear enough.
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 86%, meaning most parameters are well-documented in the schema. The description adds minimal parameter-level value (only implicitly explains 'flow' width). Baseline score of 3 is appropriate.
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 explicitly states 'Render a sankey flow diagram' and explains the concept with 'Where does it go? Shows flows between nodes with width proportional to value.' It lists specific use cases (budget flows, user journeys, etc.), clearly differentiating from other chart 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 provides clear use case examples ('Great for budget flows, user journeys, energy transfers, conversion funnels'), giving the agent context on when to use this tool. However, it lacks explicit when-not-to-use guidance or direct comparisons to alternative chart types among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_scatter_chartScatter ChartBRead-onlyIdempotent
Render an interactive scatter plot with x/y coordinate data. Supports multiple series and optional connecting lines. Supports themes for styled visuals.
| Name | Required | Description | Default |
|---|---|---|---|
| theme | No | Theme preset: boardroom, corporate, sales-floor, golden-treasury, clinical, startup, ops-control, tokyo-midnight, zen-garden, consultant, black-tron, black-elegance, black-matrix, forest-amber, forest-earth, sky-light, sky-ocean, sky-twilight, gray-hf, gray-copilot, office-red | |
| title | Yes | Chart title | |
| effects | No | Override effects: none, subtle, shimmer, neon, energetic | |
| options | No | ||
| palette | No | Override palette only (mix-and-match) | |
| datasets | Yes | One or more data series with {x, y} points | |
| typography | No | Override typography: professional, luxury, cyberpunk, editorial, mono, bold, system, techno |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is clear. The description adds context about themes and optional lines, but doesn't disclose any unexpected behaviors or side effects. With strong annotations, the description adds moderate value.
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?
Two concise sentences with no superfluous information. Front-loaded with the core purpose and key features. Every sentence adds value.
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?
No output schema exists, so description should clarify what the tool returns (e.g., an image URL, HTML, etc.). It says 'render' but not the format. Otherwise, given complex nested input and good annotations, the description is adequate but could be more complete.
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 coverage is high (86%), so schema documents most parameters. The description mentions themes and optional connecting lines, which are already covered by schema properties. No additional semantic guidance is provided beyond what's in the input schema.
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 it renders a scatter plot with x/y coordinate data, supporting multiple series and optional connecting lines. It distinguishes from sibling chart tools by specifying the data type (x/y coordinates) and features like multiple series. Could be more explicit about use cases like correlation or distribution.
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 vs alternatives like render_line_chart or render_bubble_map. The description doesn't mention when not to use or provide contextual cues for selection among many sibling chart tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_slope_chartSlope ChartARead-onlyIdempotent
Render a slope chart - 'How did rankings change?' SVG lines connecting two time periods showing relative position changes.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | Array of {label, start, end} items | |
| theme | No | Theme preset: boardroom, corporate, sales-floor, golden-treasury, clinical, startup, ops-control, tokyo-midnight, zen-garden, consultant, black-tron, black-elegance, black-matrix, forest-amber, forest-earth, sky-light, sky-ocean, sky-twilight, gray-hf, gray-copilot, office-red | |
| title | Yes | Chart title | |
| effects | No | Override effects: none, subtle, shimmer, neon, energetic | |
| palette | No | Override palette only (mix-and-match) | |
| periodEnd | Yes | Label for end period (e.g. '2025') | |
| typography | No | Override typography: professional, luxury, cyberpunk, editorial, mono, bold, system, techno | |
| periodStart | Yes | Label for start period (e.g. '2024') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, indicating a safe, non-destructive operation. The description adds that it produces SVG lines, confirming the output format and visual nature, which is useful but not extensive.
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, front-loaded sentence that efficiently conveys the tool's purpose and output. The clarifying question adds value without unnecessary verbosity.
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?
With 8 parameters (4 required) and no output schema, the description sufficiently conveys the tool's conceptual purpose and output format (SVG lines). It does not detail optional parameters like theme or effects, but the schema covers those. The description is adequate for this complexity level.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, meaning every parameter already has a description in the schema. The tool description does not provide additional details about parameter usage, so it meets but does not exceed the baseline 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 renders a slope chart, specifically for showing 'How did rankings change?' using SVG lines between two time periods. This specific verb-resource combination and the clarifying question distinguish it from siblings like render_bar_chart or render_line_chart.
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 implicitly guides usage for comparing relative position changes across two time periods. While it does not explicitly state when not to use this tool or provide alternatives, the context is clear enough for an AI agent to select it for ranking-change scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_sparkline_chartSparkline CardsARead-onlyIdempotent
Standalone sparkline card grid. Prefer using KPI cards with sparkline[] inside render_dashboard instead for a cleaner integrated look.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | Array of sparkline card items | |
| theme | No | Theme preset: boardroom, corporate, sales-floor, golden-treasury, clinical, startup, ops-control, tokyo-midnight, zen-garden, consultant, black-tron, black-elegance, black-matrix, forest-amber, forest-earth, sky-light, sky-ocean, sky-twilight, gray-hf, gray-copilot, office-red | |
| title | Yes | Chart title | |
| effects | No | Override effects: none, subtle, shimmer, neon, energetic | |
| palette | No | Override palette only (mix-and-match) | |
| typography | No | Override typography: professional, luxury, cyberpunk, editorial, mono, bold, system, techno |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey readOnlyHint=true, idempotentHint=true, destructiveHint=false. Description adds that the tool creates a standalone grid, but does not elaborate further on behavior such as rendering details or limitations.
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?
Description is two sentences, no filler, front-loaded with purpose and guidance.
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 simplicity (6 parameters, 2 required, no output schema), the description adequately covers purpose and usage. It could mention output format but is sufficient for basic understanding.
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 coverage is 100% so baseline is 3. Description adds no additional parameter-specific information beyond what the schema already provides.
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?
Description clearly states it renders a 'standalone sparkline card grid', with a specific verb and resource. It also distinguishes from sibling tools by noting that KPI cards with sparkline inside render_dashboard are preferred for an integrated look.
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?
Description explicitly advises preferring render_dashboard with sparkline[] for cleaner integration, providing a clear when-not-to-use and an alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_tableData TableARead-onlyIdempotent
Render a sortable, interactive data table. Click column headers to sort. Supports themes for styled visuals.
| Name | Required | Description | Default |
|---|---|---|---|
| rows | Yes | Array of row objects. Keys must match column names. | |
| theme | No | Theme preset: boardroom, corporate, sales-floor, golden-treasury, clinical, startup, ops-control, tokyo-midnight, zen-garden, consultant, black-tron, black-elegance, black-matrix, forest-amber, forest-earth, sky-light, sky-ocean, sky-twilight, gray-hf, gray-copilot, office-red | |
| title | Yes | Table title | |
| columns | Yes | Column names in display order | |
| effects | No | Override effects: none, subtle, shimmer, neon, energetic | |
| options | No | ||
| palette | No | Override palette only (mix-and-match) | |
| typography | No | Override typography: professional, luxury, cyberpunk, editorial, mono, bold, system, techno |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly and idempotent hints. The description adds that the table is sortable and supports themes, providing behavioral context beyond annotations without contradiction.
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?
Two concise sentences that front-load the core functionality. No redundant information. Every sentence adds value.
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 rendering tool with no output schema, the description adequately covers the table's interactive features. Could mention that it is part of a suite of render tools, but not necessary.
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 high (88% or more), so parameters are well-documented. The description does not add additional meaning beyond what the schema provides, such as sorting behavior or theme 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 it renders a sortable, interactive data table, distinguishing it from sibling tools that render charts or maps. The verb 'render' and resource 'data table' are specific.
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 explicit when-to-use or when-not-to-use information is provided. The description implies it is for tables but does not guide the agent on alternatives like render_bar_chart for visual data.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_theme_catalogTheme CatalogARead-onlyIdempotent
Show a visual catalog of all 21 available themes. Each card previews the theme's colors, typography, and effects. Click any card to use that theme. For a master entry point covering all customization dimensions, see render_catalog.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true. The description adds behavioral context: it shows 21 theme cards with previews of colors, typography, and effects, and allows clicking to use a theme. This is sufficient beyond the annotations.
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?
Three sentences with no wasted words. The first sentence states the purpose, the second adds detail about content, and the third provides a useful alternative reference. Front-loaded and efficient.
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 0 parameters, no output schema, and annotations that cover safety, the description is complete. It describes the visual output, user interaction, and points to a broader tool. Minor omission: how the theme is applied after clicking is implied but not specified.
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?
There are 0 parameters and schema coverage is 100%. The description does not need to explain parameters. Baseline for 0-parameter tools is 4.
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 'show' and the resource 'visual catalog of all 21 available themes'. It distinguishes from sibling tools by mentioning an alternative master entry point (render_catalog), avoiding confusion with other catalog 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?
Provides explicit guidance to use render_catalog for a master entry, implying this tool is for theme-specific selection. However, it does not explicitly state when not to use it or provide prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_timeline_chartTimelineARead-onlyIdempotent
Render a timeline - 'Where are we in the process?' Progress dots on a track with status colors (done, active, pending, blocked). Great for project milestones. Use horizontal for ≤8 items (better for slides), vertical for longer lists.
| Name | Required | Description | Default |
|---|---|---|---|
| theme | No | Theme preset: boardroom, corporate, sales-floor, golden-treasury, clinical, startup, ops-control, tokyo-midnight, zen-garden, consultant, black-tron, black-elegance, black-matrix, forest-amber, forest-earth, sky-light, sky-ocean, sky-twilight, gray-hf, gray-copilot, office-red | |
| title | Yes | Chart title | |
| effects | No | Override effects: none, subtle, shimmer, neon, energetic | |
| palette | No | Override palette only (mix-and-match) | |
| subtitle | No | Subtitle text | |
| milestones | Yes | Array of milestone items | |
| typography | No | Override typography: professional, luxury, cyberpunk, editorial, mono, bold, system, techno | |
| orientation | No | Layout direction (default: vertical). Horizontal works best with ≤8 milestones. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive. Description adds visual behavior (progress dots, status colors) and orientation advice, complementing annotations without contradiction.
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?
Three sentences covering purpose, usage, and orientation advice. No wasted words, front-loaded with key 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?
Adequate for a render tool with good annotations and high schema coverage. Covers purpose, usage context, and orientation guidance. Could mention output format but not needed given typical render behavior.
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 coverage is 100%, so baseline is 3. Description adds value with orientation recommendation and explanation of status colors, going beyond schema definitions.
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?
Clearly states it renders a timeline chart with progress dots and status colors. Distinguishes from sibling chart renderers by naming the specific chart type and its use case.
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?
Provides guidance on when to use (project milestones) and orientation recommendation based on number of items (horizontal ≤8, vertical longer). Lacks explicit when-not-to-use or alternatives, but context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_treemap_chartTreemapARead-onlyIdempotent
Render a treemap - 'What takes up the most space?' Nested rectangles sized by value. Supports optional grouping for hierarchical data (e.g. region > country). Great for budget breakdowns, disk usage, portfolio allocation.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | Array of items to display | |
| theme | No | Theme preset: boardroom, corporate, sales-floor, golden-treasury, clinical, startup, ops-control, tokyo-midnight, zen-garden, consultant, black-tron, black-elegance, black-matrix, forest-amber, forest-earth, sky-light, sky-ocean, sky-twilight, gray-hf, gray-copilot, office-red | |
| title | Yes | Chart title | |
| effects | No | Override effects: none, subtle, shimmer, neon, energetic | |
| options | No | ||
| palette | No | Override palette only (mix-and-match) | |
| typography | No | Override typography: professional, luxury, cyberpunk, editorial, mono, bold, system, techno |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool as read-only, idempotent, and non-destructive. The description does not contradict this and adds context about the chart type but no additional behavioral traits beyond what annotations provide.
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 very concise, using two short sentences that front-load the core purpose and immediately convey value. Every phrase is purposeful and avoids 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?
Given the tool's complexity and absence of output schema, the description covers key aspects: chart type, hierarchical grouping, and example use cases. It could mention parameter requirements briefly, but high schema coverage mitigates the gap.
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 high (86%), so the schema handles most parameter meaning. The description reinforces the data parameter's role with 'value' and 'group' but adds minimal new semantic detail beyond the schema.
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 renders a treemap, defines its purpose as visualizing 'what takes up the most space' with nested rectangles sized by value, and distinguishes it from sibling chart tools by mentioning optional hierarchical grouping.
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 concrete use cases like budget breakdowns, disk usage, and portfolio allocation, offering context for when to use this tool. It does not explicitly exclude other chart types or mention alternatives, but the examples help guide selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_variance_chartVariance ChartBRead-onlyIdempotent
Render a variance chart - 'Over or under budget?' Bars showing actual vs budget with color-coded over/under indicators.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | Array of {label, budget, actual} items | |
| unit | No | Unit suffix (e.g. '$', 'k') | |
| theme | No | Theme preset: boardroom, corporate, sales-floor, golden-treasury, clinical, startup, ops-control, tokyo-midnight, zen-garden, consultant, black-tron, black-elegance, black-matrix, forest-amber, forest-earth, sky-light, sky-ocean, sky-twilight, gray-hf, gray-copilot, office-red | |
| title | Yes | Chart title | |
| effects | No | Override effects: none, subtle, shimmer, neon, energetic | |
| palette | No | Override palette only (mix-and-match) | |
| typography | No | Override typography: professional, luxury, cyberpunk, editorial, mono, bold, system, techno |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the agent knows it's a safe read operation. The description adds that it renders a chart with color-coded indicators, but does not disclose side effects (e.g., does it save to disk?). With annotations covering safety, a score of 3 is appropriate.
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 sentence with 21 words, front-loading the purpose. Every word earns its place with no wasted content.
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 no output schema, the description explains the chart's visual output. However, it does not specify where the chart is rendered (e.g., displayed, saved as a file), which could be important for an agent. Still, it is mostly complete for a simple chart 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 parameters. The description provides context about the chart's purpose (variance) but does not add meaningful semantics beyond what is in the schema.
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 renders a variance chart comparing actual vs budget with color-coding. However, it does not explicitly differentiate from sibling chart tools like render_bar_chart.
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 implies it's for variance/over-under budget scenarios but does not state when not to use it or provide comparisons.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_waffle_chartWaffle ChartARead-onlyIdempotent
Render a waffle chart - 'What is the composition?' 10x10 grid of colored squares showing proportional composition. Values should sum to 100.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | Array of {label, value} composition items | |
| theme | No | Theme preset: boardroom, corporate, sales-floor, golden-treasury, clinical, startup, ops-control, tokyo-midnight, zen-garden, consultant, black-tron, black-elegance, black-matrix, forest-amber, forest-earth, sky-light, sky-ocean, sky-twilight, gray-hf, gray-copilot, office-red | |
| title | Yes | Chart title | |
| effects | No | Override effects: none, subtle, shimmer, neon, energetic | |
| palette | No | Override palette only (mix-and-match) | |
| typography | No | Override typography: professional, luxury, cyberpunk, editorial, mono, bold, system, techno |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, ensuring the agent knows it's a safe read operation. The description adds the key behavioral constraint that values should sum to 100, which is not in annotations. No contradictions.
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?
Two sentences, each earning its place: the first defines the tool and its visual form, the second adds the key constraint. No unnecessary words, well front-loaded.
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 (6 params, no output schema) and the presence of annotations, the description covers the essential aspects: what the chart is, the data format, and a key constraint. It does not explain the return value, but for a render tool this is often implied.
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. The description repeats the sum-to-100 constraint and adds the 10x10 grid context, but this does not significantly augment the parameter semantics beyond the schema.
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 'Render' and the resource 'waffle chart', specifies the 10x10 grid and proportional composition, and distinguishes from sibling chart tools like pie or bar charts by focusing on composition with a grid layout.
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 phrase 'What is the composition?' implies it's used for showing parts of a whole, but there is no explicit guidance on when to use it versus alternatives like render_pie_chart or render_bar_chart, nor any when-not conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_waterfall_chartWaterfall ChartARead-onlyIdempotent
Render a waterfall chart - 'What drove the change?' Cascading bars showing how individual items add up or subtract to reach a total. Auto-infers add/sub/total if type omitted.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | Array of waterfall items | |
| unit | No | Unit suffix (e.g. '$', 'k') | |
| theme | No | Theme preset: boardroom, corporate, sales-floor, golden-treasury, clinical, startup, ops-control, tokyo-midnight, zen-garden, consultant, black-tron, black-elegance, black-matrix, forest-amber, forest-earth, sky-light, sky-ocean, sky-twilight, gray-hf, gray-copilot, office-red | |
| title | Yes | Chart title | |
| effects | No | Override effects: none, subtle, shimmer, neon, energetic | |
| palette | No | Override palette only (mix-and-match) | |
| typography | No | Override typography: professional, luxury, cyberpunk, editorial, mono, bold, system, techno |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate read-only, idempotent, and non-destructive behavior. The description adds value by explaining the auto-inference logic for bar types, which is beyond what annotations provide. No contradiction.
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?
Two concise sentences that front-load the purpose. No unnecessary words; every sentence adds value.
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, no output schema), the description adequately covers the core behavior and auto-inference. It could mention what the output looks like, but the schema handles most parameter details.
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%, and the description does not add new information beyond the schema. The auto-inference rule is already present in the schema. Baseline 3 is appropriate.
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 it renders a waterfall chart, explains the concept ('What drove the change?'), and mentions auto-inference of bar types. The name and title are specific and distinct from sibling chart tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions auto-inference of bar types but does not provide explicit guidance on when to use this tool vs. other chart renderers or when not to use it. Usage is implied but not compared to alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_wordcloud_chartWord CloudARead-onlyIdempotent
Render a word cloud - 'What are the dominant themes?' Words sized by frequency or importance. Great for survey responses, keyword analysis, topic frequency.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | Array of words with values | |
| theme | No | Theme preset: boardroom, corporate, sales-floor, golden-treasury, clinical, startup, ops-control, tokyo-midnight, zen-garden, consultant, black-tron, black-elegance, black-matrix, forest-amber, forest-earth, sky-light, sky-ocean, sky-twilight, gray-hf, gray-copilot, office-red | |
| title | Yes | Chart title | |
| effects | No | Override effects: none, subtle, shimmer, neon, energetic | |
| options | No | ||
| palette | No | Override palette only (mix-and-match) | |
| typography | No | Override typography: professional, luxury, cyberpunk, editorial, mono, bold, system, techno |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the description's additional context about word sizing adds some value but does not contradict annotations. Behavioral traits beyond safety are not detailed.
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 two sentences and fairly concise, but the first sentence is a quoted phrase that adds little structure. It could be more efficiently worded without losing 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?
Given high schema coverage and no output schema, the description covers the core functionality and use cases. However, it does not mention output format or behavior for edge cases, leaving some gaps for a rendering 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 86%, so baseline is 3. The description references the 'value' parameter (frequency/importance) but does not explain other parameters like theme, effects, or palette. It adds marginal meaning beyond the schema.
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 it renders a word cloud and explains the purpose: identifying dominant themes with words sized by frequency or importance. It distinguishes itself from 36 sibling render_* tools by specifying the chart type and use cases.
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?
It provides explicit use case examples (survey responses, keyword analysis, topic frequency) but does not mention when not to use it or alternatives among sibling tools. Some guidance is given, but exclusions are absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_fileSave FileAIdempotent
Save a chart export (PNG or CSV) to the user's Downloads folder. App-only - invoked by the chart View's Download buttons, not by the AI.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | File contents: base64-encoded binary or plain text | |
| encoding | Yes | How data is encoded | |
| filename | Yes | Filename with extension (.png or .csv only) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotent and non-destructive. Description adds that it writes to the Downloads folder and accepts only .png or .csv filenames, and that it's app-only. This provides good behavioral context beyond annotations, though it doesn't explicitly mention overwrite behavior.
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?
Two concise sentences with no filler. All information is necessary and front-loaded.
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?
Tool has three required parameters, no output schema. Description covers purpose, target location, file type restrictions, and who invokes it. This is fully sufficient for correct usage.
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 each parameter. The description adds context about file extension restrictions and app-only invocation but does not significantly enhance parameter understanding beyond schema.
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?
Clearly states it saves a chart export (PNG or CSV) to user's Downloads folder. Distinguishes itself from sibling render tools by specifying it is a file-saving operation, not a rendering operation.
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?
Explicitly states 'App-only - invoked by the chart View's Download buttons, not by the AI.' This tells the AI not to call this tool directly and that it is triggered by user interaction in the app, providing clear when-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a distinct chart type or purpose (e.g., bar, line, pie, map) with clear descriptions. Even similar tools like render_chart_catalog and render_from_json serve different roles: catalog browsing vs. automatic detection.
All chart rendering tools follow the 'render_<chart_type>' pattern. The few non-rendering tools (poll_http, save_file) are clearly auxiliary and do not break the overall consistency.
With 34 tools, the server is large but still scoped to visualization. Many chart types are included, but the count exceeds the typical well-scoped range (3-15), making it feel slightly heavy.
The server covers a wide range of chart types (bar, line, scatter, maps, etc.) plus dashboards, themes, and live data. Minor omissions like network graphs or advanced statistical charts leave some gaps.
Maintenance
Related MCP Connectors
Renders interactive Chart.js charts and dashboards inline in AI conversations.
Renders interactive Chart.js charts and dashboards inline in AI conversations. Supports bar, line, area, pie, doughnut, scatter, and radar charts with multi-chart dashboard grids.
Create, inspect, manage, and render charts and data visualizations as SVG/PNG or interactive embeds.
Ask your app anything — revenue, errors, read-cost, growth — and get rendered charts back.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceMCP server that captures TradingView chart images via Selenium — supports any ticker/interval with browser pooling for concurrent performance100MIT
- AlicenseAqualityBmaintenanceMCP server for the Trading 212 API. Provides 28 tools for portfolio management, trading, pies, dividends, market data, and analytics.286MIT
- AlicenseAqualityDmaintenanceEnables AI agents to generate and render charts as PNG, SVG, or WebP images directly in chat interfaces. Supports Chart.js specifications and natural language descriptions for creating visualizations from data.3341MIT
- AlicenseNot gradedqualityBmaintenanceLet AI agents create interactive visualizations that render live inside your chat — no code required.1BSD 3-Clause
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/KyuRish/mcp-dashboards'
If you have feedback or need assistance with the MCP directory API, please join our Discord server