coview

MCP

Coview exposes a remote MCP server for agents that can read, write, inspect, and screenshot canvas documents with the same high-level methods as the Agent API.

Endpoint:

https://coview.dev/mcp

Configure

Register a remote MCP server named coview with this URL:

https://coview.dev/mcp

For Claude Code:

claude mcp add --transport http coview https://coview.dev/mcp

For a generic Streamable HTTP MCP runtime, add a server named coview with URL https://coview.dev/mcp.

For the OpenAI Agents SDK, configure a hosted MCP tool with serverLabel set to coview and serverUrl set to https://coview.dev/mcp.

After connecting, call tools/list. The Coview tool list mirrors the Agent API methods.

Document id

Use the document id from the Coview document URL. In https://coview.dev/d/my-document-id, the documentId is my-document-id.

Use create_document only when you need a fresh document.

Fast flow

  1. Call get_basic_info.
  2. Use get_tree_summary to choose targets.
  3. Inspect specific nodes with get_node.
  4. Create top-level frames with create_artboard.
  5. Create or replace larger sections with write_html.
  6. Refine with update_styles, set_text_content, rename_nodes, duplicate_nodes, move_nodes, or delete_nodes.
  7. Use get_screenshot to check layout, clipping, contrast, and spacing.

For creating or replacing a presentation, use write_html with full HTML frames. Send multiple 1280x720 <section> elements and pass targetNodeId:"root" when replacing the canvas directly. Use mode:"insert-children" to append top-level objects to root or append inside an existing frame/flex-frame.

Do not send raw operation batches through MCP. The document changes API under /api/v1/documents/... is for the Coview app runtime, not agent editing.

Methods

MethodPurpose
get_guideReturn fast workflow and layout guidance.
get_basic_infoReturn document metadata, canvas summary, endpoint URLs, fonts, and guidance.
create_documentCreate a blank document and return its documentId, path, and URL.
update_document_metadataUpdate document-level metadata such as the title.
get_selectionReturn the current selected node, if any.
get_nodeReturn focused geometry, style, text, parent, and child ids for one node or root.
get_childrenList direct children for the root canvas or one node.
get_tree_summaryReturn a compact hierarchy for choosing edit targets.
get_screenshotReturn a PNG for visual verification. The hosted MCP defaults to Browser Rendering; local MCP uses its native PNG renderer. Optional hosted renderer:"fast" returns SVG source, which some vision models cannot display.
get_jsxReturn inline-style JSX for a node.
get_computed_stylesReturn inline style objects for one or more nodes.
get_font_family_infoCheck available font families and weights before styling text.
create_artboardCreate a top-level frame or flex-frame.
write_htmlParse HTML and replace a target node, or insert children when requested.
insert_nodesInsert structured Coview nodes into a parent or as top-level canvas nodes.
update_stylesMerge style properties into nodes.
set_text_contentSet text content for text nodes and convert targets to text when needed.
rename_nodesRename nodes for clearer layer inspection.
duplicate_nodesDuplicate nodes with fresh ids.
move_nodesMove, reparent, or reorder nodes without resizing them.
delete_nodesDelete nodes by id.

HTML authoring

write_html accepts normal HTML fragments or full HTML documents. By default it replaces the selected node or root canvas content when no targetNodeId is passed. Pass targetNodeId to replace a specific node, or pass targetNodeId:"root" to force root canvas replacement even when another node is selected. Replace mode accepts one or more root HTML elements. Use mode:"insert-children" to append top-level objects to root or add nodes inside an existing frame/flex-frame.

Coview preserves normalized CSS intent: property names become camelCase, authored CSS values stay CSS strings, mixed direct text is preserved in flow order, and data-coview-name sets the Coview layer name.

Layout guidance

Coview supports frame, flex-frame, rectangle, text, and image nodes. Prefer flex-frame or normal document flow for padded groups, cards, rows, columns, navs, and repeated content. Use position:absolute only when an element must be placed independently on the artboard.

Live canvas and one-command local app

Open the hosted editor at coview.dev, or install the packaged local app:

npm install -g https://coview.dev/downloads/coview-canvas-0.1.3.tgz
coview
coview connect

The local editor opens empty and saves to .coview/ without an account. coview mcp starts it automatically over stdio; --dir, --port and --no-open are available. The local HTTP MCP also listens at http://127.0.0.1:5183/mcp. Hosted ChatGPT uses https://coview.dev/mcp.

open_canvas returns an MCP App resource (ui://coview/canvas-v2.html) with the live editor. Mutation tools do not remount that view. WebSocket updates and reconnect reconciliation apply changes without a page reload. The view sends document, version and selection context to the host.

Start with get_app_state: document, selection, connected viewers and bounded top-level nodes. Local mode also lists connected documents. Then use targeted reads and batched mutations. get_document_status provides recent persisted operations; it does not prove a viewer has rendered a version. find_empty_space keeps alternatives clear of existing artboards. read_skill provides short task-specific guides; get_style provides six original CSS directions without creating tokens.

The plugin source is in plugins/coview. It preserves the same typed editing tools and document access checks as the web editor. Browser import, linked native components, document tokens, path editing and generation jobs remain outside the implemented model.

On this page