excalidraw-mcp
Allows AI agents to create, read, and modify Excalidraw files, generating 25+ types of hand-drawn diagrams with automatic layout, including flowcharts, architecture, sequence, mind maps, and more.
Allows importing Mermaid syntax (flowchart, sequence, class, state) to automatically generate Excalidraw diagrams.
excalidraw-mcp
Generate 25+ types of beautiful hand-drawn diagrams with AI — flowcharts, sequence, architecture, mind maps, ER, class, state, timeline, pie/bar/line/radar charts, kanban, wireframes, decision trees, and more — with Sugiyama hierarchical layout, CJK support, and zero learning curve.
By Maaker.AI
Showcase
Every image below was generated by a single tool call — no coordinates, no manual layout. The .excalidraw sources live in docs/showcase/; drag any of them onto excalidraw.com to keep editing.
Flowchart (branches + cycle + CJK) | Layered architecture |
Related MCP server: arch7
Install
Claude Code (recommended)
claude mcp add excalidraw -- uvx maaker-excalidraw-mcpClaude Desktop
Add to your MCP config (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"excalidraw": {
"command": "uvx",
"args": ["maaker-excalidraw-mcp"]
}
}
}opencode / Cursor / any MCP client
{
"mcp": {
"excalidraw": {
"type": "local",
"command": ["uvx", "maaker-excalidraw-mcp"],
"enabled": true
}
}
}(opencode shown; Cursor and other clients use the same uvx maaker-excalidraw-mcp command in their MCP config format.)
pip
pip install maaker-excalidraw-mcpTools
Tool | Description |
| Flowcharts with Sugiyama layout — branches, merges, cycles, groups |
| Layered architecture diagrams with connections |
| UML sequence diagrams with lifelines and messages |
| UML class diagrams with attributes, methods, relationships |
| UML state machines with initial/final states |
| Entity-Relationship diagrams with cardinality |
| Tree-style mind maps with auto-colored branches |
| Timeline/Gantt charts with overlapping event handling |
| Pie charts with labeled slices and percentages |
| Kanban boards with columns and cards |
| Network topology with typed nodes (server, DB, etc.) |
| 2x2 priority/positioning matrices |
| User journey maps with emotion indicators |
| UI wireframe mockups with device frames |
| Organizational charts (top-down hierarchy) |
| SWOT analysis 2x2 color-coded matrices |
| Grid tables with auto-sized columns and alternating row colors |
| Vertical bar charts with auto-scaled bars and labels |
| Line charts with multi-series support |
| Radar/spider charts with multi-series overlay |
| Decision trees with diamond decisions and rectangular outcomes |
| Import Mermaid syntax (flowchart, sequence, class, state) |
| List all available diagram types |
| Add/remove nodes and connections in existing diagrams |
| Analyze existing |
| Export diagrams to SVG format |
Quick Examples
Flowchart
Just tell your AI assistant:
"Create a flowchart: User Request → Load Balancer → API Server → Database"
The AI will call create_flowchart with structured data, and you'll get a .excalidraw file with:
Sugiyama hierarchical layout — proper handling of branches, merges, cycles, and disconnected subgraphs
Auto-calculated box sizes based on text content
Perfectly centered text (including Chinese/CJK characters)
Smart arrow routing with proper edge binding
Hand-drawn style that looks great in docs and presentations
4 directions: LR (left-to-right), RL, TB (top-to-bottom), BT
Architecture Diagram
"Create an architecture diagram with Frontend (React, Next.js), Backend (API Server, Auth Service), and Database (PostgreSQL, Redis) layers"
Generates a layered diagram with components organized by tier, automatic sizing, and connections between layers.
Read & Modify
"Read the diagram at ./my-system.excalidraw and add a 'Cache' node connected to the API Server"
Works with existing .excalidraw files — read their structure, add/remove nodes, add connections.
Why excalidraw-mcp?
vs Official Excalidraw MCP (excalidraw/excalidraw-mcp)
Feature | Official MCP | excalidraw-mcp |
Approach | Raw JSON — AI manually places every element | Structured input — say what you want, get a diagram |
Layout | AI calculates coordinates | Sugiyama hierarchical auto-layout |
Branches/Merges | AI must figure out positioning | Automatic — handled by layout engine |
CJK text | No width estimation | Accurate CJK/mixed-script width calculation |
Text centering | AI must calculate x/y offsets | Automatic centering in containers |
Arrow binding | AI must manage bindings | Automatic fixedPoint + orbit binding |
Local files | Cannot read/write local files | Full read, modify, save support |
Distribution | Remote URL / .mcpb |
|
Token usage | Needs | Format knowledge built-in |
vs Mermaid-based tools
Free layout: Not constrained by Mermaid syntax limitations
Hand-drawn style: Native Excalidraw look, not rendered code blocks
Editable output: Drag the
.excalidrawfile to excalidraw.com to continue editing
Tool Reference
create_flowchart
Input:
nodes: [{label: "Step 1", color?: "blue", shape?: "rectangle"}]
edges: [{from: "Step 1", to: "Step 2", label?: "next"}]
direction?: "LR" | "RL" | "TB" | "BT" (default: "LR")
title?: "My Flowchart"
output_path?: "/path/to/output.excalidraw"
Output: Path to generated .excalidraw fileColors: blue, green, purple, yellow, red, gray, orange, pink
Shapes: rectangle (default), diamond (decisions), ellipse (start/end)
create_architecture_diagram
Input:
layers: [{
name: "Frontend",
color?: "blue",
components: [{label: "React"}, {label: "Next.js"}]
}]
connections?: [{from: "React", to: "API Server"}]
output_path?: "/path/to/output.excalidraw"
Output: Path to generated .excalidraw filemodify_diagram
Input:
file_path: "/path/to/existing.excalidraw"
add_nodes?: [{label: "New Node", color?: "green", x?: 100, y?: 100}]
remove_labels?: ["Old Node"]
add_connections?: [{from: "A", to: "B"}]
output_path?: "/path/to/output.excalidraw"
Output: Path to modified fileread_diagram
Input:
file_path: "/path/to/diagram.excalidraw"
Output: Structured description (shapes, connections, colors)export_diagram
Input:
file_path: "/path/to/diagram.excalidraw"
format: "svg"
Output: Path to exported SVG fileTechnical Details
Sugiyama Hierarchical Layout
Uses the grandalf library for proper directed graph layout:
Layer assignment: Nodes placed in layers based on graph topology
Crossing minimization: Multi-pass optimization to reduce edge crossings
Coordinate assignment: Balanced positioning within layers
Cycle handling: Feedback edge detection for cyclic graphs
Disconnected subgraphs: Automatic side-by-side placement
CJK Width Estimation
Accurate text width calculation for mixed Chinese/English text:
Character Type | Width (at fontSize=20) |
CJK characters | ~22px per character |
ASCII letters/digits | ~11px per character |
Spaces | ~5px |
Arrow Binding
Uses Excalidraw's modern fixedPoint + orbit binding (not the deprecated focus/gap format):
{
"startBinding": {
"elementId": "box1",
"fixedPoint": [1.0, 0.5001],
"mode": "orbit"
}
}Arrows automatically connect at the correct edge based on relative positions.
Development
git clone https://github.com/maaker-ai/excalidraw-mcp.git
cd excalidraw-mcp
uv sync --dev
uv run pytestLicense
MIT
Available Tools
28 toolscreate_architecture_diagramB
Create a layered architecture diagram.
Args: layers: List of layers, each with 'name' and 'components' list. Example: [{"name": "Frontend", "color": "blue", "components": [{"label": "React App"}, {"label": "Next.js"}]}] connections: List of connections between components. Example: [{"from": "React App", "to": "API Server"}] output_path: Optional output file path
Returns: Path to the generated .excalidraw file
| Name | Required | Description | Default |
|---|---|---|---|
| theme | No | light | |
| layers | Yes | ||
| connections | No | ||
| output_path | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It does disclose a useful side-effect: the tool generates an .excalidraw file and returns its path. However, it is silent about important behaviors such as overwriting an existing output_path, the default file location when output_path is omitted, and any constraints around layer/component matching.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description uses a clean Args/Returns structure and includes compact JSON examples that earn their place. It is front-loaded with the purpose and stays reasonably short, though the omissions around theme and output behavior keep it from being fully polished.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The definition is adequate for a simple file-generating tool: it explains the main inputs, gives examples, and states the return value. But it leaves out the theme parameter, lacks guidance on default output behavior, and provides no differentiation from sibling tools, so an agent may still need to make assumptions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description compensates well with concrete examples for layers (name, color, components) and connections (from, to), and it marks output_path as optional. The main gap is the theme parameter, which appears in the schema but is not described, making the compensation strong but incomplete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Create a layered architecture diagram.' The examples also clarify the intended artifact. However, it does not distinguish this tool from sibling diagram creation tools like create_diagram, create_flowchart, or create_network_diagram.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool versus alternatives, when not to use it, or what makes it preferable to create_flowchart or import_mermaid. The only signal is the tool name and the phrase 'layered architecture diagram,' which requires the agent to infer applicability.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_bar_chartA
Create a vertical bar chart.
Generates a bar chart with auto-scaled bars, value labels, and axis labels.
Args: bars: List of bars with label and value title: Optional chart title output_path: Optional output file path theme: Color theme
Returns: Absolute path to the generated .excalidraw file
| Name | Required | Description | Default |
|---|---|---|---|
| bars | Yes | ||
| theme | No | light | |
| title | No | ||
| output_path | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden. It discloses key behavioral traits: bars are auto-scaled, value labels and axis labels are added, and the tool returns an absolute path to a generated .excalidraw file. It does not explain default output behavior when output_path is omitted, but the core side effect and artifact format are clear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with a one-sentence summary, followed by a compact Args/Returns structure. Every line earns its place and there is no redundant filler or restating of the name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a chart-creation tool with no annotations and moderate complexity, the description is nearly complete: it identifies the chart type, key behaviors, parameters, and return value. Minor gaps remain around valid theme values, default output path behavior, and the optional per-bar color, but the schema provides some of this and the agent can call the tool with just the required bars argument.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The Args section gives a helpful one-line meaning for each top-level parameter, but 'theme: Color theme' is vague and 'bars: List of bars with label and value' omits the optional color property on BarData. Since schema description coverage is 0%, the description partially compensates but leaves meaningful gaps for an agent constructing inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Create a vertical bar chart.' It then clarifies the generated artifact with auto-scaled bars, value labels, and axis labels. This clearly distinguishes it from sibling tools like create_pie_chart, create_line_chart, and create_radar_chart.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool: any time a vertical bar chart is needed. It does not explicitly name alternatives or state exclusions, but the chart-specific wording makes the appropriate use case apparent without ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_class_diagramA
Create a UML class diagram.
Generates a class diagram with class boxes showing attributes and methods, connected by relationship arrows (inheritance, composition, etc.).
Args: classes: List of class definitions with name, attributes, and methods relationships: List of relationships between classes title: Optional diagram title output_path: Optional output file path theme: Color theme - "light" or "dark"
Returns: Absolute path to the generated .excalidraw file
| Name | Required | Description | Default |
|---|---|---|---|
| theme | No | light | |
| title | No | ||
| classes | Yes | ||
| output_path | No | ||
| relationships | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral disclosure burden. It states that the tool generates a class diagram, includes relationship arrows, and returns an absolute path to a .excalidraw file — useful behavioral context beyond the schema. It does not discuss overwrite behavior or error cases, but for a diagram-creation tool the core behavior is adequately disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured: a one-sentence purpose, a concise behavior summary, a clean Args list, and a Returns line. Every sentence adds information and there is no filler or repetition of schema defaults.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a creation tool with five parameters, one required, and no annotations, the description covers the purpose, key parameters, and output format. It is missing minor context such as what happens when output_path is omitted or how the generated file relates to sibling tools like modify_diagram or export_diagram, but it is otherwise complete enough to call correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. The 'Args' section explains the meaning of all five parameters, including that classes contain name/attributes/methods, relationships connect classes, and theme takes 'light' or 'dark'. This adds real semantics beyond the raw schema, though it leaves deeper nested details to the schema definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Create a UML class diagram.' It then elaborates on what the diagram contains — class boxes with attributes/methods and relationship arrows — which clearly distinguishes it from siblings like create_sequence_diagram or create_er_diagram.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this tool is for UML class diagrams, and the 'Args' section clarifies required inputs. However, it provides no explicit guidance on when to choose this over alternatives such as create_er_diagram or create_architecture_diagram, and no exclusions or alternative routing are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_decision_treeA
Create a decision tree diagram.
Generates a tree with diamond-shaped decision nodes and rectangular outcome nodes, connected by labeled edges.
Args: nodes: List of nodes with id, label, and type edges: List of edges with from, to, and optional label title: Optional diagram title output_path: Optional output file path theme: Color theme
Returns: Absolute path to the generated .excalidraw file
| Name | Required | Description | Default |
|---|---|---|---|
| edges | Yes | ||
| nodes | Yes | ||
| theme | No | light | |
| title | No | ||
| output_path | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full disclosure burden. It substantively covers behavior: it generates diamond/rectangle node shapes, labeled edges, writes a .excalidraw file, and returns the absolute path. It omits secondary details like overwrite behavior and path handling, but the core side effect and output contract are clear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well organized: an overview sentence, a second sentence with key visual semantics, an Args list, and a Returns line. Every sentence contributes a distinct fact, with no filler or redundant restatement of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and low schema description coverage, the description provides the essential call contract: required inputs, optional parameters, node/edge shape behavior, and the exact return value. Missing details like overwrite behavior and theme options are minor operational gaps for this kind of generator.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the Args list must compensate. It adds brief but useful semantics for all five parameters, clarifies edge label optionality, and lists the node/edge fields. It does not explain theme value choices or node type enum values in depth, but the schema's nested definitions cover node and edge field details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource ('decision tree diagram') and adds distinguishing visual details: diamond decision nodes, rectangular outcome nodes, and labeled edges. This clearly separates it from generic create_diagram and other diagram-type siblings without needing to open the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for decision-tree diagrams through its name and opening sentence, but it never explicitly says when to prefer this tool over create_flowchart, create_mindmap, or create_diagram, nor does it give exclusion criteria. Usage context is present but not stated as routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_diagramA
Create any type of diagram with a single unified tool.
This is a convenience tool that routes to the specific diagram tool based on the diagram_type parameter. Use list_diagram_types to see all available types.
Args: diagram_type: Type of diagram (flowchart, sequence, mindmap, er, class, state, timeline, pie, kanban, network, quadrant, journey, wireframe, org, swot, architecture) data: Diagram-specific data (varies by type) title: Optional diagram title output_path: Optional output file path theme: Color theme - "light" or "dark"
Returns: Path to generated file or error message
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | ||
| theme | No | light | |
| title | No | ||
| output_path | No | ||
| diagram_type | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It reveals that it dispatches to a type-specific diagram tool and states it returns a file path or error message. However, it does not explain side effects like whether files are always written to disk, how output_path interacts with the current workspace, or what error conditions may occur.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a purpose sentence, a short routing explanation, an Args list, and a Returns line. It is efficient and front-loaded. The only minor redundancy is that 'any type of diagram' is followed by an explicit type list, but that list is practically useful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with a nested free-form data object and no per-type schemas, the description gives a reasonable high-level overview and points to list_diagram_types, but it does not explicitly instruct the agent to use that tool to learn data structures. The output schema covers return shape, but the per-type data requirements remain a notable gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It usefully enumerates the diagram_type values and explains theme, title, and output_path. The required 'data' parameter, however, is only described as 'Diagram-specific data (varies by type)', which is too vague to guide an agent in constructing valid input without further lookup.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a clear verb and resource: 'Create any type of diagram with a single unified tool.' It goes further by explaining that it routes to specific diagram tools via the diagram_type parameter, which distinguishes it from the many type-specific siblings like create_flowchart or create_sequence_diagram.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description establishes clear context for when to use this tool: it is a convenience router that handles many diagram types from one entry point, and it points to list_diagram_types for available types. It does not explicitly state when to prefer a specific sibling tool, but the routing explanation makes the general-purpose use case clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_er_diagramA
Create an Entity-Relationship (ER) diagram.
Generates a database-style ER diagram with entity boxes showing attributes and relationship arrows with cardinality labels.
Args: entities: List of entities with name and attributes relationships: List of relationships between entities title: Optional diagram title output_path: Optional output file path
Returns: Absolute path to the generated .excalidraw file
| Name | Required | Description | Default |
|---|---|---|---|
| theme | No | light | |
| title | No | ||
| entities | Yes | ||
| output_path | No | ||
| relationships | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden. It explains what the diagram contains, that the output is an .excalidraw file, and that the return value is an absolute path. It does not mention overwrite behavior or what happens when output_path is omitted, but these are minor for a generation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and front-loaded with a clear summary, followed by a compact Args list and a Returns line. Every sentence adds useful information with no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one required parameter and a fairly rich input schema, the description is nearly complete: it defines the diagram style, the key inputs, the output artifact, and the return value. The main gaps are the omitted theme parameter and the unspecified default behavior when output_path is null.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Top-level schema description coverage is 0%, so the description's Args section must compensate. It explains entities, relationships, title, and output_path at a basic level, but it omits the theme parameter entirely and does not detail the relationship fields such as cardinality or label, leaving that to the nested schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Create an Entity-Relationship (ER) diagram.' It further distinguishes the tool by describing database-style entity boxes, attributes, relationship arrows, and cardinality labels, which clearly separates it from sibling diagram tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: this tool is for ER diagrams, specifically database-style ones with entities and cardinality-labeled relationships. It does not explicitly name alternatives or state when not to use it, but the specialized purpose makes the intended use case evident.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_flowchartA
Create a flowchart diagram with Sugiyama hierarchical auto-layout.
Generates a hand-drawn style Excalidraw flowchart from nodes and edges. Handles branches, merges, cycles, and disconnected subgraphs. Supports Chinese/CJK text with accurate width estimation.
Args: nodes: List of nodes with label and optional color edges: List of edges connecting nodes (by label or 0-based index) direction: Layout direction - "LR" (left to right), "RL", "TB" (top to bottom), "BT" title: Optional diagram title output_path: Optional output file path (default: /tmp/flowchart.excalidraw) theme: Color theme - "light" (default) or "dark"
Returns: Absolute path to the generated .excalidraw file
| Name | Required | Description | Default |
|---|---|---|---|
| edges | Yes | ||
| nodes | Yes | ||
| theme | No | light | |
| title | No | ||
| direction | No | LR | |
| output_path | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden and does a solid job: it discloses the auto-layout algorithm, hand-drawn Excalidraw style, graph complexity handling, CJK text support, default output path, and returned absolute path. It does not mention overwrite behavior or failure modes, but the disclosed traits go well beyond a generic 'creates a flowchart'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: the first sentence states exactly what it does, followed by useful capability notes, a tidy Args block, and a Returns line. No wasted sentences or redundant restatements.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-parameter, 2-required-parameter tool with no annotations, the description plus schema covers required inputs, defaults, output format, and behavioral capabilities. A brief note about overwriting existing files or a tiny example would make it fully complete, but nothing essential for invoking it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Since the top-level schema has no parameter descriptions, the Args section meaningfully compensates by explaining all six parameters and their defaults (direction values, output_path default, theme default). It omits some nested options like edge style/bidirectional and node shape/group, though those are covered in the schema's $defs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource ('Create a flowchart diagram') and adds distinguishing specifics: Sugiyama hierarchical auto-layout, hand-drawn Excalidraw output, and support for branches, merges, cycles, and disconnected subgraphs. This makes it easy to tell apart from sibling diagram tools even without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for creating flowcharts programmatically from nodes and edges, but it never states when to prefer this over siblings such as import_mermaid_flowchart or create_diagram. There is no explicit when-not guidance or mention of alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_kanban_boardA
Create a Kanban board diagram.
Generates a column-based task board with cards in each column. Great for visualizing workflows, sprints, and task status.
Args: columns: List of columns with name and card labels title: Optional board title output_path: Optional output file path theme: Color theme - "light" or "dark"
Returns: Absolute path to the generated .excalidraw file
| Name | Required | Description | Default |
|---|---|---|---|
| theme | No | light | |
| title | No | ||
| columns | Yes | ||
| output_path | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of explaining side effects. It discloses that a .excalidraw file is generated and an absolute path is returned, but it does not explain where files are written by default or whether existing files are overwritten.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well organized with an overview, an Args block, and a Returns line. It is concise and free of filler, though the 'Great for visualizing...' sentence adds a bit of promotional language that could be trimmed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The core behavior and return value are covered, and the output format is explicitly stated. It lacks detail on default output_path behavior and the nested column color option, leaving some ambiguity for an agent trying to invoke the tool fully correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description compensates by listing each parameter and its meaning. However, it omits the 'color' property available on each KanbanColumn, and it does not indicate which parameters are required beyond inferring from the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb-resource pair ('Create a Kanban board diagram') and elaborates with 'column-based task board with cards in each column,' which clearly distinguishes it from sibling diagram tools like flowcharts or sequence diagrams.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states the tool is 'Great for visualizing workflows, sprints, and task status,' giving an agent context on when to select it. It does not explicitly mention alternatives or exclusions, but the intended use case is reasonably clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_line_chartB
Create a line chart with one or more data series.
Generates a line chart with auto-scaled Y axis, X-axis labels, and color-coded series.
Args: series: List of data series with label and points x_labels: Labels for the X axis title: Optional chart title output_path: Optional output file path theme: Color theme
Returns: Absolute path to the generated .excalidraw file
| Name | Required | Description | Default |
|---|---|---|---|
| theme | No | light | |
| title | No | ||
| series | Yes | ||
| x_labels | Yes | ||
| output_path | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does disclose useful behavioral details: auto-scaled Y axis, X-axis labels, color-coded series, and the return of an absolute path to a generated .excalidraw file. It does not mention overwrite behavior or error cases, but the core behavior is transparent enough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a summary paragraph, Args list, and Returns line. There is minor redundancy between 'Create a line chart...' and 'Generates a line chart...', but the content is otherwise concise and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the tool's output and all parameters at a high level, and an output schema may handle return details. It is less complete for an agent choosing among many sibling diagram and chart tools because it offers no usage context, no parameter value guidance, and no mention of constraints like equal-length x_labels and series data.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate; it lists all five parameters in an Args section with brief meanings, such as 'series: List of data series with label and points.' However, it omits useful constraints like theme value options, how x_labels align with series points, and output_path behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as creating a line chart with one or more data series, using a specific verb and resource. It does not explicitly distinguish itself from sibling chart tools like create_bar_chart or create_pie_chart, but the chart type is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as create_bar_chart or create_pie_chart. It states what the tool does but gives no exclusions, prerequisites, or conditions for choosing it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_mindmapA
Create a mind map diagram from a tree structure.
Generates a tree-style mind map with the root node in the center-left and branches spreading to the right. Each top-level branch gets a distinct color.
Args: root: Root node with label and optional children (nested tree) title: Optional diagram title output_path: Optional output file path (default: /tmp/mindmap.excalidraw)
Returns: Absolute path to the generated .excalidraw file
| Name | Required | Description | Default |
|---|---|---|---|
| root | Yes | ||
| theme | No | light | |
| title | No | ||
| output_path | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does meaningful work: it discloses layout behavior, per-branch coloring, default output path, and the returned absolute .excalidraw path. It does not mention overwrite behavior, but the file-creation side effect is transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded with purpose, and organized into behavior, Args, and Returns sections. Every sentence adds useful information; only a small amount of redundancy exists between the first and second sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The required root is explained as a nested tree and the schema provides MindmapNode label/children details, while output_path and return behavior are covered. The undocumented theme parameter and the absence of overwrite semantics are minor gaps, not blockers.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite 0% top-level schema description coverage, the Args section gives real meaning to root, title, and output_path and adds the default output path. Theme is the one parameter left undocumented in both schema and description, preventing a 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence is explicit: 'Create a mind map diagram from a tree structure.' It names the exact verb, resource, and input shape, and the layout/coloring details make it easy to distinguish from siblings like create_flowchart and create_org_chart.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool via 'from a tree structure,' but it never states alternatives, exclusions, or how to choose between this and the many sibling diagram tools. Context for invocation is present, but routing guidance is not.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_network_diagramA
Create a network topology diagram.
Generates a network diagram with typed nodes (server, database, loadbalancer, etc.) and connections. Different node types get distinct shapes and colors.
Args: nodes: List of network nodes with type links: List of connections between nodes title: Optional diagram title output_path: Optional output file path theme: Color theme - "light" or "dark"
Returns: Absolute path to the generated .excalidraw file
| Name | Required | Description | Default |
|---|---|---|---|
| links | No | ||
| nodes | Yes | ||
| theme | No | light | |
| title | No | ||
| output_path | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden. It usefully discloses that different node types get distinct shapes and colors, and that a path to a .excalidraw file is returned. It does not mention file overwrite behavior, path creation, or failure cases, which would be valuable for a tool that writes files.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-organized into purpose, Args, and Returns. The only minor redundancy is the near-repetition of 'network topology diagram' and 'network diagram' in the first two sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core purpose, parameters, and return value, which is enough for an agent to invoke this tool. It lacks only non-critical context like default output path behavior and file overwrite semantics, and it does not explain why network topology is distinct from architecture diagrams.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The Args section compensates for the 0% top-level schema description coverage by briefly explaining all five top-level parameters, including optionality and theme values. Nested field semantics are mostly delegated to the schema's $defs, which is acceptable, though the description could have elaborated on link structure.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool's action ('Create a network topology diagram') and resource (typed network diagram with nodes and links). It implies differentiation from siblings like create_flowchart or create_er_diagram by its focus on network topology, but it never names an alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies a network-topology use case through terms like 'server', 'database', and 'loadbalancer', but it does not explicitly say when to choose this tool over siblings such as create_architecture_diagram or import_mermaid. There are no direct when-to-use or when-not-to-use instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_org_chartB
Create an organizational chart.
Generates a top-down hierarchical org chart from a tree structure. Each node can have a title/description and subordinates.
Args: root: Root node with label and optional children title: Optional chart title output_path: Optional output file path theme: Color theme
Returns: Absolute path to the generated .excalidraw file
| Name | Required | Description | Default |
|---|---|---|---|
| root | Yes | ||
| theme | No | light | |
| title | No | ||
| output_path | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the behavioral burden. It states the output is an .excalidraw file and the return value is an absolute path, covering the core behavior. However, it does not disclose default file placement, overwrite behavior, or other file-system side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-organized with a summary, explanation, Args, and Returns sections. The opening sentence largely restates the tool name, but the rest adds non-redundant detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
It covers input shape, output file type, and return path, and the schema documents the recursive node structure. Gaps remain around theme values, behavior when output_path is omitted, and file-system side effects, so it is adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the Args section is the main semantic signal. It gives one-line meanings for all four parameters and clarifies the root node's label/children, but it omits node color and does not explain theme value options or output_path semantics beyond 'optional'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific deliverable ('organizational chart'), states it is top-down and hierarchical, and describes tree-structured input. It is clearly distinct from generic diagram tools, though it does not explicitly contrast with sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it: when you have a tree structure to render as an org chart and want an .excalidraw file. It does not say when not to use it or mention alternatives like create_flowchart or import_mermaid.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_pie_chartA
Create a pie chart diagram.
Generates a pie chart with labeled slices showing proportions. Each slice displays its label and percentage.
Args: slices: List of slices with label and value title: Optional chart title output_path: Optional output file path theme: Color theme - "light" or "dark"
Returns: Absolute path to the generated .excalidraw file
| Name | Required | Description | Default |
|---|---|---|---|
| theme | No | light | |
| title | No | ||
| slices | Yes | ||
| output_path | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that each slice displays a percentage and returns an absolute path to a .excalidraw file, implying file creation. It also mentions optional parameters affecting output. It doesn't discuss side effects like overwriting existing files, but the core behavior is clearly described.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured: a short opening summary followed by a clear Args list and return value. Every sentence adds value, and the most important purpose is front-loaded. No redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple diagram tool, the description covers its main function, key parameters, and return value. It doesn't explain default theme or output path behavior, but these are minor given the explicit optionality. The return type is clearly stated, and no hidden complexities are left unexplained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% for top-level parameters, so the description must supplement. It provides brief explanations for each parameter (e.g., theme as 'light' or 'dark', output_path as optional file path), which adds meaning beyond raw types. However, it omits details like default output behavior or slice color handling, leaving some semantics to inference.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it creates a pie chart with labeled slices and percentages. The verb 'Create' and resource 'pie chart' are specific, and the context of sibling tools makes the purpose unambiguous. However, it doesn't explicitly differentiate from bar/line charts, relying on the tool name to imply contrast.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use a pie chart versus other chart types (e.g., bar, line). It only describes what the tool does without advising on appropriate use cases or alternatives. The implicit usage is 'when you need a pie chart,' but no explicit reasoning or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_quadrant_chartA
Create a quadrant (2x2 matrix) chart.
Generates a four-quadrant chart for positioning items along two axes. Great for priority matrices, effort/impact charts, and positioning maps.
Args: items: List of items with label and x/y position (0-1 range) x_label: X axis label (e.g., "Effort") y_label: Y axis label (e.g., "Impact") quadrant_labels: Optional 4 labels [top-right, top-left, bottom-right, bottom-left] title: Optional chart title output_path: Optional output file path theme: Color theme - "light" or "dark"
Returns: Absolute path to the generated .excalidraw file
| Name | Required | Description | Default |
|---|---|---|---|
| items | Yes | ||
| theme | No | light | |
| title | No | ||
| x_label | No | X Axis | |
| y_label | No | Y Axis | |
| output_path | No | ||
| quadrant_labels | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden of behavioral disclosure. It states the output behavior clearly: 'Returns: Absolute path to the generated .excalidraw file,' and mentions optional output path and theme. It does not detail file-overwrite behavior or default output location, but for a chart generation tool this is a reasonable level of transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured: a one-line purpose, a use-case sentence, an Args list, and a Returns line. It is appropriately sized for a 7-parameter tool. There is slight redundancy between 'Create a quadrant chart' and 'Generates a four-quadrant chart,' but overall the structure is clear and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 7 parameters, no annotations, and an output schema, the description is largely complete: it covers purpose, when to use it, all parameter semantics, and the return value. Minor gaps include not specifying what happens when output_path is omitted and not mentioning item color, but these do not seriously hinder correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description compensates well by enumerating every parameter and adding meaning: item positions must be in the 0-1 range, quadrant_labels follow a specific four-label order, theme is 'light' or 'dark', and output_path determines the output file. It omits the optional per-item color field, but the schema already documents that.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Create a quadrant (2x2 matrix) chart.' It further clarifies the tool's role with 'Generates a four-quadrant chart for positioning items along two axes' and gives concrete use cases. This clearly distinguishes it from sibling chart/diagram tools by its unique 2x2 matrix structure.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context with 'Great for priority matrices, effort/impact charts, and positioning maps.' It does not explicitly name alternatives or state when not to use this tool, but the use-case framing is sufficient for an agent to select it appropriately among chart-related siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_radar_chartA
Create a radar/spider chart.
Generates a radar chart with axes radiating from center. Supports single or multiple data series overlay.
Args: axes: List of axis names (minimum 3) values: Single set of values (0-1), one per axis series: Multiple series for comparison title: Optional chart title output_path: Optional output file path theme: Color theme
Returns: Absolute path to the generated .excalidraw file
| Name | Required | Description | Default |
|---|---|---|---|
| axes | Yes | ||
| theme | No | light | |
| title | No | ||
| series | No | ||
| values | No | ||
| output_path | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral disclosure burden. It discloses that the tool generates a chart file, supports overlaying series, and returns an absolute path to a .excalidraw file. It does not mention overwrite behavior or what happens when output_path is omitted, but the core side effects are clearly stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose and organized with an Args section and Returns line. It is efficient and does not contain filler, though the opening two sentences are slightly repetitive ('Create' and 'Generates').
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a moderately complex tool with no annotations and a sparse schema, the description covers the main purpose, parameters, and return value. However, it omits important invocation details such as whether values and series are mutually exclusive, whether series values must match the axes count, and what theme values are supported beyond the schema default.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for missing parameter meaning. It adds useful semantics: axes must have minimum 3, values are 0-1 and one per axis, series are for comparison, and output_path/title are optional. Theme is only described as 'Color theme', leaving allowed values vague, but overall the description adds substantial meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Create a radar/spider chart' and explains the visual structure with axes radiating from center. This clearly distinguishes it from sibling diagram and chart tools without needing to inspect their schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes it clear this is for radar/spider charts and mentions single or multiple series overlay, but it does not explicitly state when to prefer this tool over alternatives or when not to use it. Usage context is implied rather than directly articulated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_sequence_diagramA
Create a UML-style sequence diagram.
Generates a hand-drawn style sequence diagram with participants, lifelines, and messages. Supports solid arrows for requests and dashed arrows for responses.
Args: participants: List of participant names (ordered left to right) messages: List of messages with from, to, label, and optional style title: Optional diagram title output_path: Optional output file path (default: /tmp/sequence.excalidraw)
Returns: Absolute path to the generated .excalidraw file
| Name | Required | Description | Default |
|---|---|---|---|
| theme | No | light | |
| title | No | ||
| messages | Yes | ||
| output_path | No | ||
| participants | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does disclose that the tool generates a hand-drawn style .excalidraw file and returns its absolute path, including the default output path. However, it does not mention overwrite behavior, theme handling, or other side effects, which leaves some behavioral uncertainty.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well structured with a one-line purpose, style notes, and an Args/Returns block that is easy to scan. There is minor redundancy between "Create" and "Generates," but no wasted or irrelevant sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Core inputs and the output artifact are covered, including the file path and default location, and the output schema removes the need to explain return values. Yet the description lacks usage context versus sibling tools and fails to mention the theme parameter, making it adequate but not fully complete for a 5-parameter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the Args block compensates by explaining participant ordering, message fields (from, to, label, style), optional title, and the output_path default. It omits the theme parameter entirely, though the schema does expose its type and default, so the practical gap is small.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource, "Create a UML-style sequence diagram," and elaborates with participants, lifelines, messages, and arrow styles. This clearly distinguishes it from sibling diagram tools such as create_flowchart or create_class_diagram without requiring schema inspection.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use when an interaction or sequence diagram is needed, but it never explicitly states when to prefer this tool over alternatives, nor does it provide negative guidance. The solid/dashed arrow note helps with message styling but not with tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_state_diagramA
Create a UML state machine diagram.
Generates a state diagram with states (rounded rectangles), initial states (filled circles), final states (double border), and transition arrows with labels.
Args: states: List of state definitions transitions: List of transitions between states title: Optional diagram title output_path: Optional output file path theme: Color theme - "light" or "dark"
Returns: Absolute path to the generated .excalidraw file
| Name | Required | Description | Default |
|---|---|---|---|
| theme | No | light | |
| title | No | ||
| states | Yes | ||
| output_path | No | ||
| transitions | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the behavioral disclosure burden and covers the essentials: it generates a state diagram, describes the visual notation for initial/final states, and reveals the return value as an absolute path to a .excalidraw file. It does not address side effects such as overwriting existing files at output_path, which keeps it from being a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded, with a one-sentence purpose followed by concise Args and Returns sections. Every sentence earns its place; there is no fluff or repetition of the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with five parameters and no annotations, the description covers the required info: what the diagram looks like, what each argument is, and what is returned. It could be more complete by noting behavior when output_path is omitted or a file already exists, but nothing essential to making a basic correct call is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage for top-level parameters is 0%, so the description's Args block is the main source of meaning for states, transitions, title, output_path, and theme. It adds practical value by naming the theme values 'light' or 'dark' and clarifying optionality, though states/transitions are described only at a high level.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb-and-resource statement, 'Create a UML state machine diagram,' and reinforces it with the visual elements users can expect (states, initial/final markers, transition arrows with labels). This clearly distinguishes it from sibling diagram tools like create_sequence_diagram or create_flowchart.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Intended use is implied by the phrase 'Create a UML state machine diagram' and the states/transitions parameter descriptions, but the description never explicitly says when to choose this tool over alternatives or gives exclusions. No sibling routing or 'use create_flowchart instead' guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_swot_analysisA
Create a SWOT analysis diagram.
Generates a color-coded 2x2 SWOT matrix with bullet-pointed items in each quadrant (Strengths, Weaknesses, Opportunities, Threats).
Args: strengths: List of strength items weaknesses: List of weakness items opportunities: List of opportunity items threats: List of threat items title: Optional diagram title output_path: Optional output file path theme: Color theme
Returns: Absolute path to the generated .excalidraw file
| Name | Required | Description | Default |
|---|---|---|---|
| theme | No | light | |
| title | No | ||
| threats | No | ||
| strengths | No | ||
| weaknesses | No | ||
| output_path | No | ||
| opportunities | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden. It discloses the generated artifact type (.excalidraw), output structure (2x2, color-coded, bullet points), and return value (absolute path). It stops short of describing edge cases such as null/empty lists or file overwrite behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, then uses a compact Args/Returns structure to cover all parameters and output. No filler or redundant phrasing beyond the intentionally parallel first two sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter tool with no annotations and no schema-level parameter docs, it covers the essential inputs, the generated file type, and the return value. It could be more complete by documenting valid themes and default output_path behavior, but an agent can make a correct call with the provided information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the Args section compensates by naming and describing all seven parameters, and the first paragraph explains that lists become bullet items in their quadrants. However, descriptions for theme, title, and output_path are minimal and do not specify permitted values or default file-naming behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific action verb and resource, 'Create a SWOT analysis diagram', then elaborates with a concrete output: 'a color-coded 2x2 SWOT matrix with bullet-pointed items in each quadrant'. This clearly distinguishes it from sibling diagram tools like create_flowchart or create_quadrant_chart.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The tool is strongly specialized, so an agent can infer when to use it, but the description never states selection criteria or alternatives. It does not mention, for example, that create_quadrant_chart or create_diagram might be used for non-SWOT quadrant needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_tableA
Create a table diagram.
Generates a grid-based table with header row and data rows. Auto-sizes columns based on content. Great for comparison tables, feature matrices, and data displays.
Args: headers: Column header labels rows: List of rows, each row is a list of cell values title: Optional table title header_color: Header row color name output_path: Optional output file path theme: Color theme
Returns: Absolute path to the generated .excalidraw file
| Name | Required | Description | Default |
|---|---|---|---|
| rows | Yes | ||
| theme | No | light | |
| title | No | ||
| headers | Yes | ||
| output_path | No | ||
| header_color | No | blue |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It explains the generated artifact (grid-based table, auto-sized columns) and the return value (absolute path to a .excalidraw file), but it does not disclose file-system side effects such as overwriting behavior or what happens when output_path is omitted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured: a clear one-line purpose, a short behavior/use-case paragraph, an Args block, and a Returns line. Every sentence adds information, and the most important facts are front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a moderately parameterized creation tool with no annotations, the description covers purpose, behavior, parameters, and return format. It does not specify constraints like row/header length alignment or allowed color/theme values, but the essential information an agent needs to make a basic correct call is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It provides one-line explanations for all six parameters, notably clarifying that rows is 'a list of rows, each row is a list of cell values' and identifying title and output_path as optional. It remains vague on accepted values for header_color and theme, but it covers every parameter with useful meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Create a table diagram,' and then elaborates with concrete details (grid-based table, header row, data rows) and use cases like comparison tables and feature matrices. This clearly distinguishes it from sibling diagram-generation tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states clear contexts where this tool is appropriate: 'Great for comparison tables, feature matrices, and data displays.' It does not explicitly exclude alternatives or list when-not-to-use scenarios, but the use-case framing gives an agent enough context to select it over other diagram tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_timelineA
Create a timeline / Gantt chart diagram.
Generates a horizontal bar chart showing events/tasks over time. Overlapping events are automatically placed on separate rows.
Args: events: List of events with label, start, end, and optional color title: Optional diagram title output_path: Optional output file path (default: /tmp/timeline.excalidraw) theme: Color theme - "light" or "dark"
Returns: Absolute path to the generated .excalidraw file
| Name | Required | Description | Default |
|---|---|---|---|
| theme | No | light | |
| title | No | ||
| events | Yes | ||
| output_path | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden. It does disclose key behaviors: it generates a horizontal bar chart, auto-lays-out overlapping events, uses a default output path, and returns an absolute path. However, it does not mention potential side effects like overwriting an existing file at the output path, which would be relevant for a file-creating tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and concise, with a clear opening sentence, a short behavior note, and an organized Args/Returns section. Every line adds useful information; there is no filler or repetition of schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 4 parameters, no annotations, and no output schema, the description covers the tool's purpose, parameter semantics, default behavior, and return value. It is slightly incomplete on constraints like numeric time units and whether existing files are overwritten, but an agent can generally call this tool correctly with the information provided.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is reported as 0%, so the description must compensate. It does so by listing every parameter — events with label/start/end/optional color, title, output_path with default, and theme with allowed values. It omits type/format details such as how start/end numbers are interpreted, but the description adds meaningful semantics beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as creating a timeline/Gantt chart, with a specific resource (a horizontal bar chart over time) and behavior (auto-separating overlapping events). This distinguishes it clearly from sibling diagram tools like create_flowchart or create_sequence_diagram.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool — when a timeline or Gantt chart is needed — but it does not explicitly state when to prefer this over alternatives or mention any exclusions. The usage context is clear from the purpose but not spelled out as guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_user_journeyA
Create a user journey map.
Generates a horizontal journey map showing steps with emotion indicators. Each step shows a label, emotion (color-coded), and optional description.
Args: steps: List of journey steps with label and emotion title: Optional journey title output_path: Optional output file path theme: Color theme - "light" or "dark"
Returns: Absolute path to the generated .excalidraw file
| Name | Required | Description | Default |
|---|---|---|---|
| steps | Yes | ||
| theme | No | light | |
| title | No | ||
| output_path | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavior. It mentions the output is a horizontal map with color-coded emotions and returns an absolute path to an .excalidraw file, but it does not describe potential side effects (e.g., overwriting existing files, creating parent directories), error handling if invalid emotion values are passed, or whether the output path defaults to a specific location. This is a significant gap for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: a clear opening, a compact Args list, and a Returns line. All information is relevant and front-loaded; no wasted words or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the essential behavior (horizontal journey map, emotion indicators, output path) and key parameters. It doesn't explain the steps array structure beyond what the schema provides, but that is covered. For a creation tool, this is sufficiently complete to enable correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides detailed descriptions for every parameter (e.g., emotion allowed values, title, output_path). The description repeats these details without adding new semantics. Since schema coverage is 0% (description adds no extra value), baseline 3 is appropriate—the schema does the heavy lifting and the description doesn't compensate further.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States exactly what it does: 'Create a user journey map' and elaborates with 'horizontal journey map showing steps with emotion indicators.' This clearly distinguishes it from other diagram tools among siblings (flowchart, sequence diagram, etc.) which serve different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage (when you need a user journey map) but does not explicitly contrast with alternatives or state when not to use it. It lacks guidance such as 'use this instead of create_flowchart when you need emotion-based steps,' leaving the agent to infer from the tool name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_wireframeA
Create a wireframe UI mockup.
Generates a simple wireframe with common UI components stacked vertically. Great for quick screen mockups and UI planning.
Component types:
header: Full-width header bar
text: Plain text block
button: Centered button
input: Text input field
image: Image placeholder
card: Content card
nav: Navigation bar
divider: Horizontal line
Args: components: List of UI components in order device: Device frame: "phone", "tablet", "desktop", "none" title: Optional wireframe title output_path: Optional output file path theme: Color theme
Returns: Absolute path to the generated .excalidraw file
| Name | Required | Description | Default |
|---|---|---|---|
| theme | No | light | |
| title | No | ||
| device | No | phone | |
| components | Yes | ||
| output_path | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It explains that the tool generates an .excalidraw file and returns its absolute path, which is useful. However, it does not clarify default output behavior when output_path is omitted, whether existing files are overwritten, or any other file-system side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a short summary, a component-type reference, an Args section, and a Returns section. Every part earns its place, and the key facts are front-loaded. The component list is somewhat long but directly useful because the schema does not enumerate the values.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a creation tool with five parameters, the description covers most information needed to call it correctly: component types, device options, optional arguments, and the return value. The main gap is the lack of detail about default output_path behavior and theme options, which leaves minor ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it mostly does. It enumerates the component types, gives device frame values ('phone', 'tablet', 'desktop', 'none'), and clarifies which arguments are optional. It adds significant meaning beyond the bare schema, though theme values are still underspecified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action and resource: 'Create a wireframe UI mockup' and 'Generates a simple wireframe with common UI components.' It clearly distinguishes itself from sibling diagram/chart tools by focusing on UI mockups rather than flowcharts, architecture diagrams, or charts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use the tool: 'Great for quick screen mockups and UI planning.' It does not explicitly name sibling alternatives or state when not to use it, but the target use case is evident from the wireframe terminology and component list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_diagramA
Export an .excalidraw file to SVG format.
Args: file_path: Path to the .excalidraw file format: Export format - currently "svg" supported
Returns: Path to the exported file
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | svg | |
| file_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral disclosure burden. It does disclose the operation and that a path to the exported file is returned, plus the 'currently svg supported' caveat. However, it does not mention whether the original .excalidraw file is modified, where the SVG is written, or whether existing files are overwritten.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well structured: a one-sentence purpose, a minimal Args list, and a Returns line. It is front-loaded and every sentence earns its place with no superfluous content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter conversion tool with an output schema and a single supported format, the description is complete enough to call correctly. It states the input, the supported format, and the returned artifact, leaving only minor conventional unknowns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the Args section compensates by explaining both parameters: file_path is the path to the .excalidraw file, and format is the export format with SVG currently supported. This adds real meaning beyond the bare schema properties, though it does not explicitly mention format optionality (the schema default already covers that).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Export an .excalidraw file to SVG format.' This clearly states what the tool does and distinguishes it from the many create/import/modify/read sibling tools, none of which export files.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The conversion purpose is clear and the tool is the only export-related sibling, so an agent can infer when to use it. However, the description does not explicitly state when to use it vs. alternatives, nor does it mention exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
import_mermaidB
Import any Mermaid diagram and convert to Excalidraw.
Auto-detects diagram type (flowchart or sequence diagram) and generates the appropriate Excalidraw diagram.
Args: mermaid: Mermaid diagram text (flowchart or sequenceDiagram) output_path: Optional output file path
Returns: Absolute path to the generated .excalidraw file
| Name | Required | Description | Default |
|---|---|---|---|
| theme | No | light | |
| mermaid | Yes | ||
| output_path | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It does disclose the conversion behavior, auto-detection, optional output path, and return of an absolute .excalidraw path. However, it omits details such as what happens when output_path is not provided, whether files are overwritten, how unsupported Mermaid types are handled, and the effect of the theme parameter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured with a one-line summary, an Args section, and a Returns section. It is front-loaded and avoids excessive verbosity, though there is minor redundancy between 'convert to Excalidraw' and 'generates the appropriate Excalidraw diagram.'
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core purpose, primary parameters, and return value, but it leaves meaningful gaps: the theme parameter is undocumented, the supported diagram types are stated inconsistently with 'any Mermaid diagram', and there is no guidance about alternatives among sibling tools. Given no annotations and 0% schema description coverage, the description is only minimally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It adds meaningful context for mermaid ('Mermaid diagram text (flowchart or sequenceDiagram)') and output_path ('Optional output file path'), but it completely omits the theme parameter, which appears in the schema with a default. The description improves on the bare schema but is incomplete for all three parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb and resource: 'Import any Mermaid diagram and convert to Excalidraw.' It also mentions auto-detection of flowchart or sequence diagram types, which hints at a distinction from sibling tools like import_mermaid_flowchart. However, the overbroad claim of 'any Mermaid diagram' followed by only two supported types creates slight ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context: use this tool when you have Mermaid diagram text and want an Excalidraw file. However, it provides no explicit guidance on when to prefer this over siblings like import_mermaid_flowchart, create_flowchart, or create_sequence_diagram, and it does not state any exclusions or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
import_mermaid_flowchartA
Import a Mermaid flowchart and convert to Excalidraw.
Parses Mermaid flowchart syntax and generates a hand-drawn Excalidraw diagram with Sugiyama layout.
Args: mermaid: Mermaid flowchart text output_path: Optional output file path
Returns: Absolute path to the generated .excalidraw file
| Name | Required | Description | Default |
|---|---|---|---|
| theme | No | light | |
| mermaid | Yes | ||
| output_path | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations available, the description carries the behavioral burden. It discloses that parsing produces a hand-drawn Excalidraw diagram via Sugiyama layout, that output_path is optional, and that an absolute path is returned. It does not mention file overwrite behavior, failure modes for invalid Mermaid, or theme effects, leaving some behavioral ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded with the core purpose, and uses a clear Args/Returns structure. Every sentence adds useful information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity and lack of annotations, the description covers the main conversion behavior, input, optional output path, and return value. But it omits the theme parameter, gives no sibling-usage context, and does not clarify what happens when output_path is omitted, so an agent still has notable open questions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains 'mermaid' as flowchart text and 'output_path' as an optional output file path, which adds some meaning beyond bare schema names. However, the 'theme' parameter is entirely absent from the description, leaving a real gap for an agent deciding whether or how to set it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the operation: import Mermaid flowchart syntax and convert it to Excalidraw, including the layout algorithm. It is specific and uses strong verb+resource language, but it does not explicitly differentiate itself from the sibling tool 'import_mermaid'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage: use this when a Mermaid flowchart needs to become an Excalidraw diagram. However, it provides no explicit guidance about when to prefer this tool over alternatives like import_mermaid or create_flowchart, and no exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_diagram_typesA
List all available diagram types and tools.
Returns a formatted list of all diagram types this MCP server can generate, with tool names and descriptions.
Returns: Formatted list of available diagram types
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral burden. It discloses that the tool returns a formatted list and includes tool names and descriptions. For a zero-parameter listing operation, this adequately implies a read-only, side-effect-free behavior, though it does not explicitly state 'read-only'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short but contains redundancy: the opening sentence and the 'Returns:' block both restate the same outcome. It could be trimmed to a single clear sentence without losing meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter listing tool with an output schema present, the description is largely complete. It states what is listed, the format, and the content. Nothing critical is missing for an agent to decide to call it and interpret the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and schema description coverage is 100%, so the schema already exhaustively documents the inputs. The description adds no parameter-level detail, but none is needed; the baseline for zero-parameter tools is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'List all available diagram types and tools.' It clearly states the tool enumerates the diagram types this MCP server can generate, with tool names and descriptions. This distinguishes it from the many create_* and import_* sibling tools by positioning it as a discovery/meta tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: use this tool when you need to know the full set of diagram types the server supports and the tools available for them. It does not explicitly state when not to use it or name alternatives, but the discovery purpose is obvious given the sibling creation tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
modify_diagramA
Modify an existing .excalidraw diagram.
Args: file_path: Path to existing .excalidraw file add_nodes: Nodes to add: [{"label": "New Node", "color": "green", "x": 100, "y": 100}] remove_labels: Labels of nodes to remove add_connections: New connections: [{"from": "Node A", "to": "Node B"}] output_path: Optional output path (default: overwrite input file)
Returns: Path to the modified file
| Name | Required | Description | Default |
|---|---|---|---|
| add_nodes | No | ||
| file_path | Yes | ||
| output_path | No | ||
| remove_labels | No | ||
| add_connections | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral disclosure burden. It transparently notes a critical side effect: output_path defaults to overwriting the input file. It also documents the operations performed (add nodes, remove labels, add connections) and the return value, giving agents a clear picture of the mutation behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured into Args and Returns sections, with each line earning its place. The examples are compact yet informative, and the key mutation behavior is front-loaded. No filler or redundancy is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter mutation tool with no annotations and zero schema description coverage, this description is complete. It covers all parameters, the default overwrite behavior, the optional output path, and the return value. An agent has enough information to select and invoke the tool correctly without inspecting schemas further.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must fully compensate, and it does. Every parameter is listed with a concrete shape or example, including add_nodes object format, add_connections from/to pairs, and the output_path default. This adds meaning far beyond the bare input schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Modify an existing .excalidraw diagram.' This clearly distinguishes modify_diagram from the many create_*, import_*, read_diagram, and export_diagram sibling tools. The scope and action are immediately obvious.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'existing .excalidraw diagram' implies this tool is for editing already-created diagrams rather than creating new ones, giving some usage context. However, the description never explicitly states when to choose this tool over alternatives like create_diagram or when not to use it. Guidance is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_diagramA
Read and analyze an existing .excalidraw file.
Returns a structured description of the diagram including:
List of shapes with labels and positions
List of connections between shapes
Color scheme used
Args: file_path: Path to the .excalidraw file
Returns: Human-readable description of the diagram structure
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral disclosure burden. It conveys a read-only operation through 'Read and analyze' and specifies what kind of output to expect: a description of shapes, connections, and colors. It does not expand on error cases or permissions, but for a simple read tool this is reasonably transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core purpose, followed by useful output and argument details. There is minor redundancy between the opening 'Returns a structured description...' and the later 'Returns: Human-readable description...', but overall the structure is clear and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read tool, the description covers the action, the input file type, and the return value in enough detail for an agent to call it correctly. The sibling tool names further reinforce when this tool is appropriate. Nothing essential for invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides only a title and type for file_path, with 0% description coverage. The description compensates by stating 'Path to the .excalidraw file,' clarifying that the parameter is a filesystem path to an Excalidraw file. This is minimal but sufficient for a single-parameter tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb-resource pair: 'Read and analyze an existing .excalidraw file.' This clearly distinguishes the tool from the many create/import/modify sibling tools and defines exactly what it operates on. The listed return contents (shapes, connections, color scheme) further clarify its analytical purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'existing .excalidraw file' provides clear context that this tool is for inspecting already-created diagram files, separating it from creation and modification siblings. However, it does not explicitly state when not to use it or name alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
28 tool updates
v0.5.3- First observed
create_architecture_diagram - First observed
create_bar_chart - First observed
create_class_diagram - First observed
create_decision_tree - First observed
create_diagram - First observed
create_er_diagram - First observed
create_flowchart - First observed
create_kanban_board - First observed
create_line_chart - First observed
create_mindmap - First observed
create_network_diagram - First observed
create_org_chart - First observed
create_pie_chart - First observed
create_quadrant_chart - First observed
create_radar_chart - First observed
create_sequence_diagram - First observed
create_state_diagram - First observed
create_swot_analysis - First observed
create_table - First observed
create_timeline - First observed
create_user_journey - First observed
create_wireframe - First observed
export_diagram - First observed
import_mermaid - First observed
import_mermaid_flowchart - First observed
list_diagram_types - First observed
modify_diagram - First observed
read_diagram
TDQS
Scored across 28 tools
Most tools are clearly separated by diagram type (flowchart, sequence, ER, etc.), but there is meaningful overlap: import_mermaid subsumes import_mermaid_flowchart, create_diagram duplicates every create_* tool, and several tree-like diagram tools (flowchart, org chart, mindmap, decision tree) could be confused for generic hierarchy requests. Descriptions help, but the boundaries are not always crisp.
The create_<diagram_type> convention is consistent and predictable across the majority of tools, making the set easy to scan. Minor deviations include import_mermaid vs. import_mermaid_flowchart, the generic create_diagram, and a few names like create_swot_analysis that break the diagram suffix pattern.
28 tools is on the heavy side, though the breadth of diagram types partially justifies it. The count is inflated by redundancy: import_mermaid_flowchart is largely subsumed by import_mermaid, create_diagram duplicates all specialized creators, and list_diagram_types is a metadata helper rather than a core operation.
The server covers a wide range of diagram creation plus modify, read, export, and Mermaid import, so most user workflows have a path to completion. Minor gaps exist around full edit fidelity—modify_diagram only supports adding/removing nodes and connections, not arbitrary repositioning or restyling—and there is no support for importing other diagram formats.
Maintenance
Related MCP Connectors
AI agent draws editable hand-drawn diagrams (flowchart, ER, architecture) via MCP, not static images
Generate dynamic Mermaid diagrams and charts with AI assistance. Customize styles and export diagr…
Visual AI for strategic thinking — SWOT, flowcharts, mindmaps, Gantt diagrams as polished SVG.
Generate cloud architecture diagrams, flowcharts, and sequence diagrams.
Related MCP Servers
- FlicenseAqualityBmaintenanceGenerates beautiful Excalidraw diagrams from natural language descriptions using a local llama.cpp LLM, entirely offline.3-
- AlicenseAqualityDmaintenanceGenerates Excalidraw architecture diagrams with support for 60+ components including GCP, Kafka, and AI/Agentic shapes. Provides MCP tools for creating, modifying, and converting diagrams from structured input or Mermaid syntax.41MIT
- AlicenseNot gradedqualityAmaintenanceThe diagram-quality layer for AI agents — an opinionated Excalidraw methodology (isomorphism test, evidence artifacts, multi-zoom, container discipline) plus a render-view-fix loop. Accepts skeleton and Mermaid input, 5 publishable themes, dual Node/Python renderer. Proven on a 77-diagram published book.4MIT
- AlicenseNot gradedqualityDmaintenanceConverts Mermaid diagrams into Excalidraw diagrams, serves them locally, and opens the result in your browser.29 npm3MIT