MCP Server

Graph Paper

io.graph-paper/graph-paper
Data & Analytics Public & reachable MCP 2025-11-25

What this MCP does

Validates Graph Paper plot documents and generates links to open them as editable charts.

get_plot_format
Read the plot document format
Return the reference of the Graph Paper plot document format, as Markdown: every field of a plot document, the series types, the limits, and complete examples. Give section to get one section only (a heading of the page, such as "Variables" or "2D Series Types"); an unknown section returns the list of headings. Read it before you write a document for make_plot_link.
Read only Idempotent
Input schema
{'type': 'object', 'properties': {'section': {'type': 'string', 'description': 'A heading of the format page. Leave it out for the whole page.'}}, 'additionalProperties': False}
list_examples
List example plot documents
Return the example plot documents of the Graph Paper format page, each with its title and its JSON. Each one is a valid document that make_plot_link accepts; start from the one closest to what you want.
Read only Idempotent
Input schema
{'type': 'object', 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['examples'], 'properties': {'examples': {'type': 'array', 'items': {'type': 'object', 'required': ['title', 'document'], 'properties': {'title': {'type': 'string', 'description': 'The heading the example is under.'}, 'document': {'type': 'object'}}}}}}
make_plot_link
Make a Graph Paper link
Check a Graph Paper plot document and return the link that opens it. The link opens the plot as an editable draft in Graph Paper (https://graph-paper.io); the reader needs no account. Give the document as a JSON object in the format of get_plot_format. If the document has errors, the result lists each one with the path of the field and what to change, and no link; fix them and call the tool again. Warnings name the keys that were ignored.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['document'], 'properties': {'document': {'type': 'object', 'description': 'The plot document: a JSON object with at least "title" and "series". See get_plot_format and list_examples.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['ok', 'warnings'], 'properties': {'ok': {'type': 'boolean', 'description': 'True when the document is valid and url is given.'}, 'url': {'type': 'string', 'description': 'The link that opens the document.'}, 'note': {'type': 'string', 'description': 'With ok true: what the check did not do. The formulas were not computed.'}, 'rows': {'type': 'object', 'properties': {'points': {'type': 'integer'}, 'series': {'type': 'integer'}, 'actions': {'type': 'integer'}, 'markers': {'type': 'integer'}, 'variables': {'type': 'integer'}, 'definitions': {'type': 'integer'}}, 'description': 'How many rows of each kind the document has.'}, 'title': {'type': 'string'}, 'errors': {'type': 'array', 'items': {'type': 'object', 'required': ['path', 'message'], 'properties': {'path': {'type': 'string', 'description': 'The field, in JSON path notation such as "series[0].fn"; empty for the whole document.'}, 'message': {'type': 'string'}}}}, 'category': {'enum': ['2d', '3d', 'data'], 'type': 'string'}, 'warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['path', 'message'], 'properties': {'path': {'type': 'string', 'description': 'The field, in JSON path notation such as "series[0].fn"; empty for the whole document.'}, 'message': {'type': 'string'}}}}, 'dimension': {'enum': [2, 3], 'type': 'integer'}}}
Added
list_examples
Oct. 2, 2026, 2:40 a.m.
Added
get_plot_format
Oct. 2, 2026, 2:40 a.m.
Added
make_plot_link
Oct. 2, 2026, 2:40 a.m.