← WebMCP Directory

Tool tree

chalkline-steel.vercel.app

Developer ToolsTools verified
Website
A WebMCP-powered architecture diagram canvas. Describe a system, watch an agent draw it, then move, rename and connect things yourself while the agent keeps up.
Explore capabilities
    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": {}
      }
    }