# ApexCharts

> Generates and validates configs for ApexCharts charts, grid, gantt, tree, sankey, stock and maps.

- name: com.apexcharts/mcp
- version: 0.10.3
- connection class: R0 (autonomous)
- trust: 100/100
- quality: 75/100 (good)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/com.apexcharts%2Fmcp
- tools: https://api.protogrid.dev/v1/servers/com.apexcharts%2Fmcp/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "apexcharts": {
      "type": "http",
      "url": "https://mcp.apexcharts.com/mcp"
    }
  }
}
```


## Trust

- hygiene: 100
- liveness: 100
- freshness: 100
- provenance: 100
- drivers: +repository +namespace-matches-repo +dns-namespace +website +reachable +uptime-100% +updated-6d-ago
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 75/100 (good)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 100 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 23 of 23 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- pass `tools.token_cost`: about 6,060 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 25 (weight 15)

- warn `stability.changes`: 33 tool changes in 30 days
- fail `stability.rug_pull`: 2 tools kept their name but changed most of their description in 30 days; review before trusting them

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: deps.dev does not know apexcharts-mcp@0.10.3

- tools: 23, about 6,060 tokens to load them all
- tool set hash: 6009c7bca3d61ec2c95a8bba11b67e42
- tools last changed: 2026-10-12T19:27:35.436Z
- badge: [![protogrid quality](https://protogrid.dev/badge/com.apexcharts/mcp.svg)](https://protogrid.dev/servers/com.apexcharts/mcp)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-12 `apexstock_generate_config` changed (description)
  - before: Build a minimal valid ApexStock options object for a financial / stock chart. Generates a placeholder OHLCV candle series when `data` is omitted, so the result renders as-is. Note: at runtime ApexStock also requires `window.ApexCharts` to be set (it does not import ApexCharts) — that is a host-page concern, not part of this options object.
  - after: Build a minimal valid ApexStock options object for a financial / stock chart. Generates a placeholder OHLCV candle series when `data` is omitted, so the result renders as-is. Note: ApexStock does not bundle ApexCharts. The host provides the constructor per instance (`new ApexStock(el, options, { ApexCharts })`), once app-wide (`ApexStock.setApexCharts(ApexCharts)`), or as the `window.ApexCharts` global. That is a host-page concern, not part of this options object.
- 2026-10-12 `apexcharts_list_types` changed (description)
  - before: Return every ApexCharts chart type this server supports, with name, description, family (cartesian/bar/financial/circular/grid/radar/unit), series format (axis vs non-axis), expected data shape, and the reference doc filename for deeper detail. Optionally filter by family.
  - after: Return every ApexCharts chart type this server supports, with name, description, family (cartesian/bar/financial/circular/grid/radar/unit), series format (axis vs non-axis), expected data shape, the reference doc filename for deeper detail, and `bundle`: { tier: 1 } for a type the default bundle has, or for a Tier 2 type { tier: 2, import, scripts, since, failure, note? } naming the add-on it needs. Optionally filter by family.
- 2026-10-12 `apexcharts_generate_config` changed (description, inputSchema) **meaning changed**
  - before: Build a minimal valid ApexCharts options object for a given chart type. Picks the correct series data format (axis vs non-axis) and supplies placeholder data when none is given. Use this as the starting point for a chart.
  - after: Build a minimal valid ApexCharts options object for a given chart type. Picks the correct series data format (axis vs non-axis) and supplies placeholder data when none is given. Use this as the starting point for a chart. Since apexcharts 8.0 the Tier 2 types (waterfall, dumbbell, streamgraph, raincloud, violin, icicle, sunburst, unit, waffle) are outside the default bundle: the page also needs that type's add-on import next to 'apexcharts', or `import ApexCharts from 'apexcharts/full'`; apexcharts_list_types names the import per type.
- 2026-10-12 `apexcharts_list_products` changed (description)
  - before: Return every product (charts, gantt, tree, sankey, grid, stock, maps) currently exposed by this MCP server, with a "when to pick this" hint and the tool names it registers. Use this once at the start of a session to decide which product matches the user's task; then call that product's tools directly. Each product also reports `compatibility`: the bundled skill version and the upstream library version its guidance was verified against — use it to tell the user which library version this server targets. Results respect the APEXCHARTS_MCP_PRODUCTS env-var gating.
  - after: Return every product (charts, gantt, tree, sankey, grid, stock, maps) currently exposed by this MCP server, with a "when to pick this" hint and the tool names it registers. Use this once at the start of a session to decide which product matches the user's task; then call that product's tools directly. Each product also reports `compatibility`: the bundled skill version and the upstream library version its guidance was verified against; use it to tell the user which library version this server targets. Results respect the APEXCHARTS_MCP_PRODUCTS env-var gating.
- 2026-10-07 `apexmaps_get_reference` changed (annotations)
- 2026-10-07 `apexmaps_validate_config` changed (annotations)
- 2026-10-07 `apexmaps_generate_config` changed (annotations)
- 2026-10-07 `apexstock_get_reference` changed (annotations)
- 2026-10-07 `apexstock_validate_config` changed (annotations)
- 2026-10-07 `apexstock_generate_config` changed (annotations)

Full history: https://api.protogrid.dev/v1/servers/com.apexcharts%2Fmcp/changes

## Dependencies

- npm apexcharts-mcp@0.10.3: unknown

Dependency graphs from deps.dev; advisories from OSV.dev, including the GitHub Advisory Database and the PyPI Advisory Database; all CC BY 4.0.

## Remotes

- https://mcp.apexcharts.com/mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

- npm apexcharts-mcp@0.10.3

## Tools (23)

- `apexcharts_generate_config`: Build a minimal valid ApexCharts options object for a given chart type. Picks the correct series data format (axis vs non-axis) and supplies placeholder data when none is given. Use this as the starting point for a chart. Since apexcharts 8.0 the Tier 2 types (waterfall, dumbbell, streamgraph, raincloud, violin, icicle, sunburst, unit, waffle) are outside the default bundle: the page also needs that type's add-on import next to 'apexcharts', or `import ApexCharts from 'apexcharts/full'`; apexcharts_list_types names the import per type.
- `apexcharts_get_reference`: Read authoritative ApexCharts documentation from the bundled apexcharts-skill knowledge base. Call with no arguments to list all available files (SKILL.md plus per-family reference docs). Call with `file` to return that file as markdown. Use this when you need to look up an option, formatter signature, plotOptions detail, or a fully worked example for a specific chart family.
- `apexcharts_list_products`: Return every product (charts, gantt, tree, sankey, grid, stock, maps) currently exposed by this MCP server, with a "when to pick this" hint and the tool names it registers. Use this once at the start of a session to decide which product matches the user's task; then call that product's tools directly. Each product also reports `compatibility`: the bundled skill version and the upstream library version its guidance was verified against; use it to tell the user which library version this server targets. Results respect the APEXCHARTS_MCP_PRODUCTS env-var gating.
- `apexcharts_list_types`: Return every ApexCharts chart type this server supports, with name, description, family (cartesian/bar/financial/circular/grid/radar/unit), series format (axis vs non-axis), expected data shape, the reference doc filename for deeper detail, and `bundle`: { tier: 1 } for a type the default bundle has, or for a Tier 2 type { tier: 2, import, scripts, since, failure, note? } naming the add-on it needs. Optionally filter by family.
- `apexcharts_validate_config`: Check an ApexCharts options object against the data-format rules and known pitfalls (wrong series shape for chart type, radialBar values outside the min/max domain, undefined data points, conflicting tooltip flags, hex colors missing #, etc.). Returns structured issues so the caller can fix them. Returns ok: true when there are no errors (warnings still allowed).
- `apexgantt_generate_config`: Build a minimal valid ApexGantt options object. Generates a placeholder schedule (phases, dependencies, a milestone) when `tasks` is omitted, so the result can be rendered as-is. The placeholder dates are emitted in whatever `inputDateFormat` is chosen, so they parse without further work.
- `apexgantt_get_reference`: Read authoritative ApexGantt documentation from the bundled apexgantt-skill knowledge base. Call with no arguments to list all available files. Call with `file` to return that file as markdown. Use this to look up task data format, dependency types, view modes, the update lifecycle, or framework integration.
- `apexgantt_validate_config`: Check an ApexGantt options object against what the library does with it (missing id/name, tasks missing the dates the library requires, an incomplete `parsing` map, duplicate ids, orphan parentId, progress out of 0 to 100, ISO dates with the default MM-DD-YYYY format, dependency object using `id` instead of `taskId`, unknown dependency target, self-dependency, invalid dependency type, cycles, baseline missing start/end). Returns structured issues with stable rule ids.
- `apexgrid_generate_config`: Build a minimal valid `<apex-grid>` config: `{ columns, data }`. When both are omitted, a small users table is generated. When only `columns` is omitted, they are inferred from the keys of the first data row with `type` inferred per column. Pass `enableSortAndFilter: true` to opt every generated column in.
- `apexgrid_get_reference`: Read authoritative apex-grid documentation from the bundled apexgrid-skill knowledge base. Call with no arguments to list available files; call with `file` to fetch markdown. Use this for ColumnConfiguration, Lit cellTemplate, sort/filter, data pipeline, or framework integration.
- `apexgrid_validate_config`: Check an apex-grid `{ columns, data }` config against apexgrid-skill rules: columns/data required and array-shaped, every column.key must be a real key of the data rows, column.key unique, type is one of apex-grid's column types (string, number, boolean, date, currency, select and the other presentation types), sort/filter is boolean or config object. Returns structured issues with stable rule ids.
- `apexmaps_generate_config`: Build a minimal valid ApexMaps options object for a geographic visualization. Supports the six series types: choropleth (default), bubble, marker, arc, line, hexbin. Geometry comes from the built-in registry (e.g. "world/countries", "us", "eu/nuts2"), so no GeoJSON is needed. Generates a small placeholder dataset when data is omitted. Use the result with `new ApexMaps(el, options)` then `await map.render()`.
- `apexmaps_get_reference`: Read authoritative ApexMaps documentation from the bundled apexmaps-skill knowledge base. Call with no arguments to list available files; call with `file` to fetch markdown. Use this for series datum shapes, joins, the geometry registry, projections, scales, drilldown, theming, or framework integration.
- `apexmaps_validate_config`: Check an ApexMaps options object against what the library does with it: geo.map present and a built-in map id (or a URL / inline geometry), hex layouts only where one exists, a frameable geo.view.fit, known series types, arc from/to endpoints, line paths, bubble/marker coordinates or something to join on, hexbin point positions and aggregates (a hexbin has no joinBy), [lon, lat] ordering, joinBy shape, null (not undefined) for missing values, and known scale / projection / palette names. Returns structured issues with stable rule ids, severity, path, and a fix when there is a one-shot remedy.
- `apexsankey_generate_config`: Build a minimal valid ApexSankey config split into `options` (constructor) and `data` (render payload). Generates a 5-node placeholder flow when nodes/edges are omitted so the result renders something visible. Use the result by calling `new ApexSankey(el, options)` then `sankey.render(data)`.
- `apexsankey_get_reference`: Read authoritative ApexSankey documentation from the bundled apexsankey-skill knowledge base. Call with no arguments to list available files; call with `file` to fetch markdown. Use this for the { nodes, edges, options } data shape, layer ordering, styling, or framework integration.
- `apexsankey_validate_config`: Check an ApexSankey config against what the library does with it (unique node ids, edges reference real nodes, no negative values, no self-loops, no parallel edges that collapse into one, nodes without edges). Cycles are allowed: they render as dashed loops. Accepts the wrapped `{ options, data }` shape from generate_config, the raw render payload `{ nodes, edges }`, or an ApexSankey.compare `{ before, after }` config.
- `apexstock_generate_config`: Build a minimal valid ApexStock options object for a financial / stock chart. Generates a placeholder OHLCV candle series when `data` is omitted, so the result renders as-is. Note: ApexStock does not bundle ApexCharts. The host provides the constructor per instance (`new ApexStock(el, options, { ApexCharts })`), once app-wide (`ApexStock.setApexCharts(ApexCharts)`), or as the `window.ApexCharts` global. That is a host-page concern, not part of this options object.
- `apexstock_get_reference`: Read authoritative ApexStock documentation from the bundled apexstock-skill knowledge base. Call with no arguments to list all available files. Call with `file` to return that file as markdown. Use this to look up the OHLC data format, indicators, streaming/appendData, trading overlays, theming, or framework integration.
- `apexstock_validate_config`: Check an ApexStock options object against the rules in apexstock-skill (missing series/data, flat o/h/l/c keys instead of a y:[o,h,l,c] array, malformed or inconsistent OHLC tuples, missing/invalid x, non-ascending data, invalid theme.mode, and unknown indicator keys). Returns structured issues with stable rule ids.
- `apextree_generate_config`: Build a minimal valid ApexTree config split into `options` (constructor) and `data` (the root NestedNode passed to `tree.render(data)`). Generates a small 3-level org chart placeholder when `data` is omitted. Every node in the output has `children: []` even for leaves (ApexTree requires it).
- `apextree_get_reference`: Read authoritative ApexTree documentation from the bundled apextree-skill knowledge base. Call with no arguments to list available files; call with `file` to fetch markdown. Use this for the NestedNode data shape, grow directions, nodeTemplate, the graph API, or framework integration.
- `apextree_validate_config`: Check an ApexTree config against what the library does with it: root is a NestedNode, every node has an id and a label, children (when present) is an array, ids unique across the whole tree, valid direction/edgeStyle/edgeColorMode/theme values, enableSelection is "single"|"multi"|false (NOT boolean true), and a warning when contentKey is "data" but a node has no `data` payload. Accepts both the wrapped `{ options, data }` shape and a bare root node.
