Irenic Table
A free, general-purpose, collaborative, virtual whiteboard app in the spirit of the superstar commercial apps Mural and Miro.
От сообщества: Добавлен пользователем или импортирован; проверьте владельца перед подключениемРаботаетБез входаГлобальныйБесплатноТолько чтение
Что умеет
- List Boards: List boards the authenticated user can access
- Create Board: Create a new board and connect to it for real-time manipulation. Call get_instructions after connecting to load spatial planning rules before placing objects.
- Delete Board: Delete a board permanently. Only the board owner can delete a board. If the board being deleted is currently connected, the connection is closed automatically.
Какие данные видит
Нужен ли аккаунт
Не нужен: сервер работает без входа
A free, general-purpose, collaborative, virtual whiteboard app in the spirit of the superstar commercial apps Mural and Miro.
If the user enables it there is also limited C4 diagramming capabilities with some validation.
Список инструментов сервера (40)
Технические названия из tools/list. Нужны только разработчикам.
| list_boards | List boards the authenticated user can access |
| create_board | Create a new board and connect to it for real-time manipulation. Call get_instructions after connecting to load spatial planning rules before placing objects. |
| delete_board | Delete a board permanently. Only the board owner can delete a board. If the board being deleted is currently connected, the connection is closed automatically. |
| connect_board | Connect to an existing board for real-time object manipulation |
| disconnect_board | Disconnect from the current board |
| get_board_info | Get metadata and summary of the currently connected board |
| 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. |