Draw.io MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| resources | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get-selected-cellB | This tool allows you to retrieve selected cell (whether vertex or edge) on the current page of a Draw.io diagram. The response is a JSON containing attributes of the cell. |
| add-rectangleC | This tool allows you to add new Rectangle vertex cell (object) on the current page of a Draw.io diagram. It accepts multiple optional input parameter. |
| add-edgeC | This tool creates an edge, sometimes called also a relation, between two vertexes (cells). |
| delete-cell-by-idC | Deletes a cell, whether it is a vertex or edge. |
| get-shape-categoriesB | Retrieves available shape categories from the diagram's library. Library is split into multiple categories. |
| get-shapes-in-categoryC | Retrieve all shapes in the provided category from the diagram's library. A shape primarily contains |
| get-shape-by-nameA | Retrieve a specific shape by its name from all available shapes in the diagram's library. It returns the shape and also the category it belongs. |
| add-cell-of-shapeC | This tool allows you to add new vertex cell (object) on the current page of a Draw.io diagram by its shape name. It accepts multiple optional input parameter. |
| set-cell-shapeC | Updates the visual style of an existing vertex cell to match a library shape by name. |
| set-cell-dataC | Sets or updates a custom attribute on an existing cell. |
| edit-cellA | Update properties of an existing vertex/shape cell by its ID. Only provided fields are modified; unspecified properties remain unchanged. |
| edit-edgeA | Update properties of an existing edge by its ID. Only provided fields are modified; unspecified properties remain unchanged. |
| list-paged-modelA | Retrieves a paginated view of all cells (vertices and edges) in the current Draw.io diagram. This tool provides access to the complete model data with essential fields only, sanitized to remove circular dependencies and excessive data. It allows to filter based on multiple criteria and attribute boolean logic. Useful for programmatic inspection of diagram structure without overwhelming response sizes. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 13 tools
The tools have clear purposes but some overlap exists, such as add-cell-of-shape and add-rectangle both adding vertex cells, which could cause confusion. However, descriptions help differentiate them by shape specificity, and most tools target distinct actions like editing, deleting, or retrieving cells.
Tool names follow a consistent verb_noun pattern with minor deviations, such as list-paged-model using 'paged' instead of a direct noun. Most names are clear and readable, like delete-cell-by-id and get-shape-by-name, maintaining a predictable structure throughout the set.
With 13 tools, the count is well-scoped for a diagram editing server, covering essential operations like adding, editing, deleting, and retrieving cells and shapes. Each tool earns its place by addressing specific needs in diagram manipulation without being overwhelming.
The toolset provides comprehensive coverage for diagram editing, including CRUD operations for cells and edges, shape management, and data inspection. Minor gaps exist, such as no direct tool for creating new pages or handling diagram-level properties, but agents can work around these with existing tools.