Tool tree
gradeNot graded
get_diagramAnswer
Read the current diagram: every node (id, label, kind, description, who added it) and every edge. Call this first before modifying an existing diagram so you can reference existing node ids.
View tool JSON
{
"name": "get_diagram",
"kind": "answer",
"impl": "imperative",
"description": "Read the current diagram: every node (id, label, kind, description, who added it) and every edge. Call this first before modifying an existing diagram so you can reference existing node ids.",
"inputSchema": {
"type": "object",
"properties": {}
}
}add_nodeAction
Add a node (box) to the diagram. Returns the node id to use in later calls. Position is chosen automatically; call auto_layout after adding several nodes.
View tool JSON
{
"name": "add_node",
"kind": "act",
"impl": "imperative",
"description": "Add a node (box) to the diagram. Returns the node id to use in later calls. Position is chosen automatically; call auto_layout after adding several nodes.",
"inputSchema": {
"type": "object",
"properties": {
"label": {
"type": "string",
"description": "Short display name, e.g. 'Payment Service'."
},
"kind": {
"type": "string",
"enum": [
"service",
"database",
"queue",
"cache",
"user",
"external",
"storage",
"note"
],
"description": "What the node represents."
},
"description": {
"type": "string",
"description": "One sentence about the component's responsibility."
},
"id": {
"type": "string",
"description": "Optional stable id (snake_case)."
}
},
"required": [
"label",
"kind"
]
}
}update_nodeAction
Rename, re-type, or re-describe an existing node. Reference it by id or label.
View tool JSON
{
"name": "update_node",
"kind": "act",
"impl": "imperative",
"description": "Rename, re-type, or re-describe an existing node. Reference it by id or label.",
"inputSchema": {
"type": "object",
"properties": {
"node": {
"type": "string",
"description": "Node id or label."
},
"label": {
"type": "string"
},
"kind": {
"type": "string",
"enum": [
"service",
"database",
"queue",
"cache",
"user",
"external",
"storage",
"note"
],
"description": "What the node represents."
},
"description": {
"type": "string"
}
},
"required": [
"node"
]
}
}remove_nodeAction
Delete a node and every edge attached to it.
View tool JSON
{
"name": "remove_node",
"kind": "act",
"impl": "imperative",
"description": "Delete a node and every edge attached to it.",
"inputSchema": {
"type": "object",
"properties": {
"node": {
"type": "string",
"description": "Node id or label."
}
},
"required": [
"node"
]
}
}connectAction
Draw a directed edge from one node to another, optionally labelled with the protocol or data that flows (e.g. 'gRPC', 'events').
View tool JSON
{
"name": "connect",
"kind": "act",
"impl": "imperative",
"description": "Draw a directed edge from one node to another, optionally labelled with the protocol or data that flows (e.g. 'gRPC', 'events').",
"inputSchema": {
"type": "object",
"properties": {
"from": {
"type": "string",
"description": "Source node id or label."
},
"to": {
"type": "string",
"description": "Target node id or label."
},
"label": {
"type": "string",
"description": "Optional edge label."
}
},
"required": [
"from",
"to"
]
}
}disconnectAction
Remove the edge between two nodes.
View tool JSON
{
"name": "disconnect",
"kind": "act",
"impl": "imperative",
"description": "Remove the edge between two nodes.",
"inputSchema": {
"type": "object",
"properties": {
"from": {
"type": "string"
},
"to": {
"type": "string"
}
},
"required": [
"from",
"to"
]
}
}auto_layoutAction
Tidy the diagram with an automatic layered layout. Use after adding or connecting several nodes.
View tool JSON
{
"name": "auto_layout",
"kind": "act",
"impl": "imperative",
"description": "Tidy the diagram with an automatic layered layout. Use after adding or connecting several nodes.",
"inputSchema": {
"type": "object",
"properties": {
"direction": {
"type": "string",
"enum": [
"LR",
"TB"
],
"description": "Left-to-right or top-to-bottom."
}
}
}
}highlight_nodesAction
Select/highlight nodes on the canvas so the human can see what you are talking about.
View tool JSON
{
"name": "highlight_nodes",
"kind": "act",
"impl": "imperative",
"description": "Select/highlight nodes on the canvas so the human can see what you are talking about.",
"inputSchema": {
"type": "object",
"properties": {
"nodes": {
"type": "array",
"items": {
"type": "string"
},
"description": "Node ids or labels."
}
},
"required": [
"nodes"
]
}
}clear_diagramAction
Remove everything from the canvas. Only call when the user clearly asks to start over.
View tool JSON
{
"name": "clear_diagram",
"kind": "act",
"impl": "imperative",
"description": "Remove everything from the canvas. Only call when the user clearly asks to start over.",
"inputSchema": {
"type": "object",
"properties": {}
}
}export_mermaidAction
Return the diagram as Mermaid flowchart source, useful for pasting into docs or README files.
View tool JSON
{
"name": "export_mermaid",
"kind": "act",
"impl": "imperative",
"description": "Return the diagram as Mermaid flowchart source, useful for pasting into docs or README files.",
"inputSchema": {
"type": "object",
"properties": {}
}
}