MCP Server

GraphMake

com.graphmake/graphmake
Design & Creative Media & Content Public & reachable MCP 2026-07-28

What this MCP does

Generates PNG and SVG infographics from templates or scripts, including charts, KPI cards, timelines, and maps.

get_template
Get template fields
Read one template: its size, description and every editable text and number, as field keys with their current values (e.g. "w0.text": "Annual Report 2026", "w5.datasets.0.values": [820, 1050]). Copy the keys you want to change into render_template. Set preview to true to also get the template's preview image.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Template id from list_templates.'}, 'preview': {'type': 'boolean', 'description': 'Also return the template preview image (default false).'}}}
Output schema
{'type': 'object', 'required': ['id', 'name', 'category', 'width', 'height', 'description', 'previewUrl', 'fields'], 'properties': {'id': {'type': 'string'}, 'name': {'type': 'string'}, 'width': {'type': 'integer', 'description': 'Canvas width in px.'}, 'fields': {'type': 'array', 'items': {'type': 'object', 'required': ['key', 'widget', 'value'], 'properties': {'key': {'type': 'string', 'description': 'Field key, e.g. "w0.text" or "w5.datasets.0.values".'}, 'value': {'description': 'Current value: text, a number, or a list.'}, 'widget': {'type': 'string', 'description': 'The widget type the field belongs to.'}}}, 'description': 'Every editable text and number. Send changed values to render_template by key.'}, 'height': {'type': 'integer', 'description': 'Canvas height in px.'}, 'category': {'enum': ['business', 'education', 'marketing', 'health', 'technology', 'general'], 'type': 'string'}, 'previewUrl': {'type': 'string', 'description': 'The template preview image.'}, 'description': {'type': 'string'}}}
graphmake_script_reference
GraphMake Script reference
The full GraphMake Script language reference: widgets, charts, themes, sizes and syntax. Read it before writing a script.
Read only Idempotent
Input schema
{'type': 'object', 'properties': {}}
Output schema
{'type': 'object', 'required': ['reference'], 'properties': {'reference': {'type': 'string', 'description': 'The language reference as Markdown.'}}}
list_templates
List templates
List GraphMake's designed infographic templates (id, name, category, size, what it is for). Pass a query such as "sales report", "timeline", "resume" or "comparison" to rank the best matches first. Then call get_template with an id.
Read only Idempotent
Input schema
{'type': 'object', 'properties': {'query': {'type': 'string', 'description': 'Optional words describing the infographic you need.'}, 'category': {'enum': ['business', 'education', 'marketing', 'health', 'technology', 'general'], 'type': 'string', 'description': 'Optional category filter.'}}}
Output schema
{'type': 'object', 'required': ['count', 'templates'], 'properties': {'count': {'type': 'integer'}, 'templates': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name', 'category', 'width', 'height', 'description'], 'properties': {'id': {'type': 'string'}, 'name': {'type': 'string'}, 'width': {'type': 'integer', 'description': 'Canvas width in px.'}, 'height': {'type': 'integer', 'description': 'Canvas height in px.'}, 'category': {'enum': ['business', 'education', 'marketing', 'health', 'technology', 'general'], 'type': 'string'}, 'description': {'type': 'string'}}}, 'description': 'Best match first when a query was given.'}}}
open_in_editor
Open in GraphMake editor
Build a GraphMake editor URL that opens with the script already rendered on the canvas, for when the user wants to hand-edit, restyle or export the infographic.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['script'], 'properties': {'script': {'type': 'string', 'description': 'The GraphMake Script to load.'}}}
Output schema
{'type': 'object', 'required': ['editorUrl'], 'properties': {'editorUrl': {'type': 'string', 'description': 'Opens the result in the free GraphMake editor, where it can be restyled and exported as PNG, SVG or PDF.'}}}
render_infographic
Render infographic
Render GraphMake Script into an infographic image (PNG or SVG). GraphMake Script is a simple line-based syntax: `title "..."`, `kpi "Label" "Value" icon=users`, `bar_chart "T" { Jan: 42\n Feb: 68 }`, `timeline { 2024: "Event" "detail" }`, `style bold`, `row { ... }` for side-by-side blocks, and more. Call graphmake_script_reference first if you have not seen the full syntax. Returns the image and a link that opens it in the GraphMake editor for hand-editing and export. Parse errors name the line, so fix the script and call again.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['script'], 'properties': {'width': {'type': 'number', 'description': 'Optional canvas width in px (max 4000).'}, 'format': {'enum': ['png', 'svg'], 'type': 'string', 'description': 'png (default) returns an image; svg returns the SVG markup as text, ready to save to a file.'}, 'height': {'type': 'number', 'description': 'Optional canvas height in px (max 8000).'}, 'script': {'type': 'string', 'description': 'The GraphMake Script to render.'}}}
Output schema
{'type': 'object', 'required': ['format', 'bytes', 'editorUrl'], 'properties': {'bytes': {'type': 'integer', 'description': 'Size of the PNG or SVG in bytes. The image itself is in the content.'}, 'format': {'enum': ['png', 'svg'], 'type': 'string'}, 'editorUrl': {'type': 'string', 'description': 'Opens the result in the free GraphMake editor, where it can be restyled and exported as PNG, SVG or PDF.'}}}
render_template
Render template
Render a template filled with your content. "changes" maps field keys from get_template to new values: {"w0.text": "Q3 Sales Review", "w5.labels": ["Jul","Aug","Sep"], "w5.datasets.0.values": [42, 51, 63]}. Fields you leave out keep the template's sample content, so replace all of it. To change how many items a list has, replace the whole list (e.g. "w7.values": [{"label": "A", "value": 40}, ...]); each item keeps the colours of the item it replaces. Returns the image and a link that opens the filled template in the GraphMake editor.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Template id from list_templates.'}, 'format': {'enum': ['png', 'svg'], 'type': 'string', 'description': 'png (default) returns an image; svg returns the SVG markup as text.'}, 'changes': {'type': 'object', 'description': 'Field key -> new value, keys from get_template.'}}}
Output schema
{'type': 'object', 'required': ['id', 'name', 'format', 'bytes', 'width', 'editorUrl'], 'properties': {'id': {'type': 'string'}, 'name': {'type': 'string'}, 'bytes': {'type': 'integer', 'description': 'Size of the PNG or SVG in bytes. The image itself is in the content.'}, 'width': {'type': 'integer', 'description': 'Width of the returned image in px (tall templates come back narrower).'}, 'format': {'enum': ['png', 'svg'], 'type': 'string'}, 'editorUrl': {'type': 'string', 'description': 'Opens the result in the free GraphMake editor, where it can be restyled and exported as PNG, SVG or PDF.'}}}
Added
open_in_editor
Oct. 3, 2026, 2:40 a.m.
Added
render_template
Oct. 3, 2026, 2:40 a.m.
Added
get_template
Oct. 3, 2026, 2:40 a.m.
Added
list_templates
Oct. 3, 2026, 2:40 a.m.
Added
graphmake_script_reference
Oct. 3, 2026, 2:40 a.m.
Added
render_infographic
Oct. 3, 2026, 2:40 a.m.