← WebMCP Directory

Tool tree

archflow-two-xi.vercel.app

Developer ToolsTools verified
Website
ArchFlow is a structured graph diagram editor where you and a browser AI agent collaborate on software architecture and process diagrams.
Explore capabilities
    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.'"
          }
        }
      }
    }