Config is the same across clients — only the file and path differ.
{
"mcpServers": {
"jsoncanvas": {
"env": {
"OUTPUT_PATH": "/data/output"
},
"args": [
"run",
"-i",
"--rm",
"-v",
"canvas-data:/data",
"mcp/jsoncanvas"
],
"command": "docker"
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
A Model Context Protocol (MCP) server implementation that provides tools for working with JSON Canvas files according to the official specification. This server enables creating, modifying, and validating infinite canvas data structures.
No automated test available for this server. Check the GitHub README for setup instructions.
Five weighted categories — click any category to see the underlying evidence.
No known CVEs.
No package registry to scan.
Click any tool to inspect its schema.
canvas://schemaJSON Schema for validating canvas files.
canvas://schema
canvas://examples/basicA simple example canvas (two text nodes joined by an edge).
canvas://examples/basic
ui://canvas/viewer.htmlThe interactive canvas viewer (MCP Apps UI), served with MIME type text/html;profile=mcp-app.
ui://canvas/viewer.html
Be the first to review
Have you used this server?
Share your experience — it helps other developers decide.
Sign in to write a review.
Others in design / productivity
Persistent memory using a knowledge graph
Dynamic problem-solving through sequential thought chains
MCP server for accessing Figma plugin console logs and screenshots via Cloudflare Workers or local mode
mini cli search engine for your docs, knowledge bases, meeting notes, whatever. Tracking current sota approaches while being all local
MCP Security Weekly
Get CVE alerts and security updates for Mcp Server Obsidian Jsoncanvas and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
A Model Context Protocol (MCP) server for working with
JSON Canvas files — the open infinite-canvas format used
by Obsidian. It lets an MCP client create, validate,
read, and list .canvas files.
Built on the official mcp Python SDK (>=1.27), which negotiates the 2025-11-25 MCP
protocol revision. Runs over stdio by default and optionally over the Streamable HTTP
transport.
Hosts that support the MCP Apps UI extension render an interactive canvas viewer inline when you read or create a canvas — a pan/zoom, Obsidian-style preview of the nodes and edges. Text-only clients are unaffected and keep receiving the canvas as text/structured output.
nodes (and optional edges) and write it to a
date-prefixed .canvas file under OUTPUT_PATH.
nodes (array of JSON Canvas node objects), filename (string, no extension),
edges (optional array of edge objects).{ path, node_count, edge_count }.canvas (object with optional nodes and edges).{ valid, error }..canvas file and return its nodes and edges.
filename (string, with or without the .canvas extension).{ nodes, edges } (also rendered by the canvas viewer; text
fallback is the canvas JSON)..canvas files available in OUTPUT_PATH.
filename, plus optional add_nodes, update_nodes (partial, must include id),
remove_node_ids (cascades connected edges), add_edges, update_edges, remove_edge_ids.{ path, node_count, edge_count, canvas } — the updated canvas, so
UI-capable hosts re-render it inline.filename, format (markdown | svg).{ format, mime_type, content }. Markdown is an edge-ordered outline;
SVG is a standalone vector image (node title lines only — plain SVG can't render Markdown).query, optional filename to scope to one canvas.{ matches: [{ filename, kind, id, field, snippet }] }.create_canvas, read_canvas, and edit_canvas are linked to the canvas viewer via
_meta.ui.resourceUri, so UI-capable hosts render the result inline.
Node objects use the JSON Canvas shape: id, type (text | file | link | group),
x, y, width, height, optional color, plus type-specific fields (text, file/subpath,
url, label/background/backgroundStyle). Edge objects use id, fromNode, toNode, and
optional fromSide/toSide/fromEnd/toEnd/color/label.
canvas://schema — JSON Schema for validating canvas files.canvas://examples/basic — A simple example canvas (two text nodes joined by an edge).ui://canvas/viewer.html — The interactive canvas viewer (MCP Apps UI), served with MIME
type text/html;profile=mcp-app. Referenced by create_canvas and read_canvas.The viewer is a single self-contained HTML bundle built from the ui/ source with Vite
and the official @modelcontextprotocol/ext-apps
client. It renders nodes (with markdown, colors, and groups) and edges (sides, arrows