Enterprise Connectors
Canvs logo. Canvs MCP server connector.

Canvs MCP Server

AI-powered diagrams, mind maps, flowcharts on a free unlimited collaborative whiteboard

Tools
6
Last Updated
Jun 14, 2026
Category
all
Enterprise-grade security
SSO & authentication ready
Full governance & audit logs

What is the Canvs MCP Server?

The Canvs MCP server gives AI agents structured, permission-aware access to Canvs through the Model Context Protocol. With 6 pre-built actions, agents can read, create, and update Canvs data on behalf of authorized users.

Willow ships the Canvs MCP server as part of an enterprise control plane. Every call runs behind SSO (Okta, Azure AD), enforces RBAC and least-privilege at runtime, writes to a full audit trail, and integrates with Splunk and Loki for SIEM visibility. Connect from Claude Desktop, Claude Code, Cursor, ChatGPT, VS Code, n8n, or any custom agent. Install once, distribute org-wide, and see exactly how Canvs is being used by every AI agent in your stack.

Tools

get_guide

⚠️ MANDATORY FIRST STEP - Call this tool BEFORE using any other Canvs tools! Returns comprehensive instructions for creating whiteboards: tool selection strategy, iterative workflow, and examples. Following these instructions ensures correct diagrams.

add_elements

Manual fallback for creating canvas and adding elements. ⚠️ IMPORTANT: Call get_guide first and follow its instructions! Use this tool only when the user's request is not a good fit for Mermaid. If the request can be represented in Mermaid, use add_elements_from_mermaid instead. If room_id is NOT provided - creates a NEW canvas and returns url plus room_id. If the user did not explicitly mention an existing board/canvas/room, do NOT ask for a room_id; create a new canvas instead. If a previous Canvs tool result or assistant message in the same conversation contains a room_id, reuse it for follow-up requests like 'add to it' or 'same board'. If you only have a room URL, extract room_id from https://[host]/?room=[room_id] or https://[host]/gdrive?id=[room_id]. If the user refers to a previous board but no usable room_id is available, create a new canvas instead of asking for the URL by default. If room_id IS provided - adds elements to that canvas. If the canvas is displayed as an inline widget in the interface, do NOT include the url in your reply. If no widget is shown, share the url so the user can open the canvas.Use cases: wireframes, UI mockups, freeform illustrations, standalone shapes, and manual layouts that Mermaid does not cover well. Do not use this tool for diagrams that Mermaid can express. Element types: rectangle, ellipse, diamond, arrow, line, freedraw, text, image. Rich text: the text field supports limited HTML for text elements and rectangle/ellipse/diamond shape labels. Supports the rich-text plugin HTML subset: <b>/<strong>, <i>/<em>, <u>, <br>, <div>/<p>, <ul>/<ol>/<li>, <a href>, <font color>, and <span style="color, background/background-color, font-size, font-family">. Use textAlign for left/center/right alignment; avoid unsupported HTML/CSS. TEXT IN SHAPES: use containerId on text element pointing to shape id. ARROWS: Position at EDGE of source shape. Auto-bound within 30px. Colors: strokeColor, backgroundColor (hex).

update_elements

Update elements on a canvas. Requires room_id from a previous Canvs tool result. Pass elements array with id and fields to update. IMPORTANT: in each update object ONLY `id` is required; all other fields are optional patch fields. Include ONLY elements that need changes; elements omitted from the request remain unchanged on the board. Prefer this tool for SMALL edits to existing diagrams (rename/move/restyle a few elements), typically after query_elements.

delete_elements

Delete elements from a canvas. Requires room_id from a previous Canvs tool result. Pass ids array of element IDs to delete.

query_elements

Query elements on a canvas. Requires room_id from a previous Canvs tool result. Returns elements matching optional filters. Use this before update_elements when making small edits to existing diagrams. If no browser has the canvas open, returns an error — ask the user to open the canvas URL in their browser and retry.

add_elements_from_mermaid

