Let an AI drive the editor

OPuller ships a Model Context Protocol (MCP) server. Claude Code, Claude Desktop or any MCP client can read the document, create and edit objects, run every menu command and tool, simulate mouse gestures and look at the result as an image — the same editor you use, driven by an assistant.

Set-up in three steps

  1. Clone the repository, run npm install and npm run dev, and open http://127.0.0.1:5180. The page connects to the local bridge (ws://127.0.0.1:5187) automatically; the status bar shows AI once a server is attached (Window > AI Bridge (MCP) toggles it). The hosted editor at opuller.huhusova67.online connects to the same local bridge.
  2. Register the server with your client. Claude Code picks it up from the repository's .mcp.json; for other clients:
    { "mcpServers": { "opuller": { "command": "node", "args": ["mcp/server.ts"] } } }
    Manual start: npm run mcp (stdio transport, Node ≥ 22.6).
  3. Ask the assistant — for example “Draw a bird from circles, colour it #1da1f2 and show me a screenshot.”

What the tools cover

Create

opuller_create_shape, opuller_create_path, opuller_pen, opuller_pencil, opuller_create_text, opuller_swatches, opuller_fonts, opuller_place_file (PDF / AI / EPS / SVG / images), opuller_place_svg.

Edit

opuller_update_nodes (fill, stroke, opacity, effects), opuller_transform (angles counter-clockwise, scale strokes / effects / corners), opuller_align, opuller_set_bounds, opuller_set_path_data, opuller_pathfinder, opuller_offset_path, opuller_simplify, opuller_corners (live corners), opuller_effect (Zig Zag, Pucker & Bloat, Roughen, Transform, Tweak, Warp, Round Corners…), opuller_blend, opuller_group, opuller_arrange.

Features

opuller_symbols, opuller_brushes, opuller_patterns, opuller_gradients, opuller_livepaint, opuller_graphs, opuller_perspective, opuller_liquify, opuller_image_trace.

Drive the UI

opuller_run_command for every menu item, opuller_set_tool, opuller_gesture and opuller_click for mouse input in world coordinates, opuller_key, opuller_type_text.

See & export

opuller_screenshot, opuller_render_png, opuller_export_svg, opuller_export_file (SVG / PDF / EPS / AI with bleed and marks), opuller_save_project.

Inspect

opuller_status, opuller_get_document, opuller_get_tree, opuller_find_nodes, opuller_list_tools, opuller_list_commands, opuller_history, opuller_undo.

Every editing call is one undo step. Command-line helpers: npm run mcp:smoke runs an end-to-end check and node mcp/call.ts <tool> '<json>' calls one tool. The same API is available in the browser console as window.__opuller.mcp.

How it stays local

The MCP server listens on 127.0.0.1 only and accepts editor connections solely from OPuller's own origins (the dev server and the hosted site). Nothing leaves your machine: the assistant talks to the server over stdio, the server talks to the editor tab over a loopback WebSocket, and your documents stay in the browser. The hosted site runs under a strict Content-Security-Policy, so the free-form opuller_eval tool is available only with the dev server — every other tool works with both.

Try it yourself

Open the editor, then connect an MCP client — or just draw.

Open OPuller