papercanvas-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| --root | Yes | Project directory that all paths must stay inside; passed to papercanvas-mcp as `--root path/to/project`. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| papercanvas_createC | Create a new figure IR file. Returns the path and initial revision. |
| papercanvas_getA | Read the full figure IR (nodes, edges, groups, theme, canvas) plus hard_errors — the list of structural problems that block render/patch. Call this before patching. |
| papercanvas_patchA | Apply a batch of semantic operations in ONE all-or-nothing transaction: add_node, remove_node (+remove_edges:true), update_node, set_style, add_edge, remove_edge, add_group, update_label, move_node. On success the revision increments by 1; on failure nothing changes. Pass expected_revision for optimistic concurrency. |
| papercanvas_layoutA | Arrange nodes (preset: linear-h | linear-v | layered) and commit the coordinates to the IR; revision increments by 1. Cycles are hard errors. |
| papercanvas_renderA | Render the figure to svg / pdf / pptx (a list, e.g. ['svg','pdf','pptx']). Output files are written next to the IR and are true vector + editable. Strictly read-only on the IR. |
| papercanvas_lintA | Run quality checks FC001-FC008 (canvas bounds, structure, text overflow, overlap, font size, arrows through nodes, font substitution, raster images). Returns findings with rule_id/severity/object_id; severity 'error' means fix before delivering. Read-only. |
| papercanvas_inspectA | Inventory of all objects (ids, kinds, labels), or full detail for one object_id (geometry, style, connected edges, groups). Read-only. |
| papercanvas_doctorB | Aggregated quality diagnosis: hard validation, FC001-FC008 lint, font coverage/substitution, renderability per format. Returns findings classified as blocking / advisory / environment, with suggested patches for fixable issues. Read-only. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 8 tools
Most tools have clearly distinct roles: create/get/patch mutate or read the IR, inspect inventories objects, layout arranges nodes, render exports files. The main ambiguity is between doctor and lint, since doctor aggregates lint results along with validation and renderability, and between get and inspect for read operations. Descriptions help, but an agent may still hesitate over doctor vs lint in particular.
All tools use the same papercanvas_ prefix and snake_case convention. The action words are predictable and readable, and there is no mixing of camelCase or unrelated naming styles.
Eight tools is a well-scoped set for a figure IR editor, covering creation, inspection, mutation, layout, quality checks, and rendering. Each tool earns its place without excessive surface area.
The surface covers the core lifecycle: create, read, inspect, patch, layout, lint/diagnose, and render. A dedicated delete/remove-file operation is missing, and theme-level editing is only indirectly covered, but these are minor gaps that agents can work around.