amCharts 5 MCP Server
OfficialProvides framework-specific documentation and integration guides for implementing amCharts 5 visualizations within Angular applications.
Provides framework-specific documentation and integration guides for implementing amCharts 5 visualizations within Next.js applications.
Provides framework-specific documentation and integration guides for implementing amCharts 5 visualizations within React applications.
Provides framework-specific documentation and integration guides for implementing amCharts 5 visualizations within Svelte applications.
amCharts 5 MCP Server
An MCP (Model Context Protocol) server that gives AI assistants on-demand access to the complete amCharts 5 knowledge base: 160+ documentation pages, 290+ code examples, and 1,300+ API reference pages.
Works with Claude Code, Claude Desktop, Cursor, Windsurf, VS Code + GitHub Copilot, and any other MCP-compatible AI tool.
Why?
Instead of loading the entire amCharts reference into the AI's context window, the MCP server lets the AI query exactly what it needs — a specific chart type reference, a code example, or an API lookup. This means better answers with less context waste.
Related MCP server: Dedalus MCP Documentation Server
Quick Start
The easiest way is the hosted server — no install, just add one URL. Prefer to run it yourself? See Local install below.
Hosted (no install) — recommended
Point your AI client at:
https://mcp.amcharts.com/mcpClaude Code
claude mcp add --transport http amcharts5 https://mcp.amcharts.com/mcpClaude Desktop / claude.ai — Settings → Connectors → Add custom connector, then paste https://mcp.amcharts.com/mcp.
Cursor — .cursor/mcp.json:
{
"mcpServers": {
"amcharts5": {
"url": "https://mcp.amcharts.com/mcp"
}
}
}VS Code + GitHub Copilot — .vscode/mcp.json:
{
"servers": {
"amcharts5": {
"type": "http",
"url": "https://mcp.amcharts.com/mcp"
}
}
}Windsurf — ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"amcharts5": {
"serverUrl": "https://mcp.amcharts.com/mcp"
}
}
}ChatGPT (Plus/Pro/Enterprise with connectors/developer mode enabled) — Settings → Connectors → Add custom connector, then paste https://mcp.amcharts.com/mcp.
Cline (VS Code extension) — open the MCP Servers panel → Remote Servers, paste https://mcp.amcharts.com/mcp, or add to its MCP settings JSON:
{
"mcpServers": {
"amcharts5": {
"type": "streamableHttp",
"url": "https://mcp.amcharts.com/mcp"
}
}
}Clients that only support local (stdio) servers (e.g. Zed, Continue, Amazon Q Developer) — bridge to the hosted URL with mcp-remote. Use this as the server's run command in the client's config:
npx mcp-remote https://mcp.amcharts.com/mcpFor example, in a command/args style config:
{
"mcpServers": {
"amcharts5": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.amcharts.com/mcp"]
}
}
}Any other MCP client that accepts a remote server URL works too — use the /mcp
endpoint (Streamable HTTP) or /sse (legacy SSE). For URL-only clients that still
expect a command, use the mcp-remote bridge shown above.
Local install (npx)
Prefer running it yourself? The server is also published to npm and runs over stdio.
Claude Code
For all projects (global, recommended):
claude mcp add -s user amcharts5 -- npx -y @amcharts/amcharts5-mcpFor current project only:
claude mcp add amcharts5 -- npx -y @amcharts/amcharts5-mcpClaude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"amcharts5": {
"command": "npx",
"args": ["-y", "@amcharts/amcharts5-mcp"]
}
}
}Cursor
Create or edit .cursor/mcp.json in your project root (or ~/.cursor/mcp.json for global):
{
"mcpServers": {
"amcharts5": {
"command": "npx",
"args": ["-y", "@amcharts/amcharts5-mcp"]
}
}
}Windsurf
Edit ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"amcharts5": {
"command": "npx",
"args": ["-y", "@amcharts/amcharts5-mcp"]
}
}
}VS Code + GitHub Copilot
Create or edit .vscode/mcp.json in your workspace:
{
"servers": {
"amcharts5": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@amcharts/amcharts5-mcp"]
}
}
}Other MCP-compatible tools
For any other tool that supports MCP (Cline, Continue, Amazon Q, Zed, etc.), configure it to run:
npx -y @amcharts/amcharts5-mcpRun locally (for development)
git clone https://github.com/amcharts/amcharts5-mcp.git
cd amcharts5-mcp
npm install
npm startAvailable Tools
Tool | Description |
| Get core amCharts 5 docs — setup, themes, colors, events, common pitfalls |
| Get full reference for a chart type (e.g. "pie", "sankey", "xy") |
| List all available chart types and their keywords |
| Search the skill reference docs by keyword |
| Search across everything — skill docs, full documentation, and code examples |
| Get a full documentation page (e.g. "charts/xy-chart/axes", "concepts/events") |
| Get a specific section from a reference file by heading |
| Get a minimal working template for any chart type |
| Browse all 290+ examples, optionally filtered by category |
| Get the full code for a specific example |
| Get the API reference for a class, interface or function — settings with their defaults, events, inheritance and the import line |
Example Usage
Once connected, your AI assistant can:
"Build me a pie chart" → AI calls
get_quick_start("pie")and adapts the template"How do I format date axis labels?" → AI calls
search_all("date axis label format")"Show me the Sankey diagram example" → AI calls
get_example("examples/flow/sankey-diagram")"What settings does XYChart support?" → AI calls
get_doc("reference/xychart")"How do I integrate with React?" → AI calls
get_doc("getting-started/integrations/react")"What chart types are available?" → AI calls
list_chart_types()
Content
The server includes 1,800+ documents:
160+ documentation pages — getting started, chart guides, concepts (themes, events, adapters, data binding, animations, accessibility, etc.), and framework integration guides (React, Angular, Vue, Next.js, Svelte, and more)
290+ code examples — working demos across 16 categories including column/bar, line/area, pie/donut, maps, hierarchy, flow, radar/polar, stock, gauges, Gantt, timeline, and more
1,300+ API reference pages — every class, interface and function in the amCharts 5 library, generated from the release's typings: settings with their real defaults (theme rules included), events, properties, data item fields, the inheritance chain and the import line
Curated skill reference — quick-start templates and chart-specific guides from the amCharts 5 AI Skill
Security
Read-only tools. Every tool reads the bundled amCharts documentation and returns text. No tool writes files, runs commands or fetches URLs.
The hosted endpoint has no authentication, by design.
https://mcp.amcharts.com/mcpserves the same public documentation as amcharts.com. There are no accounts, API keys, user data or write operations behind it.It runs on Cloudflare Workers.
MCP session state is kept in a Durable Object, as the MCP agents framework requires.
Cloudflare's standard request logs are enabled. The server itself does not log tool arguments.
Local install. The npm package runs over stdio on your machine and reads only the content bundled in it; it makes no network requests. Its only runtime dependencies are
@modelcontextprotocol/sdkandzod.Maintainer scripts. The scripts in
scripts/(the demo and docs scrapers, the API reference generator) are not part of the npm package and never run in the server.Reporting a vulnerability: https://www.amcharts.com/report-vulnerability/
License
MIT
Available Tools
11 toolsget_api_referenceA
Get the per-class API reference for an amCharts 5 class — the class page PLUS its settings table (with DEFAULTS) and, optionally, its private/read-only settings. This is the authoritative source for exact setting names and default values (e.g. tooltip background cornerRadius, axis tick visible default). Pass a class name in any casing, e.g. 'XYCursor', 'Tooltip', 'PieSeries', 'AxisRendererX'.
| Name | Required | Description | Default |
|---|---|---|---|
| className | Yes | amCharts 5 class name, e.g. 'XYCursor', 'Tooltip', 'PieSeries', 'ColumnSeries', 'AxisRendererX'. Casing/punctuation are ignored. | |
| includePrivate | No | Also include the private (read-only / internal) settings table. Default false. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden, and it does disclose the shape of what comes back: a class page plus a settings table with defaults, optionally extended with private/read-only settings. It omits any note on behavior for invalid class names, response size, or formatting, which keeps it short of full 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?
Three sentences, front-loaded with what the tool returns and why it matters, then the input convention. The trailing example list ('XYCursor', 'Tooltip', 'PieSeries', 'AxisRendererX') largely duplicates the schema examples, a small redundancy but not enough to hurt readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description must convey the return shape, and it does: class page plus settings table with defaults, plus the optional private table. It stops short of describing the rendered format or size of the reference, but for a read-only documentation lookup that is a minor omission.
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 both parameters are already documented (including the casing-insensitivity and the includePrivate default of false). The description adds only a restatement of the casing rule and an implicit hint that includePrivate surfaces read-only settings, which is baseline-level 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?
States a specific verb and resource ('Get the per-class API reference for an amCharts 5 class') and enumerates what that payload contains (class page + settings table with defaults + optional private settings). The 'per-class' grain implicitly separates it from sibling reference tools, but it never explicitly contrasts itself with get_chart_reference or get_core_reference, which look like competing reference endpoints.
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?
Gives a clear reason to reach for this tool: it is 'the authoritative source for exact setting names and default values,' with concrete examples (cornerRadius, axis `visible` default). It does not state when to prefer a sibling reference tool or what to do when the class is unknown/not found, so there are no exclusions or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_chart_referenceA
Get the full reference documentation for a specific amCharts 5 chart type. Use list_chart_types first to see available types.
| Name | Required | Description | Default |
|---|---|---|---|
| chartType | Yes | Chart type keyword, e.g. 'pie', 'sankey', 'xy', 'treemap', 'map', 'radar', 'stock', 'gantt', 'venn', 'wordcloud', 'timeline', 'flow', 'hierarchy', 'ui-elements' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It implies a read-only documentation lookup, which is inherently low-risk, but discloses nothing about volume, pagination, or output size for what is billed as 'full reference documentation.'
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, zero filler, with the core action front-loaded and the prerequisite sequencing placed second. Every clause 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?
For a single-parameter, read-only documentation fetch with no output schema, the definition covers what an agent needs to invoke it correctly. It could go slightly further by noting that the response is a large reference document rather than a short answer, which would help an agent decide between this and a search 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 chartType keyword and its example values are already documented in the schema. The description adds only the routing hint to list_chart_types, which is a usage rather than a semantic contribution. Baseline 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?
States a specific verb (Get) and resource (full reference documentation for a specific amCharts 5 chart type). The scope 'chart type' distinguishes it from general-purpose siblings like get_doc, get_api_reference, and get_section without needing to open a schema.
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 prescribes the workflow: 'Use list_chart_types first to see available types,' naming the sibling that supplies valid values. It does not, however, say when to prefer this over get_api_reference or get_core_reference for overlapping reference needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_core_referenceA
Get the core amCharts 5 reference (SKILL.md) — covers setup, colors, themes, legends, tooltips, events, data, adapters, disposal, and common pitfalls. Read this first before any chart-specific reference.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It discloses scope (setup, colors, themes, legends, tooltips, events, data, adapters, disposal, pitfalls), which is useful content context. However, it doesn't state the format of the return, whether it's static text or paginated, or size considerations. For a zero-parameter read tool with no annotations, this is adequate but not rich.
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 resource name, followed by the content scope and usage directive. No waste; every 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?
For a zero-parameter read tool with no annotations and no output schema, the description covers what the resource is, what it contains, and when to use it. The only minor gap is not describing the return format, but the content scope list effectively communicates what the agent will get.
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?
Zero parameters, so baseline 4 applies. The description doesn't need to explain parameters, and schema coverage is 100% (trivially, since there are no params). No param semantics required.
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?
States a specific verb (Get) and resource (core amCharts 5 reference, SKILL.md), and names the sibling tools it precedes (chart-specific references). An agent can distinguish it from get_chart_reference or get_api_reference immediately.
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 when to use it: 'Read this first before any chart-specific reference.' This is a clear sequencing directive that distinguishes it from the other reference tools in the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_docA
Get a full documentation page — an extended doc by path, or a skill file by 'skill/'. Accepts the source label exactly as search_docs / search_all print it. Use search_all first to find the right path.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Doc path, e.g. 'charts/xy-chart/cursor', 'concepts/events', 'getting-started/integrations/react', 'reference/xycursor' (per-class API), or a skill file such as 'skill/SKILL.md' / 'skill/xy'. For a class's full settings + defaults prefer get_api_reference. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. It conveys that this returns a complete page and that paths must match source labels exactly as printed by search tools, but says nothing about read-only nature, response shape, or pagination. Adequate but with clear gaps for an unannotated tool.
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 compact sentences: the scope/forms are front-loaded and the workflow hint follows. No filler.
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 single-parameter read tool with no output schema, the description covers what it returns (a full page), the accepted path forms, and how to obtain a valid path. Minor gap is not naming get_api_reference as the alternative for class settings, which lives only in the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is already 100% and includes examples and the skill-file form, so the baseline is 3. The description adds genuine meaning beyond the schema by specifying that the path must be the source label exactly as search_docs / search_all print it, clarifying an otherwise implicit matching rule.
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?
States a specific verb and resource ('Get a full documentation page') and enumerates the two accepted path forms (extended doc vs. 'skill/<name>'). It does not explicitly differentiate from the sibling get_api_reference, which is only distinguished inside the parameter schema, not the description.
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?
Gives clear workflow guidance: 'Use search_all first to find the right path,' which establishes this as a follow-up retrieval tool. It lacks an explicit when-not statement (e.g., when to prefer get_api_reference instead), but the sequencing advice is concrete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_exampleA
Get the full code for a specific amCharts 5 example/demo. Use list_examples or search_all to find the path.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Example path, e.g. 'examples/flow/sankey-diagram', 'examples/pie-donut/donut-chart', 'examples/maps/drill-down-map' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does disclose the shape of the return value ('full code', i.e. complete source rather than metadata), which is useful, but says nothing about behavior on an invalid path, whether results are cached, or size limits. Adequate but not rich.
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 short sentences with zero filler; the purpose is front-loaded and the prerequisite follows immediately. Every clause 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?
For a one-parameter retrieval tool with no output schema, the description covers purpose, input provenance, and the nature of the returned content ('full code'). It stops short of noting what happens if the path is wrong or nonexistent, a minor gap for a tool this simple.
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 schema already supplies concrete path examples ('examples/flow/sankey-diagram'), so the baseline is 3. The description adds only that the path comes from list_examples or search_all, which is routing context rather than new parameter semantics.
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?
States a precise verb+resource ('Get the full code for a specific amCharts 5 example/demo') and scopes it to a single example, which cleanly separates it from list_examples (enumeration) and get_doc/get_api_reference (reference material). An agent can pick this tool without opening the schema.
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 names the prerequisite discovery tools ('Use list_examples or search_all to find the path'), telling the agent both when to use this tool and how to obtain its required input. Nothing about routing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_quick_startA
Get a quick-start template for a specific chart type — a minimal working example ready to customize.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | Output format: 'html' for a full HTML page with CDN scripts, 'esm' for ES module imports | html |
| chartType | Yes | Chart type, e.g. 'pie', 'line', 'bar', 'map', 'sankey', 'treemap' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. 'Get' implies a non-destructive read, and it usefully discloses that the returned artifact is a minimal, customizable template, but it says nothing about permissions, rate limits, or whether the template is static versus generated.
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?
One front-loaded sentence with an em-dash clause that earns its place by clarifying the kind of example returned. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter read tool with a fully documented schema and no output schema, the description covers purpose and the nature of the return value. The one gap is not distinguishing itself from the overlapping example/reference 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 description coverage is 100%, including a detailed enum explanation for 'format' ('html' with CDN scripts vs 'esm' imports). The description adds no syntax or value guidance for 'chartType' beyond 'specific chart type,' so the baseline 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?
States a specific verb+resource ('Get a quick-start template') and constrains it to a chart type, then characterizes the output as 'a minimal working example ready to customize.' That differentiates it somewhat from siblings like get_example or get_chart_reference, but it never names or contrasts with them explicitly.
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?
Usage is implied: an agent can infer this is the tool to reach for when it needs a starter template for a chart type. There is no explicit when-to-use, when-not, or routing to alternatives such as get_example or list_examples.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sectionA
Get the FULL text of one section of a doc by heading — use it to expand a truncated search_docs / search_all result. file accepts the source label exactly as search results print it ('skill/SKILL.md', 'skill/xy', 'extended/charts/xy-chart/cursor', 'reference/xycursor') as well as a bare skill file name ('SKILL', 'xy', 'map').
| Name | Required | Description | Default |
|---|---|---|---|
| file | Yes | Doc identifier: a skill file ('SKILL', 'xy', 'pie', 'map') or a source label from search results ('skill/SKILL.md', 'extended/concepts/events', 'reference/xycursor'). '.md' and 'skill/' / 'extended/' prefixes are optional. | |
| heading | Yes | Section heading to retrieve (case-insensitive substring), e.g. 'Core setup pattern', 'Axis types', 'Common pitfalls', 'Recent API changes' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full behavioral burden. It usefully discloses that it returns the complete (untruncated) section text — the key behavioral fact for its primary use case — but says nothing about failure modes (heading not found, ambiguous/multi-match headings) or how many sections can be returned per heading match.
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 compact sentences with the core purpose front-loaded before the usage hint. The file-format enumeration is somewhat redundant with the schema and could be trimmed, but overall density is high with no filler.
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 2-param, no-annotation, no-output-schema tool, the description covers purpose, primary use case, and accepted input forms. The main gap is edge-case behavior — what happens when the heading matches nothing or matches multiple sections — which is not covered anywhere.
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 both parameters are already documented in the schema, making 3 the baseline. The description's discussion of accepted file formats ('skill/SKILL.md', bare skill names, optional prefixes) largely restates the schema's own file description rather than adding new semantics.
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?
Specific verb + resource + scope: 'Get the FULL text of one section of a doc by heading.' The word 'FULL' explicitly distinguishes it from the truncated snippets returned by search_docs/search_all, and the tool's role versus the broader get_doc sibling is inferable from 'one section ... by heading.'
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?
States a concrete use case: 'use it to expand a truncated search_docs / search_all result,' which names the alternatives and the condition that selects this tool. It does not, however, say when to prefer get_doc (whole document) over this section-level tool, so the routing guidance is one-sided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_chart_typesA
List all amCharts 5 chart types with their categories and reference file names
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does disclose the shape of the result (types with categories and reference file names), but says nothing about pagination, ordering, or scope limits. For a zero-parameter read-only listing the risk is low, so this is adequate but not rich.
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?
A single front-loaded sentence with no filler. The verb and resource lead, and the return content follows immediately.
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 no output schema, the description correctly compensates by naming what is returned (categories, reference file names). For a no-parameter enumeration tool this is nearly complete; only the absence of any alternative-routing hint keeps it from a 5.
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 takes zero parameters, so there is nothing for the description to disambiguate. Baseline 4 applies; no syntax or format details are needed.
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?
States a specific verb (List) and resource (amCharts 5 chart types), plus what each entry contains (categories, reference file names). It is clear on its own, but does not differentiate from siblings like get_chart_reference or list_examples that also surface chart-related content.
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?
Usage is only implied: an agent can infer this is the discovery/enumeration entry point for chart types. There is no explicit when-to-use, when-not-to-use, or pointer to alternatives such as get_chart_reference for detailed content.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_examplesA
List all available amCharts 5 code examples, optionally filtered by category.
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Filter by category, e.g. 'column-bar', 'line-area', 'pie-donut', 'maps', 'flow', 'hierarchy', 'stock', 'gantt', 'gauges', 'radar-polar', 'timeline', 'funnel-pyramid'. Omit to list all categories. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden: it says nothing about return shape, ordering, pagination, or whether the output is static bundled content or fetched remotely. It is a low-risk read-only listing, but the behavioral surface is largely undisclosed.
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?
A single sentence with the action front-loaded and no filler; everything stated 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?
With no output schema, the description should ideally hint at what a listed example looks like (name/id/category) so the agent knows how to chain into get_example. For a one-optional-parameter list tool it is serviceable, but the return-value handoff is missing.
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 category parameter already enumerates the valid values, so the schema does the heavy lifting. The description only restates that filtering exists, adding no format or matching 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?
States a specific verb and resource ('List all available amCharts 5 code examples') plus the optional scope of filtering, which clearly separates it from the singular sibling get_example. It does not explicitly name a sibling, but the verb+resource combination is 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 phrase 'optionally filtered by category' implies browsing vs. narrowing usage, but there is no explicit when-to-use guidance or routing to alternatives such as search_all, search_docs, or get_example. The agent must infer that this is for enumeration rather than lookup.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_allA
Search across ALL amCharts 5 content: skill references, full documentation, and code examples. Use this for broad searches across everything.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query, e.g. 'react integration', 'date axis formatting', 'stacked bar example' | |
| maxResults | No | Maximum results (default 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It usefully discloses the index scope (skill references, documentation, code examples), but says nothing about ranking, result format, truncation, or that only maxResults results are returned, which matters for a search tool with no output schema.
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 short sentences, zero waste, with the scope statement front-loaded before the usage hint. Every 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?
For a two-parameter search tool with no annotations and no output schema, the scope of the search is adequately described, but return behavior (result shape, ranking, pagination/limit semantics) is left entirely implicit. It is minimally viable but not 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 100%, so both parameters (query, maxResults) are already fully documented in the schema. The description adds no syntax, format, or query-language guidance beyond what the schema provides, so the baseline 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?
States a specific verb (Search) and resource set (all amCharts 5 content: skill references, docs, code examples), which is more precise than a bare 'search' tool. It implicitly differentiates from the narrower sibling search_docs via 'ALL' and 'broad searches across everything', though it never names that sibling explicitly.
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?
'Use this for broad searches across everything' gives implied usage guidance, contrasting with narrower searches. However, it never names the alternative tool (search_docs) or states a when-not-to-use condition, leaving the agent to infer the routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_docsA
Search the curated amCharts 5 skill docs (SKILL.md + chart references) for a keyword or topic, returning matching sections ranked by relevance. NOTE: by default this scans ONLY the skill layer. The per-class API reference and per-setting DEFAULTS (e.g. tooltip background cornerRadius, axis tick visible default, cursor line strokeDasharray) live in the extended docs — pass scope:'all' here, or use search_all / get_api_reference / get_doc, to reach them.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query, e.g. 'legend', 'axis label rotation', 'tooltip format', 'data processor' | |
| scope | No | 'skill' (default) searches only the curated skill docs; 'all' also searches the extended docs / per-class API reference where settings and defaults live. | skill |
| maxResults | No | Maximum number of results to return (default 5) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the burden, and it discloses the critical behavioral trait: the default search is scoped to the skill layer only and misses per-class API reference and DEFAULTS content. It also implies a ranked-sections return shape. It stops short of describing result structure or limits in detail, but for a read-only search the key caveat is covered.
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 before the caveat, with no filler content. The NOTE sentence is dense with sibling names and examples (cornerRadius, strokeDasharray) that slightly outweigh what an agent needs to decide whether to call the tool.
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 no output schema, the description explains what is returned ('matching sections ranked by relevance') and covers the main behavioral gap (skill-only default scope). It is nearly complete for a 3-parameter search tool, missing only finer return details such as result fields or truncation 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 description coverage is 100% and both scope and maxResults already carry descriptions, so the baseline is 3. The description reinforces the meaning of the scope default (what extended docs contain and why they matter), which is useful context but not syntax or format 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?
States a specific verb and resource ('Search the curated amCharts 5 skill docs (SKILL.md + chart references) for a keyword or topic') and adds the return semantics ('matching sections ranked by relevance'). The NOTE distinguishes it from sibling tools such as search_all, get_api_reference and get_doc by naming exactly where each reaches.
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 the default behavior ('by default this scans ONLY the skill layer'), the condition under which the default is insufficient, and the concrete alternatives to select instead (pass scope:'all', or use search_all / get_api_reference / get_doc).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
11 tool updates
v1.7.1- First observed
get_api_reference - First observed
get_chart_reference - First observed
get_core_reference - First observed
get_doc - First observed
get_example - First observed
get_quick_start - First observed
get_section - First observed
list_chart_types - First observed
list_examples - First observed
search_all - First observed
search_docs
TDQS
Scored across 11 tools
Each tool has a fairly distinct retrieval target (search, full doc, API reference, examples, chart types, sections), but there is real overlap: search_all vs search_docs (which can scope:'all') and get_doc vs get_section vs get_core_reference all fetch documentation content. The detailed descriptions do a good job steering the agent, keeping confusion to a couple of edge pairs.
Names follow a clean, predictable verb_noun pattern: search_all/search_docs, get_doc/get_section/get_example/get_api_reference, list_examples/list_chart_types. No mixed conventions or vague verbs.
11 tools is well-scoped for a documentation/reference server, with each tool earning its place across discovery (search, list) and retrieval (get) roles. Neither bloated nor thin.
The surface covers the full documentation workflow: broad and scoped search, full docs, per-class API references with defaults, examples, chart-type listings, core skill reference, and quick-start templates. No obvious dead ends for an agent exploring amCharts 5.
Maintenance
Related MCP Connectors
Augments MCP Server - A comprehensive framework documentation provider for Claude Code
Driflyte MCP server which lets AI assistants query topic-specific knowledge from web and GitHub.
An MCP server that gives your AI access to the source code and docs of all public github repos
MCP server for agentverse documentation, generated by doc2mcp.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAn MCP server that enables AI assistants to access up-to-date documentation for Python libraries like LangChain, LlamaIndex, and OpenAI through dynamic fetching from official sources.1MIT
- AlicenseAqualityDmaintenanceAn MCP server that serves documentation and enables AI-powered search, Q\&A, and document analysis for developer tools and guides.54MIT
- AlicenseNot gradedqualityAmaintenanceAn MCP server that provides tools for retrieving and processing documentation through vector search, enabling AI assistants to augment their responses with relevant documentation context.23 npmMIT
- AlicenseNot gradedqualityCmaintenanceAn MCP server that gives AI coding assistants access to up-to-date API documentation via RAG by crawling documentation sites, indexing them into a vector store, and enabling semantic queries.MIT