Create, inspect, manage, and render charts and data visualizations as SVG/PNG or interactive embeds.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Use this when the user explicitly wants to permanently delete one saved chart. Deletion cannot be undone, and retrying an already completed deletion succeeds; requires authentication.
Opaque 32-character saved-chart id
The server marks this tool as destructive. Running it may delete or overwrite data on the server or in any account you connected with your headers.
Use this when the user explicitly wants to permanently delete one saved chart. Deletion cannot be undone, and retrying an already completed deletion succeeds; requires authentication.
| Argument | Type | Description |
|---|---|---|
| id* | string | Opaque 32-character saved-chart id |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[0-9a-f]{32}$",
"description": "Opaque 32-character saved-chart id"
}
}
}Use this when the user identifies a saved chart by id and wants to view it or retrieve its metadata and URLs. Displays the published chart when available and does not return its document; requires authentication.
| Argument | Type | Description |
|---|---|---|
| id* | string | Opaque 32-character saved-chart id |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[0-9a-f]{32}$",
"description": "Opaque 32-character saved-chart id"
}
}
}Use this when the user identifies a saved chart by id and needs its complete published Szum document for inspection or reuse. Does not return a newer editor draft; requires authentication.
| Argument | Type | Description |
|---|---|---|
| id* | string | Opaque 32-character saved-chart id |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[0-9a-f]{32}$",
"description": "Opaque 32-character saved-chart id"
}
}
}Get complete Szum documents for validation, rendering, or saving, with guidance on when to use each pattern. No filters returns one starter per chart type. Any filter searches the complete catalog; all supplied filters intersect. Most data is illustrative; the Vinyl waterfall cites RIAA reports. Empty matches mean no example satisfies every filter; remove a filter to broaden the search.
| Argument | Type | Description |
|---|---|---|
| purpose | string | Filter by the primary chart question. Distribution means categorical frequencies, not automatic histogram binning. Range means bounded values, time spans, or uncertainty. |
| features | array | Return examples teaching every selected feature. Annotations explain data; references mark fixed values or statistics; ranges encode start/end values; intervals show lower/upper bounds around scatter observations. |
| chart_type | string | Filter examples by chart type |
| example_id | string | Retrieve an exact ID from an earlier example result. Intersects any other supplied filters. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"purpose": {
"enum": [
"comparison",
"change",
"trend",
"composition",
"relationship",
"distribution",
"range"
],
"type": "string",
"description": "Filter by the primary chart question. Distribution means categorical frequencies, not automatic histogram binning. Range means bounded values, time spans, or uncertainty."
},
"features": {
"type": "array",
"items": {
"enum": [
"labels",
"time_scale",
"stacked",
"categorical_color",
"grouped",
"wide_data",
"totals",
"normalized",
"stable_colors",
"count",
"aggregation",
"signed_values",
"ranges",
"log_scale",
"size_encoding",
"sequential_color",
"diverging_color",
"intervals",
"annotations",
"missing_data",
"references",
"sparkline",
"explicit_order"
],
"type": "string"
},
"minItems": 1,
"description": "Return examples teaching every selected feature. Annotations explain data; references mark fixed values or statistics; ranges encode start/end values; intervals show lower/upper bounds around scatter observations."
},
"chart_type": {
"enum": [
"column",
"bar",
"line",
"area",
"scatter",
"pie",
"waterfall"
],
"type": "string",
"description": "Filter examples by chart type"
},
"example_id": {
"type": "string",
"minLength": 1,
"description": "Retrieve an exact ID from an earlier example result. Intersects any other supplied filters."
}
}
}Use this when the Szum chart App needs to restore a rendered preview as its current transient or saved view. It is read-only, owner-scoped when authenticated, and hidden from the model.
| Argument | Type | Description |
|---|---|---|
| previewId* | string | Opaque 16-character chart-preview id |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"previewId"
],
"properties": {
"previewId": {
"type": "string",
"pattern": "^[0-9a-f]{16}$",
"description": "Opaque 16-character chart-preview id"
}
}
}Use this before authoring an unfamiliar field instead of probing validate_chart for errors. Returns the JSON Schema for the whole Szum document, covering config, data, presentation, size, and output, with every referenced definition included. Pass chart_type to keep only that family's config variants; omitting it returns every family and is much larger. Generated value lists are summarized rather than enumerated; validate_chart remains the authority.
| Argument | Type | Description |
|---|---|---|
| chart_type | string | Keep only the config variants for this chart type. Pass it whenever the family is known. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"chart_type": {
"enum": [
"column",
"bar",
"line",
"area",
"scatter",
"pie",
"waterfall"
],
"type": "string",
"description": "Keep only the config variants for this chart type. Pass it whenever the family is known."
}
}
}Use this when choosing a chart family. Returns every current chart type with its shared and family-specific fields.
No arguments.
{
"type": "object",
"properties": {}
}Use this when the user wants to find charts in their saved library. Returns paginated metadata and URLs, not chart documents; requires authentication. Draft-only editor charts have publishedAt null, hasDraft true, and sizeBytes 0 because sizeBytes measures only the stored published document, not draft storage.
| Argument | Type | Description |
|---|---|---|
| q | string | Case-insensitive title substring search; trimmed and limited to 100 characters |
| sort | string | Sort by creation time (default), update time, or title A-Z |
| limit | integer | Page size; defaults to 100 and has a maximum of 1000 |
| author | string | An authorId from a listed chart, or "former" for charts whose author has left the workspace; omit to list every author |
| cursor | string | Opaque nextCursor from the previous page |
| source | any | Filter by one or more chart sources; omit to list all |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"q": {
"type": "string",
"description": "Case-insensitive title substring search; trimmed and limited to 100 characters"
},
"sort": {
"enum": [
"updated",
"created",
"title"
],
"type": "string",
"description": "Sort by creation time (default), update time, or title A-Z"
},
"limit": {
"type": "integer",
"maximum": 1000,
"minimum": 1,
"description": "Page size; defaults to 100 and has a maximum of 1000"
},
"author": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "An authorId from a listed chart, or \"former\" for charts whose author has left the workspace; omit to list every author"
},
"cursor": {
"type": "string",
"description": "Opaque nextCursor from the previous page"
},
"source": {
"anyOf": [
{
"enum": [
"api",
"figma",
"app",
"mcp"
],
"type": "string"
},
{
"type": "array",
"items": {
"enum": [
"api",
"figma",
"app",
"mcp"
],
"type": "string"
},
"minItems": 1
}
],
"description": "Filter by one or more chart sources; omit to list all"
}
}
}Use this when choosing a visual theme for a chart. Returns every built-in theme with guidance on where each works best and, when signed in, the workspace's shared themes.
No arguments.
{
"type": "object",
"properties": {}
}Use this when the user wants to change a saved chart's library title without changing its document, publication state, or public URLs; requires authentication.
| Argument | Type | Description |
|---|---|---|
| id* | string | Opaque 32-character saved-chart id |
| title* | string | New saved-chart title; trimmed and limited to 200 characters |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"id",
"title"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[0-9a-f]{32}$",
"description": "Opaque 32-character saved-chart id"
},
"title": {
"type": "string",
"description": "New saved-chart title; trimmed and limited to 200 characters"
}
}
}Use this when the user wants to preview or generate a chart. Validate each generated or changed chart input once before rendering, saving, or updating. Do not revalidate unchanged input; a successful render preflights it for later saves or updates. Errors block; warnings require explicit user approval for the exact chart input. Rendering may add layout warnings to the semantic findings before an action proceeds. Suggestions do not block. A suggestedDocument is a complete, validated replacement. Review the proposed changes before using it; validate again only if you modify it. Stores a 1 hour preview and returns public image URLs. Authenticated previews use the account's render allowance, and each image produced from a returned URL is another render. Anonymous previews are complimentary; their images use the anonymous image allowance.
| Argument | Type | Description |
|---|---|---|
| request* | string | Complete current ChartDocument JSON with version, config, and data, plus optional presentation, size, and output. Use the same document for validation, rendering, and saving; version must match config.version. Semantic field roles must match row keys. Chronological annual values use YYYY strings on an explicit UTC scale. Column and bar charts with long, wide, or count values, and all area charts, use linear value scales. Their inferred domains include zero, while an explicit domain excluding zero produces a warning. Base-10 log roles and explicit log domains require positive finite values; use line, scatter, or ranged columns and bars. |
| sharedTheme | string | Name of a shared theme from list_themes' workspaceThemes. The chart uses that theme and stays linked to it, so later edits to the theme reach the chart. When omitted and the document sets neither theme nor themeOverrides, the workspace's default theme applies, if it has one. |
| acknowledgeWarnings | boolean | Set true only after the user explicitly approves every warning returned for this exact request |
Use this when the user wants to permanently save and publish a Szum chart document. Validate each generated or changed chart input once before rendering, saving, or updating. Do not revalidate unchanged input; a successful render preflights it for later saves or updates. Errors block; warnings require explicit user approval for the exact chart input. Rendering may add layout warnings to the semantic findings before an action proceeds. Suggestions do not block. A suggestedDocument is a complete, validated replacement. Review the proposed changes before using it; validate again only if you modify it. Supply one idempotencyKey per intended chart and reuse it for retries. Returns permanent public Image and Embed URLs plus Edit and Studio links; requires authentication and saved-chart storage.
| Argument | Type | Description |
|---|---|---|
| document* | string | Complete current ChartDocument JSON with version, config, and data, plus optional presentation, size, and output. Use the same document for validation, rendering, and saving; version must match config.version. Semantic field roles must match row keys. Chronological annual values use YYYY strings on an explicit UTC scale. Column and bar charts with long, wide, or count values, and all area charts, use linear value scales. Their inferred domains include zero, while an explicit domain excluding zero produces a warning. Base-10 log roles and explicit log domains require positive finite values; use line, scatter, or ranged columns and bars. |
| sharedTheme | string | Name of a shared theme from list_themes' workspaceThemes. The chart uses that theme and stays linked to it, so later edits to the theme reach the chart. When omitted and the document sets neither theme nor themeOverrides, the workspace's default theme applies, if it has one. |
| acceptLosses | array | Compatibility loss codes explicitly accepted by the user for this save |
Use this when the user wants to replace and publish a saved chart's document while keeping its id and URLs. Validate each generated or changed chart input once before rendering, saving, or updating. Do not revalidate unchanged input; a successful render preflights it for later saves or updates. Errors block; warnings require explicit user approval for the exact chart input. Rendering may add layout warnings to the semantic findings before an action proceeds. Suggestions do not block. A suggestedDocument is a complete, validated replacement. Review the proposed changes before using it; validate again only if you modify it. Refuses charts with unpublished editor changes; requires authentication and saved-chart storage.
| Argument | Type | Description |
|---|---|---|
| id* | string | Opaque 32-character saved-chart id |
| title | string | Library title; omit to keep a renamed title, while a title that still follows the document follows the new one; an empty title follows the document |
| document* | string | Complete current ChartDocument JSON with version, config, and data, plus optional presentation, size, and output. Use the same document for validation, rendering, and saving; version must match config.version. Semantic field roles must match row keys. Chronological annual values use YYYY strings on an explicit UTC scale. Column and bar charts with long, wide, or count values, and all area charts, use linear value scales. Their inferred domains include zero, while an explicit domain excluding zero produces a warning. Base-10 log roles and explicit log domains require positive finite values; use line, scatter, or ranged columns and bars. |
Use this when a chart request or document will be rendered, saved, or updated. Validate each generated or changed chart input once before rendering, saving, or updating. Do not revalidate unchanged input; a successful render preflights it for later saves or updates. Errors block; warnings require explicit user approval for the exact chart input. Rendering may add layout warnings to the semantic findings before an action proceeds. Suggestions do not block. A suggestedDocument is a complete, validated replacement. Review the proposed changes before using it; validate again only if you modify it. Read-only, free, and fast.
| Argument | Type | Description |
|---|---|---|
| chart* | string | Complete current ChartDocument JSON with version, config, and data, plus optional presentation, size, and output. Use the same document for validation, rendering, and saving; version must match config.version. Semantic field roles must match row keys. Chronological annual values use YYYY strings on an explicit UTC scale. Column and bar charts with long, wide, or count values, and all area charts, use linear value scales. Their inferred domains include zero, while an explicit domain excluding zero produces a warning. Base-10 log roles and explicit log domains require positive finite values; use line, scatter, or ranged columns and bars. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"chart"
],
"properties": {
"chart": {
"type": "string",
"description": "Complete current ChartDocument JSON with version, config, and data, plus optional presentation, size, and output. Use the same document for validation, rendering, and saving; version must match config.version. Semantic field roles must match row keys. Chronological annual values use YYYY strings on an explicit UTC scale. Column and bar charts with long, wide, or count values, and all area charts, use linear value scales. Their inferred domains include zero, while an explicit domain excluding zero produces a warning. Base-10 log roles and explicit log domains require positive finite values; use line, scatter, or ranged columns and bars."
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"request"
],
"properties": {
"request": {
"type": "string",
"description": "Complete current ChartDocument JSON with version, config, and data, plus optional presentation, size, and output. Use the same document for validation, rendering, and saving; version must match config.version. Semantic field roles must match row keys. Chronological annual values use YYYY strings on an explicit UTC scale. Column and bar charts with long, wide, or count values, and all area charts, use linear value scales. Their inferred domains include zero, while an explicit domain excluding zero produces a warning. Base-10 log roles and explicit log domains require positive finite values; use line, scatter, or ranged columns and bars."
},
"sharedTheme": {
"type": "string",
"minLength": 1,
"description": "Name of a shared theme from list_themes' workspaceThemes. The chart uses that theme and stays linked to it, so later edits to the theme reach the chart. When omitted and the document sets neither theme nor themeOverrides, the workspace's default theme applies, if it has one."
},
"acknowledgeWarnings": {
"type": "boolean",
"description": "Set true only after the user explicitly approves every warning returned for this exact request"
}
}
}| idempotencyKey | string | Stable retry key of at most 255 characters; reuse only for the exact same document |
| acknowledgeWarnings | boolean | Set true only after the user explicitly approves every warning returned for this exact document |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"document"
],
"properties": {
"document": {
"type": "string",
"description": "Complete current ChartDocument JSON with version, config, and data, plus optional presentation, size, and output. Use the same document for validation, rendering, and saving; version must match config.version. Semantic field roles must match row keys. Chronological annual values use YYYY strings on an explicit UTC scale. Column and bar charts with long, wide, or count values, and all area charts, use linear value scales. Their inferred domains include zero, while an explicit domain excluding zero produces a warning. Base-10 log roles and explicit log domains require positive finite values; use line, scatter, or ranged columns and bars."
},
"sharedTheme": {
"type": "string",
"minLength": 1,
"description": "Name of a shared theme from list_themes' workspaceThemes. The chart uses that theme and stays linked to it, so later edits to the theme reach the chart. When omitted and the document sets neither theme nor themeOverrides, the workspace's default theme applies, if it has one."
},
"acceptLosses": {
"type": "array",
"items": {
"type": "string"
},
"description": "Compatibility loss codes explicitly accepted by the user for this save"
},
"idempotencyKey": {
"type": "string",
"maxLength": 255,
"minLength": 1,
"description": "Stable retry key of at most 255 characters; reuse only for the exact same document"
},
"acknowledgeWarnings": {
"type": "boolean",
"description": "Set true only after the user explicitly approves every warning returned for this exact document"
}
}
}| sharedTheme |
| any |
| Name of a shared theme from list_themes' workspaceThemes. The chart uses that theme and stays linked to it, so later edits to the theme reach the chart. When omitted, the chart keeps its current link unless the document sets a different theme of its own. Pass null to keep the document's own theme and end the link. |
| acceptLosses | array | Compatibility loss codes explicitly accepted by the user for this update |
| acknowledgeWarnings | boolean | Set true only after the user explicitly approves every warning returned for this exact document |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"id",
"document"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[0-9a-f]{32}$",
"description": "Opaque 32-character saved-chart id"
},
"title": {
"type": "string",
"description": "Library title; omit to keep a renamed title, while a title that still follows the document follows the new one; an empty title follows the document"
},
"document": {
"type": "string",
"description": "Complete current ChartDocument JSON with version, config, and data, plus optional presentation, size, and output. Use the same document for validation, rendering, and saving; version must match config.version. Semantic field roles must match row keys. Chronological annual values use YYYY strings on an explicit UTC scale. Column and bar charts with long, wide, or count values, and all area charts, use linear value scales. Their inferred domains include zero, while an explicit domain excluding zero produces a warning. Base-10 log roles and explicit log domains require positive finite values; use line, scatter, or ranged columns and bars."
},
"sharedTheme": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"description": "Name of one of the workspace's shared themes"
},
{
"type": "null"
}
],
"description": "Name of a shared theme from list_themes' workspaceThemes. The chart uses that theme and stays linked to it, so later edits to the theme reach the chart. When omitted, the chart keeps its current link unless the document sets a different theme of its own. Pass null to keep the document's own theme and end the link."
},
"acceptLosses": {
"type": "array",
"items": {
"type": "string"
},
"description": "Compatibility loss codes explicitly accepted by the user for this update"
},
"acknowledgeWarnings": {
"type": "boolean",
"description": "Set true only after the user explicitly approves every warning returned for this exact document"
}
}
}