ApexCharts
Generates and validates configs for ApexCharts charts, grid, gantt, tree, sankey, stock and maps.
¿Debería usar esto?
Calidad y seguridad
Hallazgos (14)
- HIGH
- MEDIUMen apexcharts_generate_config
- MEDIUMen apexgantt_generate_config
- MEDIUMen apextree_generate_config
- MEDIUMen apexsankey_generate_config
- MEDIUMen apexstock_generate_config
- MEDIUMen apexmaps_generate_config
- MEDIUMen apexcharts_list_types
- INFOen apexcharts_generate_config
- INFOen apexgantt_generate_config
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"mcp": {
"command": "npx",
"args": [
"apexcharts-mcp"
]
}
}
}Paquetes ejecutables
0.9.5stdioPuntos de conexión remotos
https://mcp.apexcharts.com/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (23)
🟢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.
Esquema de entrada
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢apexcharts_generate_config(type, series, categories, title, height, ...)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"line",
"area",
"bar",
"scatter",
"bubble",
"rangeArea",
"rangeBar",
"funnel",
"pyramid",
"waterfall",
"dumbbell",
"streamgraph",
"raincloud",
"histogram",
"candlestick",
"boxPlot",
"violin",
"heatmap",
"treemap",
"icicle",
"radar",
"pie",
"donut",
"polarArea",
"radialBar",
"gauge",
"sunburst",
"unit",
"waffle"
],
"description": "ApexCharts chart.type value (e.g. \"line\", \"bar\", \"pie\")."
},
"series": {
"type": "array",
"items": {},
"description": "Optional series data in the format required by the chart type."
},
"categories": {
"type": "array",
"items": {
"type": "string"
},
"description": "xaxis categories (axis charts) or labels (pie/donut/etc)."
},
"title": {
"type": "string",
"description": "Optional chart title."
},
"height": {
"type": "integer",
"exclusiveMinimum": 0,
"description": "Chart height in px (default 350)."
},
"stacked": {
"type": "boolean",
"description": "Stack series. Honored only for bar, area and line chart types."
},
"horizontal": {
"type": "boolean",
"description": "Render bars horizontally. Honored only for bar chart type."
}
},
"required": [
"type"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢apexcharts_validate_config(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).
Esquema de entrada
{
"type": "object",
"properties": {
"config": {
"type": "object",
"additionalProperties": {},
"description": "The ApexCharts options object to validate."
}
},
"required": [
"config"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢apexcharts_list_types(family)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"family": {
"type": "string",
"enum": [
"cartesian",
"bar",
"financial",
"circular",
"grid",
"radar",
"unit"
],
"description": "Optional family filter. Omit to return all supported types."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢apexcharts_get_reference(file)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"file": {
"type": "string",
"description": "Filename to read (e.g. \"SKILL.md\", \"circular-charts.md\"). Omit to list available files."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢apexgantt_generate_config(tasks, title, height, inputDateFormat, enableCriticalPath, ...)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"tasks": {
"type": "array",
"items": {},
"description": "Task array (`series`). Each task: { id, name, startTime, endTime?, progress?, type?, parentId?, dependency? }."
},
"title": {
"type": "string",
"description": "Optional chart title."
},
"height": {
"type": "integer",
"exclusiveMinimum": 0,
"description": "Chart height in px (default 600)."
},
"inputDateFormat": {
"type": "string",
"description": "dayjs format for parsing date strings. Default is ApexGantt's own default \"MM-DD-YYYY\". Common alternatives: \"YYYY-MM-DD\", \"DD/MM/YYYY\"."
},
"enableCriticalPath": {
"type": "boolean",
"description": "Highlight the longest dependency chain on render."
},
"baseline": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "object",
"properties": {
"color": {
"type": "string"
}
},
"additionalProperties": true
}
],
"description": "Enable planned-vs-actual baseline track. Tasks must supply a per-task `baseline: { start, end }`."
},
"enableSelection": {
"type": "boolean",
"description": "Enable `getSelectedTasks()` / `setSelectedTasks()` / `selectionChange` event."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢apexgantt_validate_config(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.
Esquema de entrada
{
"type": "object",
"properties": {
"config": {
"type": "object",
"additionalProperties": {},
"description": "The ApexGantt options object to validate."
}
},
"required": [
"config"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢apexgantt_get_reference(file)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"file": {
"type": "string",
"description": "Filename to read (e.g. \"SKILL.md\", \"data-format.md\"). Omit to list available files."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢apextree_generate_config(data, width, height, direction, contentKey, ...)
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).
Esquema de entrada
{
"type": "object",
"properties": {
"data": {
"type": "object",
"additionalProperties": {},
"description": "Root NestedNode: `{ id, name, children: [...] }`. Recursive. Leaves must have `children: []`."
},
"width": {
"type": [
"number",
"string"
],
"description": "Canvas width. Default \"100%\"."
},
"height": {
"type": [
"number",
"string"
],
"description": "Canvas height. Default \"auto\"."
},
"direction": {
"type": "string",
"enum": [
"top",
"bottom",
"left",
"right",
"radial"
],
"description": "Where the root sits and which way the tree grows. Default \"top\". \"radial\" (apextree 2.0+) puts the root at the centre with one ring per depth."
},
"contentKey": {
"type": "string",
"description": "Key on each node used as the label. Default \"name\". Set to \"data\" to activate the built-in org-card template."
},
"enableSelection": {
"type": [
"string",
"boolean"
],
"enum": [
"single",
"multi",
false
],
"description": "Selection mode. Note: enableSelection: true is INVALID — use \"single\" or \"multi\"."
},
"theme": {
"type": "string",
"description": "Built-in \"light\"/\"dark\"/\"custom\", or (apextree 2.1+) the name of a theme registered on the shared family registry."
},
"edgeStyle": {
"type": "string",
"enum": [
"orthogonal",
"curved",
"straight"
]
},
"siblingSpacing": {
"type": "number",
"description": "Horizontal spacing between siblings (px)."
},
"childrenSpacing": {
"type": "number",
"description": "Vertical spacing between a node and its children (px)."
},
"nodeWidth": {
"type": "number"
},
"nodeHeight": {
"type": "number"
},
"enableToolbar": {
"type": "boolean"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢apextree_validate_config(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.
Esquema de entrada
{
"type": "object",
"properties": {
"config": {
"type": "object",
"additionalProperties": {},
"description": "The ApexTree config to validate."
}
},
"required": [
"config"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢apextree_get_reference(file)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"file": {
"type": "string",
"description": "Filename to read (e.g. \"SKILL.md\", \"data-format.md\"). Omit to list available files."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢apexsankey_generate_config(nodes, edges, width, height, spacing, ...)
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)`.
Esquema de entrada
{
"type": "object",
"properties": {
"nodes": {
"type": "array",
"items": {},
"description": "Array of node objects: `{ id, title, color? }`. ids must be unique."
},
"edges": {
"type": "array",
"items": {},
"description": "Array of edge objects: `{ source, target, value, type }`. source/target reference node ids; value > 0."
},
"width": {
"type": [
"number",
"string"
],
"description": "Canvas width (px number or any CSS width). Default \"100%\"."
},
"height": {
"type": [
"number",
"string"
],
"description": "Canvas height (px number or \"auto\"). Default \"auto\" ≈ 1.6:1 from width."
},
"spacing": {
"type": "number",
"description": "Horizontal gap between node columns (px). Default 20."
},
"nodeWidth": {
"type": "number",
"description": "Node rectangle width (px). Default 20."
},
"animation": {
"type": "boolean",
"description": "Enable entrance animation. Default true."
},
"tooltipTheme": {
"type": "string",
"enum": [
"light",
"dark"
],
"description": "Tooltip preset."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢apexsankey_validate_config(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.
Esquema de entrada
{
"type": "object",
"properties": {
"config": {
"type": "object",
"additionalProperties": {},
"description": "The ApexSankey config object to validate."
}
},
"required": [
"config"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢apexsankey_get_reference(file)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"file": {
"type": "string",
"description": "Filename to read (e.g. \"SKILL.md\", \"data-format.md\"). Omit to list available files."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢apexgrid_generate_config(columns, data, enableSortAndFilter, resizable)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"columns": {
"type": "array",
"items": {},
"description": "Array of ColumnConfiguration. Each column needs `{ key, type? }` where key is a real key of each data row."
},
"data": {
"type": "array",
"items": {},
"description": "Array of row objects. Keys referenced by `column.key` must exist on each row."
},
"enableSortAndFilter": {
"type": "boolean",
"description": "Convenience: add `sort: true` and `filter: true` to every generated column."
},
"resizable": {
"type": "boolean",
"description": "Convenience: add `resizable: true` to every generated column."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢apexgrid_validate_config(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.
Esquema de entrada
{
"type": "object",
"properties": {
"config": {
"type": "object",
"additionalProperties": {},
"description": "The apex-grid config `{ columns, data }` to validate."
}
},
"required": [
"config"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢apexgrid_get_reference(file)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"file": {
"type": "string",
"description": "Filename to read (e.g. \"SKILL.md\", \"columns-and-templates.md\"). Omit to list available files."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢apexstock_generate_config(data, name, title, height, theme, ...)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {},
"description": "OHLC candles for series[0].data. Each point: { x, y: [open, high, low, close], v? }. Omit for a placeholder series."
},
"name": {
"type": "string",
"description": "Series name (default \"Price\")."
},
"title": {
"type": "string",
"description": "Optional chart title."
},
"height": {
"type": "integer",
"exclusiveMinimum": 0,
"description": "Chart height in px (default 600)."
},
"theme": {
"type": "string",
"enum": [
"light",
"dark"
],
"description": "Theme mode (default \"light\")."
},
"indicators": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "object",
"additionalProperties": {}
}
],
"description": "Indicators to enable: a list of keys (e.g. [\"moving average\", \"rsi\"]) or a keyed config map (e.g. { \"bollinger bands\": { period: 20, stdDev: 2 } }). Overlays and oscillators both stack; each oscillator gets its own pane."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢apexstock_validate_config(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.
Esquema de entrada
{
"type": "object",
"properties": {
"config": {
"type": "object",
"additionalProperties": {},
"description": "The ApexStock options object to validate."
}
},
"required": [
"config"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢apexstock_get_reference(file)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"file": {
"type": "string",
"description": "Filename to read (e.g. \"SKILL.md\", \"indicators.md\"). Omit to list available files."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢apexmaps_generate_config(type, map, seriesName, data, joinBy, ...)
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()`.
Esquema de entrada
{
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"choropleth",
"bubble",
"marker",
"arc",
"line",
"hexbin"
],
"description": "Series type. Default \"choropleth\". \"hexbin\" bins points into a hex lattice (density); it takes points, never region-keyed rows."
},
"map": {
"type": "string",
"description": "Geometry registry pack id or alias: \"world/countries\", \"us\", \"us/counties\", \"eu/nuts2\", \"jp/prefectures\", ... Default \"world/countries\"."
},
"seriesName": {
"type": "string",
"description": "Series display name (legend / tooltip)."
},
"data": {
"type": "array",
"items": {},
"description": "Data array in the datum shape of `type`: choropleth rows `{ <key>, value }`, bubble/marker `{ lon, lat, ... }`, arc `{ from, to }`, line `{ path: [[lon,lat],...] }`, hexbin `{ lon, lat, value? }`. Omit for a placeholder dataset."
},
"joinBy": {
"anyOf": [
{
"type": "string"
},
{
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": [
{
"type": "string"
},
{
"type": "string"
}
]
},
{
"type": "object",
"additionalProperties": {
"type": "string"
}
}
],
"description": "Join spec: \"field\", [\"geoField\", \"dataField\"], or { geo, data }. Omit to use key auto-detection (the placeholder emits [\"iso_a3\", \"code\"])."
},
"palette": {
"type": "string",
"description": "Palette name for the value scale (e.g. \"blues\", \"viridis\", \"okabeIto\")."
},
"projection": {
"anyOf": [
{
"type": "string"
},
{
"type": "object",
"additionalProperties": {}
}
],
"description": "Projection name or spec object. Omit to use the pack default (recommended: packs like \"us\" already pick albersUsa)."
},
"themeMode": {
"type": "string",
"enum": [
"light",
"dark",
"auto"
],
"description": "Theme mode."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢apexmaps_validate_config(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.
Esquema de entrada
{
"type": "object",
"properties": {
"config": {
"type": "object",
"additionalProperties": {},
"description": "The ApexMaps options object to validate."
}
},
"required": [
"config"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢apexmaps_get_reference(file)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"file": {
"type": "string",
"description": "Filename to read (e.g. \"SKILL.md\", \"data-format.md\"). Omit to list available files."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Comunidad
Evidencia