Tool tree
gradeNot graded
search_productsAnswer
Returns the list of WebMCP tools available in ArchFlow
View tool JSON
{
"name": "search_products",
"kind": "answer",
"impl": "imperative",
"description": "Returns the list of WebMCP tools available in ArchFlow",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
}
}archflow_get_diagramAnswer
Returns the complete current ArchFlow diagram as structured JSON. Call this before proposing any changes and again after a stale proposal error. Optionally include deterministic validation findings.
View tool JSON
{
"name": "archflow_get_diagram",
"kind": "answer",
"impl": "imperative",
"description": "Returns the complete current ArchFlow diagram as structured JSON. Call this before proposing any changes and again after a stale proposal error. Optionally include deterministic validation findings.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
}
}archflow_get_selectionAnswer
Returns the nodes and edges currently selected by the human on the canvas. Useful to understand what the user is focused on. Returns empty arrays if nothing is selected.
View tool JSON
{
"name": "archflow_get_selection",
"kind": "answer",
"impl": "imperative",
"description": "Returns the nodes and edges currently selected by the human on the canvas. Useful to understand what the user is focused on. Returns empty arrays if nothing is selected.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
}
}archflow_get_catalogAnswer
Returns the supported node kinds, edge kinds, and data classification values with descriptions and usage guidance. Use this to understand available types before constructing add_node or add_edge operations.
View tool JSON
{
"name": "archflow_get_catalog",
"kind": "answer",
"impl": "imperative",
"description": "Returns the supported node kinds, edge kinds, and data classification values with descriptions and usage guidance. Use this to understand available types before constructing add_node or add_edge operations.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
}
}archflow_focus_elementsAction
Selects specified nodes and/or edges on the canvas and fits them into view. Use this to help the human see elements you are discussing. This changes transient UI state only — it does not modify the diagram.
View tool JSON
{
"name": "archflow_focus_elements",
"kind": "act",
"impl": "imperative",
"description": "Selects specified nodes and/or edges on the canvas and fits them into view. Use this to help the human see elements you are discussing. This changes transient UI state only — it does not modify the diagram.",
"inputSchema": {
"type": "object",
"properties": {
"nodeIds": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 20
},
"edgeIds": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 20
}
},
"additionalProperties": false
}
}archflow_apply_operationsAction
Requests an atomic batch of diagram changes (add/update/remove nodes and edges, set document details). All changes are atomic and require visible human approval before taking effect. The human must click Approve in the confirmation dialog before the diagram is modified. Read the diagram first with archflow_get_diagram.
View tool JSON
{
"name": "archflow_apply_operations",
"kind": "act",
"impl": "imperative",
"description": "Requests an atomic batch of diagram changes (add/update/remove nodes and edges, set document details). All changes are atomic and require visible human approval before taking effect. The human must click Approve in the confirmation dialog before the diagram is modified. Read the diagram first with archflow_get_diagram.",
"inputSchema": {
"type": "object",
"required": [
"reason",
"operations"
],
"additionalProperties": false,
"properties": {
"reason": {
"type": "string",
"minLength": 1,
"maxLength": 300
},
"operations": {
"type": "array",
"minItems": 1,
"maxItems": 50,
"items": {
"oneOf": [
{
"type": "object",
"required": [
"type",
"tempId",
"node"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"const": "add_node"
},
"tempId": {
"type": "string",
"pattern": "^[A-Za-z][A-Za-z0-9_-]{0,39}$"
},
"node": {
"type": "object",
"required": [
"kind",
"label"
],
"additionalProperties": false,
"properties": {
"kind": {
"type": "string",
"enum": [
"actor",
"client",
"service",
"database",
"queue",
"cache",
"external",
"boundary",
"process",
"decision",
"start",
"end",
"note"
]
},
"label": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"description": {
"type": "string",
"maxLength": 500
},
"technology": {
"type": "string",
"maxLength": 80
},
"position": {
"type": "object",
"required": [
"x",
"y"
],
"additionalProperties": false,
"properties": {
"x": {
"type": "number"
},
"y": {
"type": "number"
}
}
},
"parentId": {
"type": "string"
},
"tags": {
"type": "array",
"items": {
"type": "string",
"maxLength": 40
},
"maxItems": 20
},
"metadata": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
{
"type": "object",
"required": [
"type",
"nodeId",
"patch"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"const": "update_node"
},
"nodeId": {
"type": "string"
},
"patch": {
"type": "object",
"additionalProperties": false,
"properties": {
"kind": {
"type": "string",
"enum": [
"actor",
"client",
"service",
"database",
"queue",
"cache",
"external",
"boundary",
"process",
"decision",
"start",
"end",
"note"
]
},
"label": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"description": {
"type": "string",
"maxLength": 500
},
"technology": {
"type": "string",
"maxLength": 80
},
"position": {
"type": "object",
"required": [
"x",
"y"
],
"additionalProperties": false,
"properties": {
"x": {
"type": "number"
},
"y": {
"type": "number"
}
}
},
"parentId": {
"type": "string"
},
"tags": {
"type": "array",
"items": {
"type": "string",
"maxLength": 40
},
"maxItems": 20
},
"metadata": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
{
"type": "object",
"required": [
"type",
"nodeId"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"const": "remove_node"
},
"nodeId": {
"type": "string"
}
}
},
{
"type": "object",
"required": [
"type",
"tempId",
"edge"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"const": "add_edge"
},
"tempId": {
"type": "string",
"pattern": "^[A-Za-z][A-Za-z0-9_-]{0,39}$"
},
"edge": {
"type": "object",
"required": [
"kind",
"source",
"target"
],
"additionalProperties": false,
"properties": {
"kind": {
"type": "string",
"enum": [
"request",
"event",
"data",
"dependency",
"process-flow",
"association"
]
},
"source": {
"type": "string"
},
"target": {
"type": "string"
},
"label": {
"type": "string",
"maxLength": 80
},
"protocol": {
"type": "string",
"maxLength": 80
},
"dataClassification": {
"type": "string",
"enum": [
"none",
"public",
"internal",
"confidential",
"restricted"
]
},
"description": {
"type": "string",
"maxLength": 500
},
"metadata": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
{
"type": "object",
"required": [
"type",
"edgeId",
"patch"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"const": "update_edge"
},
"edgeId": {
"type": "string"
},
"patch": {
"type": "object",
"additionalProperties": false,
"properties": {
"kind": {
"type": "string",
"enum": [
"request",
"event",
"data",
"dependency",
"process-flow",
"association"
]
},
"source": {
"type": "string"
},
"target": {
"type": "string"
},
"label": {
"type": "string",
"maxLength": 80
},
"protocol": {
"type": "string",
"maxLength": 80
},
"dataClassification": {
"type": "string",
"enum": [
"none",
"public",
"internal",
"confidential",
"restricted"
]
},
"description": {
"type": "string",
"maxLength": 500
},
"metadata": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
{
"type": "object",
"required": [
"type",
"edgeId"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"const": "remove_edge"
},
"edgeId": {
"type": "string"
}
}
},
{
"type": "object",
"required": [
"type",
"patch"
],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"const": "set_document_details"
},
"patch": {
"type": "object",
"additionalProperties": false,
"properties": {
"title": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"description": {
"type": "string",
"maxLength": 500
},
"kind": {
"type": "string",
"enum": [
"architecture",
"process",
"hybrid"
]
}
}
}
}
}
]
}
}
}
}
}archflow_auto_layoutAction
Requests automatic Dagre-based layout of the diagram. Requires human confirmation before applying. Use 'automatic' direction to let ArchFlow choose based on diagram kind.
View tool JSON
{
"name": "archflow_auto_layout",
"kind": "act",
"impl": "imperative",
"description": "Requests automatic Dagre-based layout of the diagram. Requires human confirmation before applying. Use 'automatic' direction to let ArchFlow choose based on diagram kind.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"direction": {
"type": "string",
"enum": [
"automatic",
"left-to-right",
"top-to-bottom"
]
}
}
}
}archflow_validate_diagramAction
Runs deterministic structural and design checks against the current diagram. Returns findings by severity. This is advisory — it does not prove correctness. Use to identify reliability gaps, missing connections, or structural issues.
View tool JSON
{
"name": "archflow_validate_diagram",
"kind": "act",
"impl": "imperative",
"description": "Runs deterministic structural and design checks against the current diagram. Returns findings by severity. This is advisory — it does not prove correctness. Use to identify reliability gaps, missing connections, or structural issues.",
"inputSchema": {
"type": "object",
"properties": {
"severity": {
"type": "string",
"enum": [
"all",
"error",
"warning",
"info"
]
}
},
"additionalProperties": false
}
}archflow_export_mermaidAction
Serializes the current diagram as Mermaid flowchart text. Returns the mermaid string and any serialization warnings. Use 'automatic' direction to let ArchFlow choose based on diagram kind.
View tool JSON
{
"name": "archflow_export_mermaid",
"kind": "act",
"impl": "imperative",
"description": "Serializes the current diagram as Mermaid flowchart text. Returns the mermaid string and any serialization warnings. Use 'automatic' direction to let ArchFlow choose based on diagram kind.",
"inputSchema": {
"type": "object",
"properties": {
"direction": {
"type": "string",
"enum": [
"automatic",
"LR",
"TB"
]
}
},
"additionalProperties": false
}
}archflow_clear_diagramAction
Removes all nodes and edges from the diagram, leaving a blank canvas. Requires explicit human approval before taking effect. Preserves document title and kind. Use only when the human explicitly asks to start fresh.
View tool JSON
{
"name": "archflow_clear_diagram",
"kind": "act",
"impl": "imperative",
"description": "Removes all nodes and edges from the diagram, leaving a blank canvas. Requires explicit human approval before taking effect. Preserves document title and kind. Use only when the human explicitly asks to start fresh.",
"inputSchema": {
"type": "object",
"required": [
"reason"
],
"additionalProperties": false,
"properties": {
"reason": {
"type": "string",
"minLength": 1,
"maxLength": 300
}
}
}
}archflow_annotate_elementAction
Attaches a short agent note to a node or edge that is displayed inline on the canvas. Use this to explain your reasoning, flag concerns, or highlight elements during analysis. Does NOT require human approval — it is purely informational. Pass an empty string as 'note' to clear an existing annotation.
View tool JSON
{
"name": "archflow_annotate_element",
"kind": "act",
"impl": "imperative",
"description": "Attaches a short agent note to a node or edge that is displayed inline on the canvas. Use this to explain your reasoning, flag concerns, or highlight elements during analysis. Does NOT require human approval — it is purely informational. Pass an empty string as 'note' to clear an existing annotation.",
"inputSchema": {
"type": "object",
"required": [
"elementId",
"note"
],
"additionalProperties": false,
"properties": {
"elementId": {
"type": "string",
"description": "ID of the node or edge to annotate."
},
"note": {
"type": "string",
"maxLength": 400,
"description": "The note to attach. Pass an empty string to clear the annotation."
}
}
}
}archflow_get_changesAnswer
Returns a diff of what changed in the diagram since the agent's last tool call. Each node and edge shows which fields changed. Use this at the start of a turn to understand what the human did while you were away, instead of re-reading the full diagram with archflow_get_diagram.
View tool JSON
{
"name": "archflow_get_changes",
"kind": "answer",
"impl": "imperative",
"description": "Returns a diff of what changed in the diagram since the agent's last tool call. Each node and edge shows which fields changed. Use this at the start of a turn to understand what the human did while you were away, instead of re-reading the full diagram with archflow_get_diagram.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
}
}archflow_request_auto_approveAction
Requests that the human enable 'No Human Approval' (Auto-Approve) mode. When enabled by the human, all subsequent diagram modification tools (apply_operations, auto_layout, clear_diagram) execute immediately without waiting for confirmation dialogs. Use this tool when you have many sequential changes to make and want to explain to the human why auto-approve would be faster.
View tool JSON
{
"name": "archflow_request_auto_approve",
"kind": "act",
"impl": "imperative",
"description": "Requests that the human enable 'No Human Approval' (Auto-Approve) mode. When enabled by the human, all subsequent diagram modification tools (apply_operations, auto_layout, clear_diagram) execute immediately without waiting for confirmation dialogs. Use this tool when you have many sequential changes to make and want to explain to the human why auto-approve would be faster.",
"inputSchema": {
"type": "object",
"required": [
"reason"
],
"additionalProperties": false,
"properties": {
"reason": {
"type": "string",
"minLength": 1,
"maxLength": 500,
"description": "Explain why you need auto-approve mode. The human must explicitly enable it. Example: 'I need to apply 12 sequential layout and labeling operations — requiring approval on each would be slow.'"
}
}
}
}