home / mcp / json canvas mcp server

JSON Canvas MCP Server

Provides a complete MCP server for creating, validating, and exporting JSON Canvas canvases with node/edge management and canvas validation.

Installation
Add the following to your MCP client configuration file.

Configuration

View docs
{
  "mcpServers": {
    "cam10001110101-mcp-server-obsidian-jsoncanvas": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-v",
        "canvas-data:/data",
        "mcp/jsoncanvas"
      ],
      "env": {
        "FORMAT": "json",
        "OUTPUT_PATH": "\\/data\\/output"
      }
    }
  }
}

You can run a JSON Canvas MCP Server to create, modify, validate, and export infinite canvas data structures. This server exposes a complete implementation of the JSON Canvas 1.0 spec, enabling you to manage nodes, edges, and canvases with configurable output paths and built‑in validation.

How to use

Connect to the JSON Canvas MCP Server using your MCP client to perform common actions such as creating nodes, connecting edges, validating canvases, and exporting in multiple formats. You can run the server locally or via a container, then send requests to manage nodes (create_node, update_node, delete_node), edges (create_edge, update_edge, delete_edge), and canvas operations (validate_canvas, export_canvas). Use these capabilities to build, modify, and verify complex, interconnected canvas structures for dashboards, documentation, or design systems.

How to install

Prerequisites you need installed on your machine before you run the MCP server:

Option A: Docker based deployment (Docker runs the MCP server in a container)

1) Ensure Docker is installed and running on your system. 2) Create a data directory for persistent output if needed. 3) Run the container with the provided command.

# Pull and run the MCP server in Docker
# Your data will be stored in a data volume mounted at /data
# OUTPUT_PATH is exposed as /data/output inside the container

# Command to run
docker run -i --rm -v canvas-data:/data mcp/jsoncanvas

Option B: UVX / UV based local run

If you prefer running the server locally without Docker, install the UV runtime and start the MCP server as shown.

# Install UV runtime (example)
curl -LsSf https://astral.sh/uv/install.sh | sh

# Create a virtual environment and install dependencies
uv venv
source .venv/bin/activate
uv pip install -e .

# Run tests (optional)
pytest

# Run the server via UV with your canvas source path
uv run mcp-server-jsoncanvas

Configuration notes

Two environment variables influence how your canvases are saved and exported. OUTPUT_PATH sets the directory for canvas files, and FORMAT defines the default export format.

# Example environment configuration for container or local run
OUTPUT_PATH=/data/output
FORMAT=json

Available tools

create_node

Create a new node of any supported type with common and type-specific properties. Returns the created node object.

update_node

Update properties of an existing node by its ID. Returns the updated node object.

delete_node

Remove a node and its connected edges by node ID. Returns a success confirmation.

create_edge

Create a new edge between two nodes with optional sides, color, and label. Returns the created edge object.

update_edge

Update properties of an existing edge by its ID. Returns the updated edge object.

delete_edge

Remove an edge by its ID. Returns a success confirmation.

validate_canvas

Validate a canvas against the JSON Canvas 1.0 specification. Returns validation results with any errors.

export_canvas

Export a canvas to formats such as json, svg, or png. Returns the exported canvas data.

JSON Canvas MCP Server - cam10001110101/mcp-server-obsidian-jsoncanvas