Preferred method for creating diagram elements from Mermaid. ⚠️ IMPORTANT: Call get_guide first and follow its instructions! Use this tool for NEW diagrams and LARGE changes to existing diagrams whenever the request can be represented in Mermaid. Prefer translating the request into Mermaid instead of manually recreating it with add_elements. If room_id is NOT provided - creates a NEW canvas and returns url plus room_id. If the user did not explicitly mention an existing board/canvas/room, do NOT ask for a room_id; create a new canvas instead. If a previous Canvs tool result or assistant message in the same conversation contains a room_id, reuse it for follow-up requests like 'add to it' or 'same board'. If you only have a room URL, extract room_id from https://[host]/?room=[room_id] or https://[host]/gdrive?id=[room_id]. If the user refers to a previous board but no usable room_id is available, create a new canvas instead of asking for the URL by default. If room_id IS provided - adds diagram elements to that canvas. If the canvas is displayed as an inline widget in the interface, do NOT include the url in your reply. If no widget is shown, share the url so the user can open the canvas.Supports: flowchart, graph, flowchart-elk, sequenceDiagram, classDiagram, classDiagram-v2, stateDiagram, stateDiagram-v2, erDiagram, journey, gantt, pie, gitGraph, mindmap, timeline, C4Context, C4Container, C4Component, C4Dynamic, C4Deployment, sankey, sankey-beta, quadrantChart, xychart, xychart-beta, requirement, requirementDiagram, kanban, architecture, block, block-beta, packet, packet-beta, radar-beta, treemap, info. Example: "flowchart TD\n A[Start] --> B{Decision}\n B -->|Yes| C[OK]\n B -->|No| D[Cancel]"

Customize Tools

Edit descriptions, modify arguments, select tools, or add new ones

Edit descriptions
Change arguments
Select tools
Create New

Set Up Your Canvs MCP Server in Minutes

Add the following configuration to your MCP client. Authentication is handled via OAuth. Compatible with Claude Desktop, Claude Code, Cursor, ChatGPT, VS Code, n8n, and any MCP-compatible agent.

Claude Desktop

claude_desktop_config.json
{
  "mcpServers": {
    "willow-canvs": {
      "type": "http",
      "url": "https://<org>.mcp-s.com/mcp/mcp/canvs"
    }
  }
}

Cursor

.cursor/mcp.json
{
  "mcpServers": {
    "willow-canvs": {
      "type": "http",
      "url": "https://<org>.mcp-s.com/mcp/mcp/canvs"
    }
  }
}

Claude Code

CLI
claude mcp add willow-canvs --transport http https://<org>.mcp-s.com/mcp/mcp/canvs

n8n

HTTP Request Node
{
  "url": "https://<org>.mcp-s.com/mcp/mcp/canvs",
  "method": "POST"
}

Or click "Install with Willow" above to set up automatically with SSO and RBAC preconfigured.

Enterprise Governance for Canvs

Willow adds the layer Canvs and every other SaaS doesn't ship out of the box: every call runs behind SSO (Okta, Azure AD), enforces RBAC and least-privilege at runtime, writes to full audit logs, and detects shadow AI usage across your stack. One MCP gateway. Any agent. Every tool.

Canvs MCP Server FAQ

What is the Canvs MCP server?

The Canvs MCP server is a Model Context Protocol implementation that lets AI agents like Claude, Cursor, and ChatGPT read and write Canvs data through a standardized interface. Willow hosts and governs this server so enterprises can roll it out without a security review backlog.

How is Willow's Canvs MCP server different from the official one?

The official Canvs MCP server is scoped to a single user's account and does not include enterprise governance. Willow's version adds SSO, RBAC, audit logging, shadow AI detection, and centralized control over which actions agents can take across the entire org.

Which AI clients work with the Canvs MCP server?

Claude Desktop, Claude Code, Cursor, ChatGPT, VS Code with MCP support, n8n, and any custom agent built with OpenAI Agents SDK, LangChain, Vercel AI SDK, or Anthropic SDK.

Is the Canvs MCP server secure? How does Willow handle authentication?

Every call runs behind your existing SSO (Okta, Azure AD). Per-user OAuth scopes the agent to exactly what that user can do in Canvs, nothing more. No credentials reach the LLM. Every action writes to an audit trail.

Can I limit which Canvs actions agents can take?

Yes. Willow lets you scope agents to specific actions, specific projects, or specific environments. Toggle actions on or off in the dashboard, or enforce policy via infrastructure-as-code through GitHub.

How do I detect shadow Canvs MCP servers in my org?

Willow's browser extension and discovery service surface unmanaged MCP servers, skills, and AI agents across the org. If a developer installed an unapproved Canvs MCP locally, you'll see it.

What does the Canvs MCP server cost?

Pricing depends on org size and deployment model (SaaS, dedicated cloud, self-host). See withwillow.ai/pricing or contact sales for a quote.

How do I install the Canvs MCP server with Willow?

Install via the Willow Connect Panel in one click, or paste the JSON snippet above into your Claude Desktop, Cursor, or Claude Code config. SSO and RBAC inherit from your existing Willow setup.

Compare Willow MCP Gateway

See how Willow stacks up against other MCP platforms on governance, security, and enterprise readiness.

Your agents are already in the wild.

Give them a Basecamp. Go from AI chaos to AI work, in minutes.

Canvs MCP Server | Willow