szum

Render chart images from JSON configs with six themes, ten marks, PNG/SVG output.

Documentation

MCP server

Connect ChatGPT, Claude, Cursor, VS Code, and other AI agents to the szum chart design system.

The szum MCP server gives AI agents the shared chart grammar, curated themes, current examples, validation, and rendering tools they need to produce considered charts reliably.

Quick start

Connect your MCP client to:

https://szum.io/mcp

After connecting, ask for a chart in ordinary language:

Show quarterly revenue by region as an editorial bar chart. Cite the source and save the finished chart.

The agent can discover the available marks and themes, build and validate the definition, render a temporary preview, or save permanent image and embed links.

Connect from ChatGPT Desktop

  1. Open ChatGPT Settings, then Plugins.
  2. Select MCP and choose Add server.
  3. Set the server name and change its type to Streamable HTTP.
  4. Paste https://szum.io/mcp and click Save.
  5. Click Authorize and sign in to szum.

These steps use the ChatGPT Desktop plugin flow. Plugin availability can depend on your ChatGPT plan, workspace permissions, and rollout.

Connect from Claude

  1. Open Customize → Connectors in Claude, or Settings → Connectors in Claude Desktop.
  2. Choose Add custom connector.
  3. Set the connector name if requested, then use https://szum.io/mcp as the connector URL.
  4. Add the connector, then click Connect to authorize it.

On Team and Enterprise plans, an Owner must add the custom connector in Organization settings → Connectors before members can connect it.

Connect from Claude Code

  1. Choose a server name, replace SERVER_NAME in the command below, and run it in your terminal.
  2. Open Claude Code and enter /mcp.
  3. Select the server you added and complete the browser authentication flow.
claude mcp add --transport http SERVER_NAME https://szum.io/mcp

Connect from Cursor

  1. Open your global ~/.cursor/mcp.json, or a project's .cursor/mcp.json.
  2. Replace SERVER_NAME with your chosen server name, add the configuration below, and save the file.
  3. Reload Cursor if needed, then complete authentication when Cursor requests it.
{
  "mcpServers": {
    "SERVER_NAME": {
      "type": "http",
      "url": "https://szum.io/mcp"
    }
  }
}

Connect from VS Code

  1. Open the Command Palette and run MCP: Add Server.
  2. Choose HTTP, paste the endpoint, and set the server name.
  3. Choose whether to install it globally or in the current workspace.
  4. Start the server, confirm that you trust it, and complete authorization when prompted.
{
  "servers": {
    "SERVER_NAME": {
      "type": "http",
      "url": "https://szum.io/mcp"
    }
  }
}

Work with charts

NeedToolResult
Preview a chartrender_chartOpen within 10 minutes; a fetched image may remain cached for 1 hour
Keep and share a chartsave_chartPermanent image, embed, editor, and Studio URLs
Find saved chartslist_chartsPaginated chart metadata and URLs from your library
Open a saved chartget_chartMetadata, URLs, and inline display when published
Read its definitionget_chart_configComplete published chart config for inspection or reuse
Replace a saved chartupdate_chartPublished replacement with the same id and URLs
Rename a saved chartrename_chartUpdated library title without changing the config or public URLs
Delete a saved chartdelete_chartPermanent, retry-safe deletion
Check a definition onlyvalidate_chartValidation result without creating an image

save_chart, list_charts, get_chart, get_chart_config, update_chart, rename_chart, and delete_chart require OAuth or an API key. get_chart accepts an id returned by list_charts; it returns the chart object without loading its config and displays the published chart in clients that support MCP Apps. get_chart_config returns the same complete published config as the SDK's charts.getConfig(id). It does not substitute a newer editor draft, and a draft-only chart has no published config. update_chart validates and republishes a replacement config while keeping the chart id and public URLs stable. It refuses the update when unpublished editor changes exist, so it cannot silently discard a newer draft. rename_chart changes only the library title; it does not alter the rendered title inside the config. delete_chart permanently removes one chart and is retry-safe when that chart is already gone. Draft-only and unpublished charts remain available through get_chart as metadata but have no public chart to display.

save_chart returns the saved chart id. Saved MCP charts appear in Studio, where you can preview, edit, rename, share, or delete them. Their image and embed URLs follow the same behavior as other saved charts.

When validation fails, validate_chart returns each issue separately with a path array and message so clients can identify the exact field without parsing the text fallback.

Tools and resources

ToolDescription
render_chartValidate and render a transient chart preview
save_chartSave a permanent, editable chart and return all output URLs
list_chartsFind saved charts by source, title, or recency
get_chartRetrieve and display one saved chart by id
get_chart_configRetrieve one saved chart's complete published config
update_chartReplace and publish a saved config while keeping its URLs
rename_chartChange a saved chart's library title
delete_chartPermanently delete one saved chart
validate_chartCheck a config against the current schema
list_themesList themes and their intended uses
list_marksList mark types, properties, and defaults
get_examplesReturn ready-to-use chart definitions
ResourceDescription
szum://schemaFull JSON Schema for chart definitions
szum://llms-txtAPI and chart-authoring reference

Authentication

No credentials are needed to connect, inspect the design system, validate definitions, or render within the anonymous allowance. OAuth-capable clients can authorize access through your szum account when saving, listing, opening, reading, updating, renaming, or deleting charts from your library, or when anonymous rendering is exhausted.

If a client does not support OAuth, create an API key and send it as a Bearer token:

{
  "mcpServers": {
    "SERVER_NAME": {
      "type": "http",
      "url": "https://szum.io/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  }
}

See Authentication for the complete model.

Usage and billing

OAuth and API-key renders count against the signed-in user's plan limit. Anonymous renders use the IP-based allowance of 250 images per month, shared with keyless GET /chart. Usage is recorded when the returned URL is fetched and the image is produced.

Interactive embeds

Same id as a saved chart, different URL. /e/{id} renders an interactive HTML page – tooltips, legend toggle, responsive.

Figma plugin

Create publication-ready charts from sample data or CSV and insert them as editable semantic layers in Figma.