create_object
SPATIAL: x,y is the top-left corner, not center. Space objects ≥250px center-to-center (≥400px with labeled connectors). Frames need zIndex: -1 and explicit childrenIds. Call get_instructions for full sizing rules.
Create a canvas object on the connected board. Valid types: sticky, shape, text, frame, connector, presentation, group, mindmap-root, mindmap-topic, mindmap-subtopic, mindmap-branch, callout, image. Position (x, y) is auto-assigned if omitted. Domain metadata (c4, mindmap) passed as nested objects in properties.
Sticky notes: color must be a NAMED color (yellow, pink, green, blue, orange, purple, red, gray, white) — NOT a hex value. Shape property is "shape" (square, rectangle, circle, diamond), NOT "stickyShape". Text color is auto-derived from background — do NOT set textStyle or fontWeight. Available styles: flat, raised, shadow.
Shapes: set "shape" to any ShapeVariant: rectangle, roundedRectangle, ellipse, triangle, diamond, pentagon, hexagon, heptagon, octagon, star, trapezoid, parallelogram, chevron, cloud, speechBubble, document, pill, doubleArrow, arrow, line, cylinder, person, robot, browser, terminal, folder, queue, bucket, pipe, mobileDevice, component.
Callouts: type "callout" creates a speech bubble. Properties: bodyShape (rectangle, roundedRectangle, ellipse, cloud, pill, circle, starburst), tailTipX, tailTipY (absolute canvas coords for tail tip), tailBaseWidth, tailStyle ("straight" | "curved"), text, fillColor, strokeColor, visualStyle. Tail auto-positions below the body if tailTipX/tailTipY are omitted.
Frames: title, showTitle (default true), backgroundColor, borderStyle (solid/dashed/dotted/none), borderWidth, borderColor, titleFontSize (default 20), titleColor (default "#374151"), collapsed. C4 boundaries: add c4: { boundaryType: "system"|"container"|"enterprise"|"deploymentNode", technology?, suppressTypeLabel? }.
Connectors: startObjectId, endObjectId, lineType ("straight"|"elbow"|"curved"), strokeStyle ("solid"|"dashed"|"dotted"), startPoint/endPoint ("center"|"top"|"right"|"bottom"|"left"), startArrow, endArrow, label, labelPosition (0-1), labelStyle: { fontSize, color, backgroundColor, orientation: "horizontal"|"follow-line" }. Waypoints: [{ x, y }] for routed paths. C4 relationships: add c4: { description, technology, isAsync }.
Mind map nodes: use types "mindmap-root", "mindmap-topic", "mindmap-subtopic".
For ROOT nodes: provide x, y for initial position. mapId is auto-generated.
Example: { type: "mindmap-root", properties: { text: "Central Idea", x: 500, y: 400 } }
For CHILD nodes: just provide text and parentNodeId. Everything else is automatic:
- mapId: copied from parent
- role: inferred (root→topic, topic→subtopic, subtopic→subtopic)
- position: auto-computed by layout engine
- branch connector: auto-created with correct anchors
Example: { type: "mindmap-topic", properties: { text: "Branch", mindmap: { parentNodeId: "<id>" } } }
Batch creation: use create_objects with $ref for parent references:
{ ref: "root", type: "mindmap-root", properties: { text: "Idea", x: 500, y: 400 } }
{ type: "mindmap-topic", properties: { text: "Branch", mindmap: { parentNodeId: "$ref:root" } } }
No need to manually create mindmap-branch connectors — they are auto-created.
Use mindmap_tidy tool to re-layout an existing mind map after manual edits.
Additional root fields: orientation ("horizontal"|"vertical"), branchStylePreset, branchTierStyles.
Rotation: set rotation (number, degrees, positive = clockwise). Defaults to 0. Use the rotate_objects tool for batch rotation with relative/absolute modes.
External links: set externalLink (URL string) to add a clickable link badge on the object corner. Example: { externalLink: "https://example.com/docs" }.
Diagram links (drill-down): set diagramLink to create a navigable link to another frame or board. Structure: { type: "frame"|"board", frameId?: string, boardId?: string, label?: string }. "frame" links navigate to a frame on the same board; "board" links navigate to a different board.
Frame parenting: set parentId (full UUID or short prefix) to auto-parent the new object into an existing frame. The server appends it to the frame's childrenIds and bumps zIndex.
Tags: any object can have tagIds: string[] referencing tag definitions on the board.
create_objects
Batch-create multiple objects atomically — preferred for diagrams and layouts. Use "ref" for local names, "$ref:name" for cross-references (e.g., startObjectId: "$ref:webApp"). Use "parentRef" to parent into a frame created in the same batch (e.g., parentRef: "myFrame"). Use "parentId" to parent into an existing frame already on the board (full UUID or short prefix). Frame children get auto-bumped z-index within a batch. Calculate all positions before calling; space objects ≥250px apart (≥400px with labeled connectors). Each item needs: type, properties, optional ref, optional parentRef, and optional parentId.
update_object
Update properties of an existing object. Only specified fields are changed. To parent objects inside a frame, update the frame's childrenIds array to include their IDs.
update_objects
Update properties on multiple objects in a single atomic transaction. Each item specifies an object ID and the properties to merge. Useful for batch-parenting into frames, repositioning many objects, or bulk property changes.
delete_object
Remove a single object from the board
delete_objects
Remove multiple objects from the board in a single transaction
list_objects
List objects on the connected board with optional filtering by type, frame, or text search. Alias type filters "sticky"|"shape"|"text" match presentation objects by preset. Use exactMatch: true to find objects with an exact text/label/title value instead of substring matching.
get_object
Get full details of a single object by ID
mindmap_tidy
Re-run recursive layout on a mind map or subtree. Call after adding nodes, manual edits, or when nodes overlap. If nodeId is the root, tidies the entire map; if a branch node, tidies that subtree only. Repositions nodes and re-anchors connectors for clean layout.
read_board_as_text
Get a structured text overview of the connected board. Shows frames with their contents, connectors between objects, and any unframed objects. Object IDs shown as [abc12345] are short prefixes — pass them directly to get_object, update_object, delete_object, etc. Useful for understanding board layout before making changes.
read_frame
Get the contents of a specific frame, listed with their positions and properties
get_server_status
Diagnostic snapshot of the MCP server: version, profile, transport, auth state, and board connection. Call this first to understand your capabilities and connection.
verify_connection
Pre-flight diagnostic: actively tests auth, API reachability, user validity, and board connection. Returns pass/fail per check with latency. Call this to verify the full connection chain before doing real work.
list_folders
List all folders for the authenticated user. Returns folder hierarchy with IDs, names, parent relationships, and positions. Use this to understand the board organization before creating or moving boards.
list_tags
List all tag definitions on the connected board. Returns tag IDs, names, colors, and descriptions. Tags are used to categorize and filter objects.
create_tag
Create a new tag definition on the board. Tags can then be applied to objects via tag_objects or by including tagIds in create_object properties.
delete_tag
Delete a tag definition from the board. By default also removes the tag from all objects that reference it.
tag_objects
Apply a tag to one or more objects. Adds the tag ID to each object's tagIds array (idempotent — won't duplicate if already tagged).
untag_objects
Remove a tag from one or more objects.
c4_add_element
Create a C4 diagram element (person, software system, container, or component). Auto-applies correct shape, color, and C4 metadata. Sizes: person=120×160, others=200×120. Space elements ≥400px center-to-center for labeled connectors. Each element must use this tool (not create_objects) to get C4 styling. Connectors can be batched via c4_connect or create_objects.
c4_add_boundary
Create a C4 boundary frame (system, container, enterprise, or deployment node). Size to fit elements with ≥100px padding each side (width = content span + 200). Default 600×400 if no size specified. Use create_objects to batch boundary + elements atomically.
c4_connect
Create a C4 relationship (connector) between two elements. Auto-formats label: description line + [technology] line. Dashed style for async. Elements must be ≥250px edge-to-edge apart — closer spacing causes overlapping labels.
align_objects
Align multiple objects along an axis. Auto-constrains to parent frame when objects share one. "left"/"center"/"right" for horizontal; "top"/"middle"/"bottom" for vertical. Does not adjust spacing — use distribute_objects after aligning if objects overlap.
distribute_objects
Distribute objects evenly along an axis. With 3+ objects, spaces equally between outermost objects (or with a fixed gap). Use gap ≥250px when objects will have labeled connectors to prevent label overlap.
layout_grid
Arrange objects in a grid layout. Auto-detects parent frame and constrains to its content area. Default gap is 20px — increase to ≥250px when objects will have labeled connectors. Useful for organizing scattered stickies, shapes, or card layouts.
layout_tree
Arrange objects in a tree layout with a root and children. Default levelGap=200px provides room for labeled connectors. Increase siblingGap (default 40px) for wider nodes. Auto-constrains to parent frame. Good for org charts and hierarchical arrangements.
rotate_objects
Rotate one or more objects. In relative mode (default), adds the angle to each object's current rotation. In absolute mode, sets rotation to the exact angle. Use angle=0 with mode=absolute to reset rotation.
group_objects
Group multiple objects into an invisible container (like Cmd+G in the web UI). Computes a bounding box around all children. If any selected objects are already groups, their children are flattened into the new group. Returns the new group ID.
ungroup_objects
Dissolve a group, freeing its children as independent objects (like Cmd+Shift+G in the web UI). The group container is deleted; children retain their positions.
z_order
Change the z-order (stacking position) of an object. bring_to_front/send_to_back move to the absolute top/bottom. bring_forward/send_backward swap with the adjacent object.
lock_objects
Lock one or more objects to prevent accidental editing or moving. Locked objects cannot be moved, resized, or deleted in the web UI.
unlock_objects
Unlock one or more previously locked objects, restoring normal editing.
get_instructions
IMPORTANT: Call this tool at the start of every session before creating or modifying objects on the board. Returns spatial planning rules, sizing conventions, layout strategies, and common pitfalls for IrenicTable board operations. Without these instructions, layouts will have overlapping objects, cramped connectors, and elements straddling frame boundaries.
Optionally pass a topic to get only a specific section: coordinates, text, spacing, frames, c4, layout, batch, mindmap, mistakes, reading.
get_suggested_prompts
Returns context-aware suggested prompts based on the current board state. Call after connecting to a board to offer the user actionable starting points. Analyzes board composition (stickies, frames, connectors, C4 elements, mind maps) and returns 3-5 relevant prompts with categories: organize, analyze, framework, create, refine.