AI assistants (MCP)
Claude Code and Codex plugins, the 69 drawing tools, and Link agent for working on your open board.
What it is
A companion MCP server exposes SimpleDraw's editing core to Claude Code and Codex: the same drawing session, the same fixed component catalog, the same native-file validation and the same export renderer as the app. An assistant can create a drawing, insert and connect components, edit their properties, render a picture, and export native files, PNG, SVG or PDF. It cannot load arbitrary program types, run domain simulators or run scripts.
Drawings move between the browser and an assistant as native files, or live with Link agent. Drawings the assistant manages live in a workspace on your computer (Beep.SimpleDraw/mcp in your local application data folder), outside the plugin, so they survive updates.
Install the plugins
The distribution simpledraw-plugins-v1.zip holds a Codex package and a Claude Code package backed by the same compiled server and Beep.Skia libraries. Extract it to a permanent directory and run these commands there.
dotnet --list-runtimes must list both Microsoft.NETCore.App 10.x and Microsoft.AspNetCore.App 10.x. Native Skia dependencies must be available on the host; the Windows host is the tested one.Claude Code
claude plugin marketplace add .
claude plugin install simpledraw@beep-tools --scope user
claude plugin list
Codex
codex plugin marketplace add .
codex plugin add simpledraw@beep-tools
codex plugin list
Start a new session, then ask: "Use SimpleDraw to create a connected workflow with Beep.Skia components, render it, and export the native drawing." The included simpledraw skill guides discovery, property editing and revision-safe changes; in Claude Code it is /simpledraw:simpledraw. Keep the extracted folder for updates. To remove: claude plugin uninstall simpledraw@beep-tools --scope user or codex plugin remove simpledraw@beep-tools.
Standalone server
# stdio (Claude Desktop, Claude Code, Codex)
dotnet <absolute-path>/Beep.SimpleDraw.Mcp.dll --workspace <absolute-workspace-directory>
# one shared process on loopback HTTP
dotnet <absolute-path>/Beep.SimpleDraw.Mcp.dll --http --port 5246 --workspace <directory>
# endpoint: http://127.0.0.1:5246/mcp
claude mcp add --scope user simpledraw -- dotnet <DLL> --workspace <directory>
codex mcp add simpledraw -- dotnet <DLL> --workspace <directory>
For Claude Desktop, merge the mcpServers.simpledraw object from docs/mcp/claude-desktop.json into %APPDATA%/Claude/claude_desktop_config.json. Restart the client or start a new chat to load newly configured tools. The HTTP endpoint accepts only the loopback host and origin.
How an agent works
list_componentsdiscovers the 249 components in 16 families and the seven sketch kinds;describe_componentreturns the exact property contract, defaults, enums and default ports before anything is set.create_drawingorimport_drawingreturns an ID and a revision. Every editing call takes the currentexpectedRevision; on a conflict, read the drawing again and reconsider the edit. This stops Claude, Codex and you from overwriting each other.add_component,add_sketch,add_tableandadd_imagecreate objects at world coordinates; style, text, path, move, resize, group, lock, reorder and delete tools reuse the app's editing and undo.get_portsexposes real port identities;connect_nodesjoins them with Straight, Orthogonal or Curved routing.render_drawingreturns a real inline PNG to the agent;export_drawingwrites native JSON, PNG, SVG, PDF, editable PNG or library files under the workspace.
For ports on flowchart shapes, describe_component shows ShowTopBottomPorts; set it to True for a top-to-bottom flow (see Components and libraries). layout_elements and import_mermaid set it from their direction.
The tools
| Group | Tools |
|---|---|
| Discover and read | list_components, describe_component, list_templates, list_drawings, get_drawing, get_ports, get_connections, find_elements, find_loose_lines, list_pages, list_frames, get_table |
| Create and import | create_drawing, import_drawing, import_mermaid, insert_template, add_component, add_sketch, add_image, add_table, add_next_step, create_frame, add_page |
| Edit objects | set_component_property, set_style, edit_text, set_path, set_link, move_elements, resize_elements, rotate_elements, flip_elements, align_elements, distribute_elements, layout_elements, group_elements, duplicate_elements, reorder_elements, lock_elements, select_elements, delete_elements, set_background, set_viewport |
| Tables | add_table, get_table, set_table_cells, change_table, style_table_cells |
| Connectors and lines | connect_nodes, connect_elements, remove_connection, edit_connector, reconnect_connector, delete_and_reconnect, reset_route, set_line_settings, bind_arrow |
| Pages and frames | switch_page, rename_page, remove_page, order_frames, create_frame, list_pages, list_frames |
| Libraries | save_library_selection, insert_library_entry, import_library, remove_library_entry |
| History | undo, redo |
| Output | render_drawing, export_drawing |
| Live link | link_board, unlink_board |
The complete list is distribution/mcp-plugins/shared/tools.json. Limits are the app's: 2,000 objects across 50 pages, 6 MiB of drawing plus 25 MiB of images, a 32 MiB library of up to 100 entries, exports up to 8192 pixels a side, and 256 drawings in the workspace. Undo, redo, the viewport and the selection are in memory: a restart, or another process's edit, resets stale history.
Link agent: work on your open board
An agent with the SimpleDraw tools can work on your drawing while you watch.
- Ask the agent to link a drawing. It runs
link_boardand gives you an eight-digit code. - Choose Link agent at the top, enter the code within five minutes and choose Link. If the agent offered its own drawing, it opens here (after the usual offer to keep unsaved work); otherwise the agent receives the drawing you have open.
- While linked, each change the agent makes appears on your board as one undo step, and your edits reach the agent. If you both change the drawing at the same moment, the agent's version is shown and Undo brings yours back.
- Agent linked shows the link is on; choose it and Unlink to stop. Everything on the board stays.
127.0.0.1 only, on the first free port of 7248, 17248 and 37248, and answers only the app address the server was started with (--link-origin; the plugins pass https://draw.thetechidea.app). Your browser may ask to let the site reach devices on your network; allow it. Only the tab that saves the drawing can link. Chrome, Edge and Firefox work; Safari cannot link. Without --link-origin, link_board explains that linking is off.