Skip to main content
Glama
skundu42

infinite-canvas

by skundu42

Infinite Canvas — A live spatial board for AI and people

An AI-assisted freeform canvas for mind maps, architecture diagrams, research boards, project plans, customer journeys, and agent designs. Models and browser users edit the same positioned cards and connections incrementally—without generating Mermaid source.

Features

  • Shared live board — MCP tools and the browser edit the same canvas

  • Freeform cards — create, select, edit, drag, and move cards with the keyboard

  • Directed connections — link cards with optional labels

  • Canvas navigation — pan, zoom, and reset the viewport

  • Live synchronization — browser polling picks up model changes once per second

  • Portable exports — download editable JSON or standalone SVG

  • Dependency-free UI — the browser editor is plain HTML, CSS, and JavaScript

Related MCP server: @kamiazya/whiteboard-mcp

Tools

Tool

Description

get_canvas

Return a canvas's revision, positioned cards, and connections

add_node

Add a card, creating a canvas when canvas_id is omitted

update_node

Patch selected card fields or its position

connect_nodes

Add an optionally labeled, directed connection

export_canvas

Export editable JSON or standalone SVG

How it works

Start a board by calling add_node without a canvas_id. The result includes the generated canvas ID. Open the corresponding browser board and pass that ID to later tool calls:

https://YOUR_HOST/?canvas=CANVAS_ID

The MCP endpoint is:

https://YOUR_HOST/mcp

Infinite Canvas is a standalone collaborative browser experience, not an embedded MCP App widget.

Local development

Requires Python 3.11 or newer.

git clone https://github.com/skundu42/infinite-canvas.git
cd infinite-canvas
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
python server.py

Open the canvas at http://localhost:8000. Visit http://localhost:8000/mcp in a browser for the connection guide, or use that same URL in an MCP client.

Run the test suite:

python -m unittest -v

HOST and PORT override the default 0.0.0.0:8000 listener.

Deploy to Manufact

Install the Manufact GitHub App for this repository, then deploy from the project directory:

npx mcp-use login
npx mcp-use deploy --name infinite-canvas --start-command "python server.py" --open

Once the deployment is running, copy its generated MCP URL from the Manufact dashboard.

Setup on ChatGPT

  1. Open Settings > Apps and Connectors > Advanced Settings and enable Developer Mode

  2. Go to Connectors > Create, name it "Infinite Canvas," and paste the hosted /mcp URL

  3. In a new chat, click + > More and select the Infinite Canvas connector

Setup on Claude

  1. Open Settings > Connectors > Add custom connector

  2. Paste the hosted /mcp URL and save

  3. The Infinite Canvas tools will be available in new conversations

Built with

  • mcp-use — MCP server framework

  • Python standard library — canvas state, validation, JSON, and SVG generation

  • Plain HTML, CSS, and JavaScript — browser canvas

Current limits

State is intentionally process-local and resets when the server restarts. Canvas IDs isolate boards within one process, but this template does not provide authentication, durable storage, deletion, or multi-worker synchronization.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/skundu42/infinite-canvas'

If you have feedback or need assistance with the MCP directory API, please join our Discord server