mcp-drawio-server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MCP_DRAWIO_OUTPUT_DIR | No | Base directory for relative .drawio save and open paths. If unset, the process working directory is used. Absolute paths always take precedence. |
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": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| load_database_schemaC | Load a live relational database schema into a named diagram. |
| load_ddl_schemaB | Load CREATE TABLE statements supplied inline or from a UTF-8 file. |
| load_spec_schemaC | Load a YAML or JSON schema spec supplied inline or from a UTF-8 file. |
| open_diagramC | Open an existing uncompressed .drawio or XML diagram. |
| list_diagramsA | List every diagram currently open in this server process. |
| describe_diagramB | Describe the tables, keys, and relations in an open diagram. |
| add_tableA | Add a table using columns such as |
| remove_tableA | Remove a table and every relation connected to it. |
| add_columnB | Add one column using shorthand such as |
| remove_columnA | Remove a column and cascade removal to relations that use it. |
| add_relationB | Add a validated relation from child columns to parent columns. |
| remove_relationA | Remove the relation matching validated source and target endpoints. |
| move_tableA | Move a table to finite x/y coordinates without changing its size. |
| relayout_diagramB | Replace all table positions with a fresh automatic layout. |
| save_diagramC | Regenerate and save a diagram to a .drawio or XML file. |
| export_specA | Export an open diagram's canonical schema as YAML or JSON. |
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 16 tools
Each tool targets a distinct action and resource: loading schemas from different sources, opening/listing/describing diagrams, and CRUD operations for tables, columns, and relations. Manual positioning and automatic relayout are clearly separated, so there is no ambiguity between tools.
All tool names follow a consistent verb_noun pattern in lowercase snake_case (e.g., load_database_schema, add_table, remove_relation). Minor pluralization in list_diagrams is the only deviation, and it does not affect the predictable pattern.
At 16 tools, the set is slightly above the typical 3-15 range, but each tool serves a distinct and necessary purpose in the schema-diagram workflow. The count feels well-scoped without redundant tools, though it could be tightened slightly.
The server covers the full lifecycle: loading/opening diagrams, listing/describing them, adding/removing tables/columns/relations, positioning, saving, and exporting. Minor gaps exist, such as no update/rename operations for tables or columns and no explicit close-diagram tool, but these are workable around.