← WebMCP Directory

Tool tree

mermaid-atlas.vercel.app

Developer ToolsTools verified
Website
A local workbench for navigating very large Mermaid diagrams.
Explore capabilities
    get_atlas_guideAnswer

    Use only when you need help choosing or sequencing Atlas tools for a multi-step task. Returns app-authored workflows and safety rules; it does not inspect the diagram, change the canvas, or contain user-provided instructions. Skip it when one specific tool clearly answers the request.

    View tool JSON
    {
      "name": "get_atlas_guide",
      "kind": "answer",
      "impl": "imperative",
      "description": "Use only when you need help choosing or sequencing Atlas tools for a multi-step task. Returns app-authored workflows and safety rules; it does not inspect the diagram, change the canvas, or contain user-provided instructions. Skip it when one specific tool clearly answers the request.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      }
    }
    list_diagramsAnswer

    Use to discover saved diagrams or check current state. This does not change anything. active describes the rendered canvas; active.editor describes the editor source; active.editorIsRendered says whether graph queries reflect that source. kind='library' includes an exact saved id, while kind='editor' means custom/modified source. Do not call open_diagram merely to inspect the current canvas.

    View tool JSON
    {
      "name": "list_diagrams",
      "kind": "answer",
      "impl": "imperative",
      "description": "Use to discover saved diagrams or check current state. This does not change anything. active describes the rendered canvas; active.editor describes the editor source; active.editorIsRendered says whether graph queries reflect that source. kind='library' includes an exact saved id, while kind='editor' means custom/modified source. Do not call open_diagram merely to inspect the current canvas.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 20,
            "description": "Maximum diagrams in this page (default 8)."
          },
          "cursor": {
            "type": "integer",
            "minimum": 0,
            "description": "Zero-based cursor returned by the previous page (default 0)."
          }
        },
        "additionalProperties": false
      }
    }
    open_diagramAction

    Use only to replace the current canvas with a different saved diagram chosen from list_diagrams. This changes editor/canvas state and closes any walkthrough. It refuses to overwrite unrendered editor changes unless explicitly authorized. Do not call when the user means the current canvas; graph query tools already operate on it. Returns both previous and new identities, and reports success only after the exact editor source is rendered (active.editorIsRendered=true).

    View tool JSON
    {
      "name": "open_diagram",
      "kind": "act",
      "impl": "imperative",
      "description": "Use only to replace the current canvas with a different saved diagram chosen from list_diagrams. This changes editor/canvas state and closes any walkthrough. It refuses to overwrite unrendered editor changes unless explicitly authorized. Do not call when the user means the current canvas; graph query tools already operate on it. Returns both previous and new identities, and reports success only after the exact editor source is rendered (active.editorIsRendered=true).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "diagramId": {
            "type": "string",
            "description": "Diagram id from list_diagrams."
          },
          "discardUnrenderedEditorChanges": {
            "type": "boolean",
            "description": "Set true only with user authorization to replace editor source that has not been rendered (default false)."
          }
        },
        "required": [
          "diagramId"
        ],
        "additionalProperties": false
      }
    }
    search_graphAnswer

    Use first when a node id is unknown or a human names a component naturally. Searches only the current visible canvas and does not change it. Returns ranked exact node ids and source lines for get_neighborhood, trace_path, create_walkthrough, or apply_patch. Do not use to search saved diagram titles; use list_diagrams for that.

    View tool JSON
    {
      "name": "search_graph",
      "kind": "answer",
      "impl": "imperative",
      "description": "Use first when a node id is unknown or a human names a component naturally. Searches only the current visible canvas and does not change it. Returns ranked exact node ids and source lines for get_neighborhood, trace_path, create_walkthrough, or apply_patch. Do not use to search saved diagram titles; use list_diagrams for that.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Free text matched against node labels, ids, and subgroup names."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "description": "Maximum results (default 20)."
          }
        },
        "required": [
          "query"
        ],
        "additionalProperties": false
      }
    }
    get_neighborhoodAnswer

    Use for local dependencies, dependents, or blast radius around one node on the current canvas. outgoing means dependencies; incoming means dependents/blast radius. It selects the root node visually but never edits Mermaid source. For a route between two known endpoints use trace_path instead.

    View tool JSON
    {
      "name": "get_neighborhood",
      "kind": "answer",
      "impl": "imperative",
      "description": "Use for local dependencies, dependents, or blast radius around one node on the current canvas. outgoing means dependencies; incoming means dependents/blast radius. It selects the root node visually but never edits Mermaid source. For a route between two known endpoints use trace_path instead.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "nodeId": {
            "type": "string",
            "description": "Node id or label. Get exact ids from search_graph."
          },
          "direction": {
            "type": "string",
            "enum": [
              "incoming",
              "outgoing",
              "both"
            ],
            "description": "outgoing = dependencies, incoming = dependents/blast radius. Default both."
          },
          "depth": {
            "type": "integer",
            "minimum": 1,
            "maximum": 6,
            "description": "How many hops to expand (default 1)."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "description": "Maximum nodes returned (default 40)."
          }
        },
        "required": [
          "nodeId"
        ],
        "additionalProperties": false
      }
    }
    trace_pathAnswer

    Use only for an end-to-end route between two nodes on the current canvas. Returns shortest routes and every intermediate hop without changing source or selection. Resolve uncertain endpoints with search_graph first. Pass one returned nodes sequence to create_walkthrough; use get_neighborhood instead for one-node impact analysis.

    View tool JSON
    {
      "name": "trace_path",
      "kind": "answer",
      "impl": "imperative",
      "description": "Use only for an end-to-end route between two nodes on the current canvas. Returns shortest routes and every intermediate hop without changing source or selection. Resolve uncertain endpoints with search_graph first. Pass one returned nodes sequence to create_walkthrough; use get_neighborhood instead for one-node impact analysis.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "from": {
            "type": "string",
            "description": "Starting node id or label."
          },
          "to": {
            "type": "string",
            "description": "Destination node id or label."
          },
          "direction": {
            "type": "string",
            "enum": [
              "outgoing",
              "both"
            ],
            "description": "outgoing follows edge direction (default); both ignores direction."
          },
          "maxPaths": {
            "type": "integer",
            "minimum": 1,
            "maximum": 5,
            "description": "How many routes to return (default 3)."
          }
        },
        "required": [
          "from",
          "to"
        ],
        "additionalProperties": false
      }
    }
    create_walkthroughAction

    Use after finding an ordered route to show a human-driven Back/Next tour on the current canvas. This changes only walkthrough UI, never Mermaid source. Prefer a node sequence returned by trace_path. Connected steps are required by default; set requireConnected=false only for an intentional conceptual tour with jumps.

    View tool JSON
    {
      "name": "create_walkthrough",
      "kind": "act",
      "impl": "imperative",
      "description": "Use after finding an ordered route to show a human-driven Back/Next tour on the current canvas. This changes only walkthrough UI, never Mermaid source. Prefer a node sequence returned by trace_path. Connected steps are required by default; set requireConnected=false only for an intentional conceptual tour with jumps.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "description": "Short title for the tour, e.g. 'Checkout request to payment database'."
          },
          "steps": {
            "type": "array",
            "minItems": 1,
            "maxItems": 24,
            "description": "Ordered steps. Consecutive nodes should be connected for the edge highlight to appear.",
            "items": {
              "type": "object",
              "properties": {
                "nodeId": {
                  "type": "string",
                  "description": "Exact node id."
                },
                "caption": {
                  "type": "string",
                  "description": "One or two sentences explaining what happens at this node and why the next hop follows."
                }
              },
              "required": [
                "nodeId",
                "caption"
              ],
              "additionalProperties": false
            }
          },
          "requireConnected": {
            "type": "boolean",
            "description": "Reject the tour if any consecutive nodes lack a graph edge (default true). Set false only for intentional jumps."
          }
        },
        "required": [
          "title",
          "steps"
        ],
        "additionalProperties": false
      }
    }
    apply_patchAction

    Use only when the user asks to modify Mermaid source on the current canvas. Applies exact line/text operations, validates before commit, and re-renders; invalid patches change nothing. This is not needed for explanations, reviews, selection, or walkthroughs. Use sourceLine from graph results and keep patches small. A successful patch can be reverted with undo_last_change.

    View tool JSON
    {
      "name": "apply_patch",
      "kind": "act",
      "impl": "imperative",
      "description": "Use only when the user asks to modify Mermaid source on the current canvas. Applies exact line/text operations, validates before commit, and re-renders; invalid patches change nothing. This is not needed for explanations, reviews, selection, or walkthroughs. Use sourceLine from graph results and keep patches small. A successful patch can be reverted with undo_last_change.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "operations": {
            "type": "array",
            "minItems": 1,
            "maxItems": 40,
            "items": {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "insert_after_line",
                    "replace_line",
                    "delete_line",
                    "replace_text"
                  ]
                },
                "line": {
                  "type": "integer",
                  "minimum": 0,
                  "description": "Zero-based source line, as returned in a node's sourceLine. Required for line operations."
                },
                "text": {
                  "type": "string",
                  "description": "Replacement or inserted text. Required except for delete_line."
                },
                "find": {
                  "type": "string",
                  "description": "Exact text to replace, for replace_text."
                }
              },
              "required": [
                "type"
              ],
              "additionalProperties": false
            }
          },
          "description": {
            "type": "string",
            "description": "Short human-readable summary of the change, shown in the activity log."
          }
        },
        "required": [
          "operations"
        ],
        "additionalProperties": false
      }
    }
    undo_last_changeAction

    Use only to revert the latest successful apply_patch on the current diagram, typically when the user rejects it or asks to undo it. It never undoes human edits or open_diagram switches, and refuses if the source changed after the patch.

    View tool JSON
    {
      "name": "undo_last_change",
      "kind": "act",
      "impl": "imperative",
      "description": "Use only to revert the latest successful apply_patch on the current diagram, typically when the user rejects it or asks to undo it. It never undoes human edits or open_diagram switches, and refuses if the source changed after the patch.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      }
    }
    analyze_structureAnswer

    Use for a whole-current-canvas structural audit: cycles, orphans, entry points, and dead ends. It does not change canvas or source. Do not use for a named component's local dependencies (get_neighborhood) or a route between endpoints (trace_path).

    View tool JSON
    {
      "name": "analyze_structure",
      "kind": "answer",
      "impl": "imperative",
      "description": "Use for a whole-current-canvas structural audit: cycles, orphans, entry points, and dead ends. It does not change canvas or source. Do not use for a named component's local dependencies (get_neighborhood) or a route between endpoints (trace_path).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "description": "Maximum items per category (default 20)."
          }
        },
        "additionalProperties": false
      }
    }