Zero-auth real-time collaborative whiteboard with MCP β AI agents + humans edit the same board live.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste into ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows)
Agent Skills + MCP server discovery for cnvs.app β the free, no-signup real-time collaborative whiteboard. Any AI agent can read, write, draw, diagram, and subscribe to live human edits on a shared canvas, either through the hosted MCP server or the REST fallback.
Works with Claude Code, Claude Desktop, Cursor, OpenCode / OpenAI Codex, Aider (with MCP plugin), any other MCP-speaking client, and Hermes-family agents.
Endpoint: https://cnvs.app/mcp (Streamable HTTP, protocol 2025-06-18, no auth β the board ID is the access key).
Registered in the official MCP Registry as app.cnvs/whiteboard.
open_board, get_board, get_preview, add_text, add_link, add_image, draw_stroke, move, erase, wait_for_update. All ten have 1:1 REST mirrors at https://cnvs.app/api/boards/<id>/β¦ for runtimes that can't speak MCP.cnvs://board/{id}/state.json (full snapshot, subscribable) and cnvs://board/{id}/preview.svg (visual render, subscribable).resources/subscribe supported with notifications/resources/updated pushed over SSE, debounced ~3 s after activity settles./quotas.json, /openapi.json, /llms.txt, /.well-known/mcp.json, /.well-known/mcp/server.json.One-line config β add this to your client's mcpServers object:
Full REST reference: /llms.txt, /openapi.json.
Two related Agent Skills live in this repo, published under the agentskills.io open standard so they work in any compatible runtime. Install them into ~/.claude/skills/ to teach the agent how to use the MCP server well (preview-before-JSON, REST-over-MCP for writes, author-tag conventions, subscription-then-react loop).
cnvs-whiteboard/ β PRIMARYTeaches an AI agent how to collaborate on a cnvs.app board in real time:
Activates on any cnvs.app board reference (URL https://cnvs.app/#<id>, cnvs://board/<id>/..., or a bare board ID) or phrases like "collaborate on / draw / diagram / annotate / watch a shared whiteboard or canvas."
mcp-listen/ β HELPER (v0.3.0)Push-to-model pump for Streamable-HTTP MCP servers with capabilities.resources.subscribe: true. Opens a session, subscribes to the resource URIs the caller hands over, and emits one JSON line per notifications/resources/updated event on stdout β designed to be wrapped by Claude Code's Monitor tool so every server push becomes an in-chat notification (no polling, no log tailing).
Helper-only activation since v0.3. Triggers only when the caller β a user or another skill β has supplied both an MCP server URL and at least one resource URI. Does NOT auto-activate from generic phrasing like "watch this file" or "stay in the loop". cnvs-whiteboard is the canonical caller and delegates its push channel here.
Output split since v0.3. Only the actionable resource_updated event reaches stdout by default. Connection / subscription / heartbeat / transient-error events go to stderr so a wrapping Monitor doesn't fire on the listener's own bookkeeping. Pass --verbose (or -v) to merge everything onto stdout for debugging or single-channel logging (legacy v0.2 behavior).
Registry status. Intentionally not listed in centralised skill registries yet. Current registry pipelines (e.g. majiayu000/claude-skill-registry-core as of 2026-05-03) archive only SKILL.md + generated metadata; they do not mirror bundled scripts/** or package.json, so an entry for mcp-listen would publish a broken skill. It will be (re-)submitted once core registries support directory-style skill archival with bundled-file mirroring and security scanning β see PR majiayu000/claude-skill-registry-core#40 for the directory-archive primitive that just landed and the open question on bundled-script scanning. Until then, install it via curl from cnvs.app (below) or git clone this repo.
Alternatively git clone this repo and cp -r .claude/skills/* ~/.claude/skills/ β the .claude/skills/ directory contains symlinks into cnvs-whiteboard/ and mcp-listen/ for Claude Code's expected layout.
Both skills follow the agentskills.io spec:
name matches the containing directory namedescription under 1024 characters, imperative phrasing, explicit trigger keywordsscripts/ subdirectory for bundled code (mcp-listen)license: MIT, compatibility field declared, cross-references in each skill's "Related skills" section to prevent activation overlapEarlier versions had a single page (/skill-cnvs.md on cnvs.app β now a legacy redirect). Splitting into two coherent units follows the spec's "design coherent units" best practice:
cnvs-whiteboard owns the cnvs.app-specific workflow (read / write / render / gotchas).mcp-listen owns the generic push-to-model pattern (usable against any MCP server).Cross-references keep them pairing cleanly: cnvs-whiteboard mentions mcp-listen as its delegated push channel; mcp-listen mentions cnvs-whiteboard as the companion for cnvs-specific work. No activation overlap in practice.
Skills are also served live at:
https://cnvs.app/cnvs-whiteboard/SKILL.mdhttps://cnvs.app/mcp-listen/SKILL.mdhttps://cnvs.app/mcp-listen/scripts/listen.mjshttps://cnvs.app/mcp-listen/package.jsonThe cnvs.app URLs are the canonical install targets for curl-based installers; this GitHub repo is the reference for aggregators that crawl public sources (skills.sh, etc.) and for users who prefer git clone.
app.cnvs/whiteboard β browse/.well-known/mcp.json β links both skills/.well-known/mcp/server.json β MCP Registry entry with publisher-provided _meta.skills[]/llms.txt β LLM-friendly full referencemajiayu000/claude-skill-registry-core β cnvs-whiteboard listed (PR #31 merged 2026-05-04). mcp-listen intentionally held back; see Registry status on the mcp-listen/ section above.Notes for future expansion of distribution. Not active yet β kept here so the next maintenance window doesn't have to re-discover the landscape.
majiayu000/claude-skill-registry-core β re-submit mcp-listen as a separate PR now that PR #40 (directory archives + bundled-script security scanning) is merged. scripts/listen.mjs is even hardcoded into their test assertions, so the pipeline already exercises our exact case.daymade/claude-code-skills (vendored model) β fork, copy cnvs-whiteboard/ and mcp-listen/ directly into their tree (their layout already expects scripts//references//assets/), update marketplace.json, single PR for both skills. No bundled-files concern because the files are copied in.VoltAgent/awesome-agent-skills (curated awesome-list, 20k β) β markdown link, β€10-word description. Their CONTRIBUTING explicitly excludes brand-new skills ("give your skill time to mature and gain users before submitting"); revisit once there's documented external usage.sickn33/antigravity-awesome-skills (36k β) β manual path: fork, add skills/<name>/SKILL.md, run npm run validate. Their <!-- registry-sync: ... --> header in README suggests automated pull from upstream registries, so a successful entry on majiayu000/claude-skill-registry-core may propagate here without a separate PR β confirm before submitting twice.agentskills/agentskills (17.8k β, the spec org behind agentskills.io) β investigate whether they accept reference implementations; mcp-listen as a worked example of MCP resources/subscribe consumption could fit there.vercel-labs/agent-skills / vercel-labs/skills β almost certainly curated, but read CONTRIBUTING before ruling out.Skipped intentionally: anthropics/skills (curated, no community PRs); personal collections under ~100 β; language-specific lists unless a relevant audience emerges.
MIT. See LICENSE.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/cnvs-app-2)<a href="https://allmcps.com/mcp/cnvs-app-2"><img src="https://allmcps.com/api/badge/cnvs-app-2?style=directory" alt="Cnvs.app on AllMCPs" /></a>