Last updated: March 7, 2026
Connect OmniCanvas to AI assistants like Claude Desktop, Cursor, Windsurf, and any MCP-compatible client. Available on the Power plan.
The Model Context Protocol is an open standard that lets AI assistants securely access your tools and data. With OmniCanvas's MCP server, your AI assistant can read, create, search, and organize your notes — all with your explicit permission on every action.
Or configure it manually — add this to your client's MCP config:
{
"mcpServers": {
"omnicanvas": {
"url": "https://app.omnicanvasnotes.com/api/v1/mcp",
"headers": {
"Authorization": "Bearer pk_live_your_key_here"
}
}
}
}Open Settings → Developer → Edit Config and paste the configuration above into your claude_desktop_config.json. Restart Claude Desktop.
Add to your project's .mcp.json or global ~/.claude/settings.json under the mcpServers key.
Go to Settings → MCP and add a new server. Use the URL and Authorization header from the config above.
Any client that supports the MCP 2025-03-26 spec with Streamable HTTP transport will work. Point it at https://app.omnicanvasnotes.com/api/v1/mcp with your API key as a Bearer token.
Your AI assistant can use 14 tools to interact with your notes. Here's what each one does:
list_notesList your notes with optional filtering by tag, folder, or search query.
| Parameter | Type | Description |
|---|---|---|
| tag | string | Filter by tag |
| folderId | string | Filter by folder |
| search | string | Search titles and OCR text |
| limit | integer | Max results (1–100, default 50) |
| offset | integer | Skip N results |
get_noteGet a note by ID with full content including canvas data, tags, and folders.
| Parameter | Type | Description |
|---|---|---|
| id* | string | Note ID |
| includeCanvas | boolean | Include canvas data (default true) |
create_noteCreate a new note with optional title, tags, folders, and canvas data.
| Parameter | Type | Description |
|---|---|---|
| title | string | Note title |
| tags | string[] | Tags to apply |
| folderIds | string[] | Folders to add the note to |
| canvasData | object | Excalidraw canvas JSON |
update_noteUpdate a note. Only provided fields are changed. Tags and folders replace existing values.
| Parameter | Type | Description |
|---|---|---|
| id* | string | Note ID |
| title | string | New title |
| tags | string[] | New tags (replaces all) |
| folderIds | string[] | New folders (replaces all) |
| isPinned | boolean | Pin or unpin |
delete_noteSoft delete a note (moves to trash). Pass permanent=true to permanently delete.
| Parameter | Type | Description |
|---|---|---|
| id* | string | Note ID |
| permanent | boolean | Permanently delete (default false) |
list_foldersList all your folders with note counts.
create_folderCreate a new folder, optionally nested inside another.
| Parameter | Type | Description |
|---|---|---|
| name* | string | Folder name |
| parentId | string | Parent folder for nesting |
search_notesFull-text search across note titles and OCR text. Returns excerpts with matching context.
| Parameter | Type | Description |
|---|---|---|
| q* | string | Search query (min 2 chars) |
| limit | integer | Max results (default 20) |
list_tagsList all tags across your notes, sorted by usage frequency.
export_noteExport a note as full Excalidraw JSON without size limits.
| Parameter | Type | Description |
|---|---|---|
| id* | string | Note ID |
list_versionsList version history for a note (12-month retention on Power plan).
| Parameter | Type | Description |
|---|---|---|
| noteId* | string | Note ID |
restore_versionRestore a note to a previous version. Current state is auto-saved first.
| Parameter | Type | Description |
|---|---|---|
| noteId* | string | Note ID |
| versionId* | string | Version ID to restore |
clip_urlClip a web page or YouTube video. Extracts title, content, and optional transcript. YouTube URLs are auto-detected.
| Parameter | Type | Description |
|---|---|---|
| url* | string | URL to clip |
| mode | string | "visual" (screenshot + text) or "text" (default) |
| includeTranscript | boolean | Fetch YouTube transcript (quota-limited) |
youtube_transcriptFetch the transcript for a YouTube video. Quota-limited per month.
| Parameter | Type | Description |
|---|---|---|
| videoId* | string | YouTube video ID (11 characters) |
MCP resources let your AI assistant read structured data from your account:
note://{id} — full note content with metadatafolder://{id} — folder details with its note listtags://all — all your tags with usage countsOnce connected, you can ask your AI assistant things like:
export_note for the full fileYour API key is hashed (SHA-256) before storage — we never store the raw key. Each request is authenticated and scoped to your account only. You can revoke keys instantly in Settings. The MCP server uses Streamable HTTP transport over HTTPS.