Skip to main content
Glama

VizCharter

A local MCP server for Claude Code that generates presentation-grade visualizations: cloud architecture diagrams with 1100+ official AWS / GCP / Azure icons, charts and KPI dashboards, poster-style infographics — semantic containers and connectors, auto layout, and multi-format export (SVG, PNG, JPG, vector PDF).

No headless browser. Fully offline after install. Every diagram keeps a re-editable .vizc.json source next to its exports, so "open the Q2 platform diagram and add EventBridge" works months later.

Install

claude mcp add vizcharter -- npx -y vizcharter

Requires Node ≥ 20. Everything (icon packs, fonts, rasterizer) ships in the package.

Related MCP server: software-design-mermaid-mcp

Tools

Tool

Purpose

vizcharter_create

Validate spec → auto-layout (ELK) → render → lint → export. Returns a PNG preview inline so the model can see and iterate.

vizcharter_update

Patch an existing .vizc.json (RFC 7386 merge patch) and re-render in place.

vizcharter_export

Re-export an existing diagram to more formats/scales.

vizcharter_icons

Fuzzy-search the bundled official icon packs ("queue" → SQS…).

vizcharter_themes

List built-in themes or validate custom brand overrides (WCAG-checked).

Spec example

{
  "family": "architecture",
  "title": "Sample Platform",
  "theme": "vizcharter-light",
  "direction": "DOWN",
  "containers": [
    { "id": "edge", "type": "layer", "label": "Presentation Layer" }
  ],
  "nodes": [
    { "id": "cdn", "icon": "aws.cloudfront", "label": "Amazon CloudFront", "parent": "edge" },
    { "id": "fn", "icon": "aws.lambda", "label": "AWS Lambda" }
  ],
  "edges": [
    { "from": "cdn", "to": "fn", "kind": "sync", "label": "invoke" }
  ]
}

Every family also accepts an optional meta footer — { author, org, project, version, date, classification, source, note } — rendered as a slim hairline band with an outlined classification chip. Ask for "authorship / version / confidential marking" and it appears, consistently, in every theme and export format.

Container types (region, account, vpc, subnet, az, layer, group) style themselves per theme — layers rotate through soft pastel tints, VPCs get vendor-convention borders. Edge kinds (sync, async, config, data) get distinct strokes and an auto-generated legend.

See examples/earth2studio.vizc.json for a full reference recreation.

Themes & brand

