streamable-httpMITupdated 3mo ago
A remote Model Context Protocol server for working with JSON Canvas files — the open infinite-canvas format used by Obsidian. Create, validate, read, edit, export, and search .canvas files, with an inline interactive canvas viewer.
What can you do with jsoncanvas?
JSON Canvas MCP Server
A remote Model Context Protocol server for working with
JSON Canvas files — the open infinite-canvas format used by
Obsidian. Create, validate, read, edit, export, and
search .canvas files, with an inline interactive canvas viewer.
Hosted by MCPCentral at https://jsoncanvas.mcpcentral.io/mcp
(Streamable HTTP). This repository is the public listing for the
MCP Registry; the server itself is closed-source.
mcp-name: io.mcpcentral/jsoncanvas
Authentication
The endpoint requires Microsoft Entra OAuth via the MCPCentral gateway
(login.mcpcentral.io). MCP clients perform the standard OAuth flow automatically: an
unauthenticated request returns 401 with a WWW-Authenticate pointing at the
RFC 9728 metadata at
/.well-known/oauth-protected-resource, and the client takes you through sign-in. Canvases are
stored privately per authenticated user.
Client configuration
Claude Code
claude mcp add jsoncanvas --transport http https://jsoncanvas.mcpcentral.io/mcp
Claude Desktop / other clients via mcp-remote
{
"mcpServers": {
"jsoncanvas": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://jsoncanvas.mcpcentral.io/mcp"]
}
}
}
Any MCP client that supports remote Streamable HTTP servers with OAuth (Claude, Goose, OpenAI connectors, MCP Inspector) can connect.
Tools
| Tool | Description |
|---|---|
create_canvas |
Create a canvas from nodes (+ optional edges); stored under a date-prefixed .canvas name. |
validate_canvas |
Validate canvas data against the JSON Canvas 1.0 spec. |
read_canvas |
Read a stored canvas and return its nodes and edges. |
list_canvases |
List your stored canvases. |
edit_canvas |
Atomic batch add/update/remove of nodes and edges (removing a node cascades its edges). |
export_canvas |
Export to markdown, svg, mermaid, or png (full-fidelity raster via Browser Rendering). |
search_canvases |
Case-insensitive field-level search across your canvases. |
create_canvas, read_canvas, and edit_canvas carry MCP Apps UI metadata so supporting hosts
render the result inline in an interactive pan/zoom viewer.
Resources
canvas://schema— JSON Schema for canvas files.canvas://examples/basic— a simple two-node example canvas.ui://canvas/viewer.html— the interactive read-only viewer (MCP Apps UI).
Security
- Per-user isolation — every canvas is scoped to the authenticated user; no cross-user reads.
- Auth required — all tool calls require a valid Entra-issued bearer token.
- Hardened — strict input/size caps, bounded search, accurate tool annotations, and an SSRF-blocked PNG renderer (the headless browser cannot be coerced into outbound requests).
- Report vulnerabilities per SECURITY.md. Please do not open public issues for security reports.
License
MIT.
Install
Add jsoncanvas to your client. Pick the one you use.
claude mcp add --transport http jsoncanvas https://jsoncanvas.mcpcentral.io/mcpcodex mcp add jsoncanvas --url https://jsoncanvas.mcpcentral.io/mcp{
"mcpServers": {
"jsoncanvas": {
"url": "https://jsoncanvas.mcpcentral.io/mcp"
}
}
}Add to `~/.cursor/mcp.json`, or `.cursor/mcp.json` for a single project.
{
"servers": {
"jsoncanvas": {
"type": "http",
"url": "https://jsoncanvas.mcpcentral.io/mcp"
}
}
}Add to `.vscode/mcp.json` in your workspace.
{
"mcpServers": {
"jsoncanvas": {
"url": "https://jsoncanvas.mcpcentral.io/mcp"
}
}
}Add to `claude_desktop_config.json`, then restart Claude Desktop.
{
"mcpServers": {
"jsoncanvas": {
"serverUrl": "https://jsoncanvas.mcpcentral.io/mcp"
}
}
}Add to `~/.codeium/windsurf/mcp_config.json`.
7 tools
jsoncanvas exposes 7 tools to a connected agent.
- create_canvas
- Create a canvas from nodes (+ optional edges); stored under a date-prefixed `.canvas` name.
- validate_canvas
- Validate canvas data against the JSON Canvas 1.0 spec.
- read_canvas
- Read a stored canvas and return its nodes and edges.
- list_canvases
- List your stored canvases.
- edit_canvas
- Atomic batch add/update/remove of nodes and edges (removing a node cascades its edges).
- export_canvas
- Export to `markdown`, `svg`, `mermaid`, or `png` (full-fidelity raster via Browser Rendering).
- search_canvases
- Case-insensitive field-level search across your canvases.
Score
72 / 100
Good
- Documentation22/25
- Maintenance13/25
- Trust16/20
- Capability9/15
- Install experience12/15
- Documents what it does and how to connect
- Has a resolvable package or endpoint
- Exposes at least one tool, prompt or resource
- README has substantive content
- Includes a code example
- Documents its configuration
- Mentions credentials or security posture
- Last commit 102 days ago
- Has a release history
- Repository is not archived
- Licensed MIT
- Namespace verified in the official MCP registry
- Claimed by its owner
- Published under an organisation
- 7 tool(s) documented
- Provides prompt templates
- Provides resources
- 6 documented install method(s)
- Published to a package registry
- Offers a hosted endpoint — no local install
Version history
| Versions | Published |
|---|---|
| 0.1.0Latest | May 22, 2026 |