You'd reach for this when you need Claude to programmatically build and manipulate whiteboard diagrams during a conversation. It exposes operations for creating objects and connectors on collaborative boards, with specific support for C4 architecture diagrams. The server runs over streamable HTTP, so Claude can create visual representations of system designs, flowcharts, or conceptual diagrams as you discuss them. Think of it as giving Claude hands to sketch on a shared whiteboard at Benevolabs' hosted endpoint, useful when you're architecting systems or need to visualize relationships between components in real time rather than just talking through them.
Public tool metadata for what this MCP can expose to an agent.
list_boardsList boards the authenticated user can access5 paramsList boards the authenticated user can access
limitnumberoffsetnumbersearchstringfolderIdstringincludeSharedbooleancreate_boardCreate a new board and connect to it for real-time manipulation. Call get_instructions after connecting to load spatial planning rules before placing objects.3 paramsCreate a new board and connect to it for real-time manipulation. Call get_instructions after connecting to load spatial planning rules before placing objects.
namestringfolderIdstringdescriptionstringdelete_boardDelete a board permanently. Only the board owner can delete a board. If the board being deleted is currently connected, the connection is closed automatically.1 paramsDelete a board permanently. Only the board owner can delete a board. If the board being deleted is currently connected, the connection is closed automatically.
boardIdstringconnect_boardConnect to an existing board for real-time object manipulation1 paramsConnect to an existing board for real-time object manipulation
boardIdstringdisconnect_boardDisconnect from the current boardDisconnect from the current board
No parameter schema in public metadata yet.
get_board_infoGet metadata and summary of the currently connected boardGet metadata and summary of the currently connected board
No parameter schema in public metadata yet.
create_objectSPATIAL: 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: st...3 paramsSPATIAL: 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: st...
typestringparentIdstringpropertiesobjectcreate_objectsBatch-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 "...1 paramsBatch-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 "...
objectsarrayupdate_objectUpdate 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.2 paramsUpdate 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.
idstringpropertiesobjectupdate_objectsUpdate 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.1 paramsUpdate 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.
updatesarraydelete_objectRemove a single object from the board1 paramsRemove a single object from the board
idstringdelete_objectsRemove multiple objects from the board in a single transaction1 paramsRemove multiple objects from the board in a single transaction
idsarraylist_objectsList 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.5 paramsList 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.
typestringlimitnumbersearchstringexactMatchbooleanwithinFramestringget_objectGet full details of a single object by ID1 paramsGet full details of a single object by ID
idstringmindmap_tidyRe-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.1 paramsRe-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.
nodeIdstringread_board_as_textGet 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 un...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 un...
No parameter schema in public metadata yet.
read_frameGet the contents of a specific frame, listed with their positions and properties1 paramsGet the contents of a specific frame, listed with their positions and properties
frameIdstringget_server_statusDiagnostic snapshot of the MCP server: version, profile, transport, auth state, and board connection. Call this first to understand your capabilities and connection.Diagnostic snapshot of the MCP server: version, profile, transport, auth state, and board connection. Call this first to understand your capabilities and connection.
No parameter schema in public metadata yet.
verify_connectionPre-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.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.
No parameter schema in public metadata yet.
list_foldersList 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 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.
No parameter schema in public metadata yet.
list_tagsList all tag definitions on the connected board. Returns tag IDs, names, colors, and descriptions. Tags are used to categorize and filter objects.List all tag definitions on the connected board. Returns tag IDs, names, colors, and descriptions. Tags are used to categorize and filter objects.
No parameter schema in public metadata yet.
create_tagCreate 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.3 paramsCreate 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.
namestringcolorstringdescriptionstringdelete_tagDelete a tag definition from the board. By default also removes the tag from all objects that reference it.2 paramsDelete a tag definition from the board. By default also removes the tag from all objects that reference it.
tagIdstringremoveFromObjectsbooleantag_objectsApply a tag to one or more objects. Adds the tag ID to each object's tagIds array (idempotent — won't duplicate if already tagged).2 paramsApply a tag to one or more objects. Adds the tag ID to each object's tagIds array (idempotent — won't duplicate if already tagged).
tagIdstringobjectIdsarrayuntag_objectsRemove a tag from one or more objects.2 paramsRemove a tag from one or more objects.
tagIdstringobjectIdsarrayc4_add_elementCreate 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...7 paramsCreate 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...
xnumberynumbertitlestringisExternalbooleantechnologystringdescriptionstringelementTypestringperson · softwareSystem · container · componentc4_add_boundaryCreate 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.7 paramsCreate 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.
xnumberynumbertitlestringwidthnumberheightnumbertechnologystringboundaryTypestringsystem · container · enterprise · deploymentNodec4_connectCreate 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.5 paramsCreate 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.
isAsyncbooleantechnologystringdescriptionstringendObjectIdstringstartObjectIdstringalign_objectsAlign 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.2 paramsAlign 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.
alignmentstringleft · center · right · top · middle · bottomobjectIdsarraydistribute_objectsDistribute 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.3 paramsDistribute 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.
gapnumberdirectionstringhorizontal · verticalobjectIdsarraylayout_gridArrange 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.5 paramsArrange 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.
gapnumberstartXnumberstartYnumbercolumnsnumberobjectIdsarraylayout_treeArrange 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.5 paramsArrange 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.
rootIdstringchildIdsarraylevelGapnumberdirectionstringright · downsiblingGapnumberrotate_objectsRotate 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.3 paramsRotate 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.
modestringrelative · absoluteanglenumberobjectIdsarraygroup_objectsGroup 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.1 paramsGroup 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.
objectIdsarrayungroup_objectsDissolve 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.1 paramsDissolve 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.
groupIdstringz_orderChange 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.2 paramsChange 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.
objectIdstringoperationstringbring_to_front · send_to_back · bring_forward · send_backwardlock_objectsLock one or more objects to prevent accidental editing or moving. Locked objects cannot be moved, resized, or deleted in the web UI.1 paramsLock one or more objects to prevent accidental editing or moving. Locked objects cannot be moved, resized, or deleted in the web UI.
objectIdsarrayunlock_objectsUnlock one or more previously locked objects, restoring normal editing.1 paramsUnlock one or more previously locked objects, restoring normal editing.
objectIdsarrayget_instructionsIMPORTANT: 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...1 paramsIMPORTANT: 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...
topicstringget_suggested_promptsReturns 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 cate...1 paramsReturns 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 cate...
board_idstring