vizcharter-light (default), vizcharter-dark, aws — palettes fuse a warm house brand (orange #f78c4e, sunburnt red #f66568, washed blue #476b76) with AWS squid ink + Cloudscape blue. Titles and section labels render in Faktum when the brand fonts are installed locally (node scripts/fetch-assets.mjs --brand-fonts — commercial font, gitignored and excluded from the npm package; Inter fallback otherwise). Base themes:

vizcharter-light (default), vizcharter-dark, aws (AWS Architecture Icons group conventions). Custom brand themes via spec.themeOverrides, validated with WCAG contrast checks.

Development

npm install
npm test            # vitest suite (golden files, pixel checks, MCP integration)
npm run build       # tsc → dist/
node scripts/fetch-assets.mjs --icons   # maintainer-only: refresh bundled assets
node scripts/render-example.mjs examples/earth2studio.vizc.json /tmp/out.png

Icon assets are © their respective vendors, redistributed per each provider's architecture-icon usage terms. Fonts: Inter and JetBrains Mono (SIL OFL, licenses bundled).

Spec families

  • architecture — node/container/edge diagrams, ELK auto-layout, official vendor icons.

  • chart — bar (plain/stacked/grouped), line, area, donut, pie, rose, venn (2–3 sets), KPI tile rows.

  • canvas — infographics: poster templates (sectioned-poster, comparison-columns, winding-roadmap, radial-hub — see vizcharter_templates), freeform layers (wrapped text, shapes, icons), embedded chart/architecture specs, and a raw-SVG escape hatch.

Documentation

  • User Guide — install, the six tools, all three spec families with field reference, themes & brand, provenance, exports, lint codes.

  • Contributor Guide — architecture, workflow (tests and eyes on pixels), the gotcha ledger (ELK/resvg/font traps already paid for), how-to recipes.

  • Design spec and implementation plans live in docs/superpowers/.

Roadmap

  • Client-brand theme files (vizcharter.theme.json loading), more canvas templates.

  • PowerPoint-friendly exports; npm publish for npx -y vizcharter.

Available Tools

6 tools
vizcharter_createA

Render a VizCharter diagram from a spec and export it. Returns a PNG preview (look at it and iterate!), written file paths, embed snippets, and lint findings. Spec family 'architecture': { family:'architecture', title?, subtitle?, theme? (vizcharter-light|vizcharter-dark|aws), direction? ('AUTO' default — lays out both ways and keeps the tighter canvas | 'DOWN' | 'RIGHT'), nodes:[{id, icon? (registry id, see vizcharter_icons), label, sublabel?, parent? (container id), pin?:{x,y}}], containers:[{id, type:'region'|'account'|'vpc'|'subnet'|'az'|'layer'|'group', label, parent?}], edges:[{from, to, kind?:'sync'|'async'|'config'|'data', label?}], callouts?:[{n, at}], legend?:boolean }. Layer containers auto-rotate pastel tints; edge kinds get distinct styling and an auto legend. Spec family 'chart': { family:'chart', type:'bar'|'bar-stacked'|'bar-grouped'|'line'|'area'|'donut'|'pie'|'rose'|'venn'|'kpi', title?, theme?, width?, height?, categories?+series? (axis types), slices? (donut/pie/rose), sets?+overlaps? (venn, 2-3 sets), tiles? (kpi: {label, value, delta?, sublabel?}), options?: { showValues?, showLegend?, donutLabel? } } — same design tokens as diagrams. Spec family 'canvas' (infographics/posters): { family:'canvas', theme?, page?:{width,height,background?}, template?:{name, slots} (see vizcharter_templates; auto-sizes the page), layers?:[ {kind:'text', x,y,width?,text,style?,align?} | {kind:'shape', shape:'rect'|'circle'|'line', ...} | {kind:'icon', icon,x,y,size} | {kind:'chart', x,y,spec} | {kind:'arch', x,y,scale?,spec} | {kind:'svg', x,y,content} (raw-SVG escape hatch) ] — embed full chart/architecture specs into posters. ALL families accept an optional meta footer block, rendered as an elegant hairline band: { author?, org?, project?, version?, date?, classification? (outlined chip, e.g. 'Confidential'), source? (attribution line), note? } — use it when the user asks for authorship, versioning, dates, classification, or source attribution on a deliverable. Files land in <out_dir>/diagrams// including the re-editable .vizc.json source.

Inputs: name (required), spec (required), formats, out_dir, +2 more.

vizcharter_exportA

Re-export an existing diagram (.vizc.json source) to additional formats or scales without changing it. Note: new formats are added to the diagram's directory alongside existing exports.

Inputs: formats (required), source_path (required), png_scales.

vizcharter_iconsA

Fuzzy-search the bundled official cloud icon packs — AWS, GCP, and Azure (1100+ icons). Returns icon registry ids (aws.lambda, gcp.bigquery, azure.kubernetes-services, …) to use as node icon values, with vendor category and aliases.

Inputs: query (required), limit.

vizcharter_templatesA

List the canvas poster templates with their slot schemas. Use with spec family 'canvas': { family:'canvas', template: { name, slots } } — the template computes layout and page size; add layers alongside to overlay extra elements.

Inputs: no named parameters.

vizcharter_themesA

List built-in themes, or validate custom theme overrides (pass overrides) against the token schema including WCAG contrast expectations.

Inputs: base, overrides.

vizcharter_updateA

Update an existing diagram from its .vizc.json source. Applies an RFC 7386 JSON merge patch (objects merge recursively, null deletes a key, arrays replace wholesale) or a full replacement, then re-renders and re-exports to the same location. Returns the new preview and lint findings.

Inputs: source_path (required), patch, formats, replace.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4.2/5.0

    Scored across 6 tools

    Disambiguation5/5

    Each tool targets a distinct part of the workflow: create for new diagrams, update for editing existing sources, export for additional formats, and icons/themes/templates for asset lookup. The only mild overlap is that create and update both render and export, but their inputs and intent are clearly separated.

    Naming Consistency4/5

    All tools share the lowercase snake_case 'vizcharter_' prefix and are easy to group. The action tools use verbs while the lookup tools use bare nouns, which is a minor grammatical inconsistency but still predictable and readable.

    Tool Count5/5

    Six tools is a well-scoped size for a diagramming server: three lifecycle operations plus three supporting catalogs. No tool feels redundant or extraneous.

    Completeness4/5

    The core create/update/export lifecycle is covered, and icons, themes, and templates support the main spec families well. There is no delete or discovery tool for existing diagrams, but since create and update return paths and export consumes a known source, this is a workable minor gap.

    Maintenance

    ActivityStale
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables creating interactive data visualizations from natural language queries using DuckDB for local databases or Databricks for enterprise data warehouses. Supports multiple chart types, CSV imports, SQL queries, and automatic statistical analysis through Claude Desktop.
      19
      MIT
    • A
      license
      Not graded
      quality
      B
      maintenance
      Turns raw diagram source text into an interactive SVG rendered directly inline in Claude Desktop conversations, with pan, zoom, fit-to-width, copy-source and fullscreen controls instead of a static code block. It runs as a standalone local stdio server available to every conversation, so any diagram definition can be viewed and explored without leaving the chat.
      63 npm
      MIT