MCP.so
Sign In

Overview

What is JSON Canvas MCP Server?

An MCP (Model Context Protocol) server for working with JSON Canvas files (.canvas), the open infinite-canvas format used by Obsidian. It allows an MCP client to create, validate, read, list, edit, export, and search canvas files. Built on the mcp Python SDK (>=1.27) and runs over stdio or Streamable HTTP transport.

How to use JSON Canvas MCP Server?

Install via Docker or uv. Configure the server with environment variables (e.g., OUTPUT_PATH). Invoke with mcp-server-jsoncanvas. Integrate with Claude Desktop by adding a stanza to claude_desktop_config.json (see examples for Docker and uv). The server can also be used as a Python library via the jsoncanvas package.

Key features of JSON Canvas MCP Server

  • Five tools: create_canvas, validate_canvas, read_canvas, list_canvases, edit_canvas, export_canvas, search_canvases
  • Interactive canvas viewer (MCP Apps UI) for UI-capable hosts
  • Export canvases to Markdown (edge-ordered outline) or SVG (vector image)
  • Atomic edit operations (add/update/remove nodes and edges)
  • Case-insensitive substring search across stored canvases

Use cases of JSON Canvas MCP Server

  • Creating and saving structured infinite canvas files from AI conversations
  • Validating canvas data against the JSON Canvas 1.0 specification
  • Reading and editing existing canvases programmatically
  • Searching across multiple canvases for specific content
  • Exporting canvases as Markdown outlines or SVG images

FAQ from JSON Canvas MCP Server

What transports does the server support?

It supports stdio (default) and Streamable HTTP. Set MCP_TRANSPORT environment variable or use the --transport streamable-http command-line flag.

How do I configure the server?

Set the OUTPUT_PATH environment variable to the directory where .canvas files are stored (default ./output). For HTTP transport, optionally set MCP_HOST, MCP_PORT, and MCP_CORS_ORIGINS.

Can I use the server as a Python library?

Yes. The jsoncanvas package can be imported directly to create Canvas objects, add nodes/edges, and serialize to JSON.

Is the HTTP transport secure?

No. It is unauthenticated and intended for local use only. The server binds to 127.0.0.1 by default and rejects non-localhost Host/Origin headers. For remote access, front it with an authenticating reverse proxy.

Does the interactive canvas viewer require a UI?

Only MCP hosts that support the MCP Apps UI extension can render the interactive canvas viewer. Text-only clients receive canvas data as structured output.

Tags

More from Memory & Knowledge