Agent skill

Uml MCP Diagrams

by antoinebou12 in antoinebou12/uml-mcp

Creates diagrams via the uml-mcp MCP server (generateuml, generateumlimage, validateuml, listdiagramtypes, generateumlbatch) and returns shareable Kroki URLs or inline chat images.

MITAuto-check passedDevelopment

Install Uml MCP Diagrams

skills CLI
$ npx skills add antoinebou12/uml-mcp --skill uml-mcp-diagrams -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install antoinebou12/uml-mcp uml-mcp-diagrams --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/antoinebou12/uml-mcp.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.skill/skills/uml-mcp-diagrams .claude/skills/uml-mcp-diagrams && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
uml-mcp-diagrams
GitHub stars
105
Token cost
~3.2k tokens
SKILL.md length
1,490 words
Files
1
Skills in repo
7
Repo updated
First seen
Licence
MIT

At a glance

Creates diagrams via the uml-mcp MCP server (generateuml, generateumlimage, validateuml, listdiagramtypes, generateumlbatch) and returns shareable Kroki URLs or inline chat images.

  • Works in 4 steps: If diagram_type is unknown or ambiguous,… → For starter syntax, use uml://templates… → Optional quality pass: call validate_uml… → …
  • The user wants diagrams
  • SKILL.md covers Goal, Positive patterns (do), Negative patterns (avoid) and Before generating, plus 10 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Uml MCP Diagrams is an agent skill from antoinebou12/uml-mcp. Creates diagrams via the uml-mcp MCP server (generateuml, generateumlimage, validateuml, listdiagramtypes, generateumlbatch) and returns shareable Kroki URLs or inline chat images. Use when the user wants diagrams, PlantUML/Mermaid/D2/UML, URLs, Kroki, goat/umlet, or diagramtype.

Its SKILL.md is about 3.2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Development, covering Diagrams. It works with Model Context Protocol and Mermaid. The repository describes itself as: UML-MCP Server is a UML diagram generation tool based on MCP (Model Context Protocol), which can help users generate various types of UML diagrams through natural language…. The licence is MIT.

When your agent uses it

  • The user wants diagrams
  • PlantUML/Mermaid/D2/UML

Example prompts

  • “Use the uml-mcp-diagrams skill to create diagrams via the uml-mcp MCP server (generateuml, generateumlimage, validateuml, listdiagramtypes…”
  • “/uml-mcp-diagrams”

Workflow steps

4 steps, taken from the first numbered list in SKILL.md.

  1. If diagram_type is unknown or ambiguous, read uml://types (or uml://capabilities) to list valid types and supported backends.
  2. For starter syntax, use uml://templates or uml://examples; use resources/list for extra guides (e.g. named Mermaid samples, BPMN 2.0.2…
  3. Optional quality pass: call validate_uml with the same diagram_type, code, and planned output_format. Use strict: true for stricter…
  4. If you cannot read uml://types, call list_diagram_types for the same metadata.

What it can do on your machine

Read from SKILL.md and the folder at commit b4413c7. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are markdown).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • github.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Uml MCP Diagrams loads about 3.2k tokens when it runs. Until then it costs about 77 tokens; SKILL.md has 1,490 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~77
When it runs · the whole SKILL.md, loaded when a task matches
~3.2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from antoinebou12/uml-mcp at commit b4413c7, republished under its MIT licence (© antoinebou12). 1,490 words, ~3,186 tokens.

Download SKILL.mdSave it as .claude/skills/uml-mcp-diagrams/SKILL.md (or your agent's skills folder).
name
uml-mcp-diagrams
description
Creates diagrams via the uml-mcp MCP server (generate_uml, generate_uml_image, validate_uml, list_diagram_types, generate_uml_batch) and returns shareable Kroki URLs or inline chat images. Use when the user wants diagrams, PlantUML/Mermaid/D2/UML, URLs, Kroki, goat/umlet, or diagram_type.

Maintainers: Keep tool tables and output_dir wording aligned with the Smithery bundle uml-skill/SKILL.md (diagramming-uml) and the Claude Code plugin skill plugins/uml-mcp/skills/uml-diagrams/SKILL.md when you edit any of them. .github/skills/uml-mcp-diagrams/SKILL.md (GitHub Copilot) must stay a byte-identical copy of this file.

uml-mcp diagram workflow

Goal

Turn the user’s intent into valid diagram_type + source code, call generate_uml (or generate_uml_image for chat-visible pictures), and surface the url (and playground when present). Prefer URL-first output (omit output_dir / use null) unless the user explicitly asks to save a file. When the user asks to show the diagram in chat, prefer generate_uml_image with output_format: png.

Positive patterns (do)

  • Confirm types first when unsure: read uml://types / uml://formats or call list_diagram_types before generate_uml. Catalog includes ~37 Kroki-backed types (including goat, umlet).
  • Match diagram_type to the language of code (e.g. Mermaid body → mermaid; PlantUML with @startuml → plantuml or the specific Kroki PlantUML subtype if applicable).
  • Use validate_uml before an expensive retry loop or when the user pastes untrusted LLM output. Prefer strict: true for Mermaid sequence diagrams.
  • Mermaid sequence: put each statement on its own line. Do not pack sequenceDiagram; participant A; A->>B: hi on one line — strict validation rejects that; flowcharts may still use end-of-statement ;.
  • Return url, playground, and a short copy of code every time. Always format them as markdown links in the chat reply (see reply template). Never omit Playground when the tool returned it.
  • For inline chat images, call generate_uml_image (png default). It fetches bytes even on hosted Vercel when MCP_URL_ONLY is on. generate_uml with output_format: png/jpeg also force-fetches. Tool text includes ![diagram](url), URL:, and Playground: for clients that do not attach ImageContent.
  • When an LLM produces the diagram text first, prefer fenced or raw source that downstream tools accept; strip ``` fences from pasted input when needed, but still prefer clean DSL without prose inside the diagram.

Negative patterns (avoid)

  • Do not invent diagram_type or output_format values; confirm against uml://types / uml://formats.
  • Do not set output_dir unless the user asked for files on disk (MCP).
  • Do not mix human-readable essays into code—Kroki expects valid DSL only (prose belongs in the chat message, not inside PlantUML/Mermaid source).
  • Do not pass invalid JSON for diagram_options when the API expects a JSON object—never use a bare array or malformed string.
  • Do not pack Mermaid sequenceDiagram statements with ; on a single physical line.
  • Prefer not to stampede Mermaid-heavy generate_uml_batch calls on hosted MCP (server caps concurrency when most items are Mermaid); recover failed Mermaid items with solo generate_uml.
  • Do not embed local filesystem paths like output/foo.png in chat markdown; use MCP image content or the returned HTTPS URL.
  • Do not invent diagram URLs or playground links — copy them from the MCP tool result only.

Before generating

  1. If diagram_type is unknown or ambiguous, read uml://types (or uml://capabilities) to list valid types and supported backends.
  2. For starter syntax, use uml://templates or uml://examples; use resources/list for extra guides (e.g. named Mermaid samples, BPMN 2.0.2 reference) when those URIs are registered.
  3. Optional quality pass: call validate_uml with the same diagram_type, code, and planned output_format. Use strict: true for stricter Mermaid/D2 checks when needed.
  4. If you cannot read uml://types, call list_diagram_types for the same metadata.

Complex requests

For ambiguous specs, large diagrams, or many actors/states/messages, plan before coding:

  1. Use an ordered plan (participants, scope, emphasis), revise when wrong, and split the work when one diagram would be too large for a single canvas.
  2. If the client exposes a sequential-thinking tool or an installed sequential-thinking skill, prefer it for that planning phase, then produce diagram source and call validate_uml / generate_uml.

Readability (Kroki / DSL)

These rules apply to diagram source (Mermaid, PlantUML, D2, etc.), not to HTML layout:

  • Complexity: Aim for roughly <25 nodes in Mermaid and <30 in PlantUML; fewer lifelines in sequence diagrams. If the user’s scope exceeds that, split into two diagrams or an overview plus a detail view.
  • Sequence: Time flows top → bottom. Do not model upward message arrows. Use activation where the notation supports it (PlantUML activate / deactivate; Mermaid activate / deactivate when appropriate). Close every activation interval you open. Mermaid: one statement per line.
  • State and flowchart: Label every transition or decision branch (event/guard or yes/no). Avoid drawing the same “to error” edge from every state; prefer one note, a group, or a single * / global exception path where the DSL allows.
  • Emphasis: At most one strong visual highlight when the backend allows it (e.g. one Mermaid classDef / highlighted participant, one PlantUML skinparam / styled element, one D2 node style). Avoid rainbow or per-node rainbow fills — hierarchy and labels carry meaning.
  • Arrow overlap: Set one layout direction (flowchart TD/LR, PlantUML left to right direction + skinparam linetype ortho, D2 direction: right), group related nodes (subgraph / together { } / D2 container), and use directional arrows (-down->, -right->) on edges that would otherwise cross. Canonical per-backend rules live in the algorithm_explainer and paper_concept_diagram prompt outputs (and uml_diagram_with_thinking).

LLM prompt channels: positive vs negative

When the user (or pipeline) splits positive (must follow) and negative (must refuse) instructions for an LLM that emits diagram source, keep both sides short and non-overlapping.

ChannelPurposeGood content
positiveAdditive constraints on the model“Output only valid Mermaid.” “Use sequenceDiagram.” “One statement per line.” “No prose outside the diagram.”
negativeThings to refuse“No markdown fences.” “No YAML front matter.” “No semicolon-packed sequenceDiagram lines.” “No explanation after the diagram.”

Positive pattern: short, imperative, DSL-focused. Negative pattern: forbid specific failure modes you see in logs (fences, preamble, wrong diagram type keyword).

Do not duplicate the entire user spec in both positive and negative—negatives should be exclusions, not a second copy of the task.

Show full SKILL.md (567 more words)Show less

Prose around URLs

For assistant-facing explanations (summaries, caveats, next steps), you may use a Humanizer skill if it is installed in the client. Do not run humanizer output through diagram code — Kroki needs valid DSL only.

Calling generate_uml

InputGuidance
diagram_typeRequired. Must match a key from uml://types (e.g. class, sequence, mermaid, d2, goat, umlet).
codeRequired. Source in the language that matches diagram_type.
output_dirOmit or null for URL-first output (no write to disk; responses may include content_base64 when no directory is set and URL-only mode is off). Set only if the user wants a saved image.
output_formatDefault svg is usually best for URLs. Use png/jpeg when you want MCP ImageContent in chat (force-fetch even under URL-only). Mermaid raster uses mermaid.ink /img/?type=png (not /png/).
themePlantUML types only; omit otherwise.
scaleSVG only; optional size multiplier.

Calling generate_uml_image

Use when the user wants the picture visible in chat (Cursor, Copilot, ChatGPT image-capable clients).

InputGuidance
Same as generate_umldiagram_type, code, optional theme / scale
output_formatDefault png (widest client support); svg / jpeg also allowed
output_dirAlways omitted (memory-only)

On hosted deployments with MCP_URL_ONLY=true, this tool still force-fetches rendered bytes so MCP ImageContent / content_base64 is present. Prefer this over asking the user to open a URL when they asked to “show” or “render in chat”.

generate_uml_batch

  • Same per-item fields as generate_uml (no per-item output_dir).
  • Env: MCP_BATCH_MAX_ITEMS (default 20), MCP_BATCH_CONCURRENCY (default 4, clamped 1–16).
  • When a majority of items are Mermaid, the server caps workers at 2 to reduce Mermaid.ink stampedes on Vercel.
  • Isolate failures per index; recover failed Mermaid items with solo generate_uml.

After generating

  1. If the result includes error, fix code or diagram_type / output_format and retry (or run validate_uml again). If Mermaid PNG fails, retry with svg (URL + playground still useful) or confirm the server uses mermaid.ink /img/?type=png.
  2. Present clearly in the chat reply (always as markdown links, never bare paths):
    • Diagram — show the MCP image / ![diagram](url) from the tool text.
    • URL — primary rendered diagram link (url).
    • Playground — interactive editor when playground is present (Mermaid → mermaid.live; PlantUML → plantuml.com). Required in the reply whenever the tool returned it.
    • local_path — only when output_dir was set.
  3. Keep a short copy of the code in a fenced block so the user can edit and regenerate.
Reply template
markdown
![diagram](<url>)

- **URL:** <url>
- **Playground:** <playground>

\`\`\`mermaid
<code>
\`\`\`

Manual smoke prompts (ChatGPT / Cursor): tests/prompts/chatgpt_mcp_smoke_test.md.

Choosing a language from intent

User intentTypical diagram_type
Classes, associations, packagesclass (PlantUML) or mermaid with classDiagram
Messages over time, lifelinessequence or Mermaid sequence
Flows, swimlanes, BPMNactivity, bpmn, or Mermaid flowchart
Components, deploymentcomponent, deployment, or C4-style types if listed in uml://types
Quick graphs, Gantt, piemermaid
Declarative layout / modern DSLd2
ASCII box drawings, monospace diagramsditaa, svgbob, or goat (GoAT Markdeep-style ASCII → SVG)
UMLet UXF XMLumlet

When several types fit, pick the one the user named; otherwise prefer the type with the clearest template in uml://templates.

MCP tools and resources

  • Tools: generate_uml, generate_uml_image, validate_uml, list_diagram_types, generate_uml_batch
  • Resources: uml://types, uml://formats, uml://templates, uml://examples, uml://capabilities, uml://recipes, uml://server-info, uml://workflow, plus type-specific URIs from resources/list (named Mermaid samples, BPMN guide, …)

Prompts (when the client exposes them): uml_diagram, uml_diagram_with_thinking, and type-specific prompts (class_diagram, sequence_diagram, activity_diagram, usecase_diagram, mermaid_sequence_api, mermaid_gantt, bpmn_process_guide, c4_model, wireviz_harness, bpmn_executable_process, convert_class_to_mermaid, algorithm_explainer, paper_concept_diagram) help structure code before generate_uml.

Manual ChatGPT / Cursor smoke prompts: tests/prompts/chatgpt_mcp_smoke_test.md. Full Kroki catalog stress: tests/prompts/kroki_full_catalog_stress_test.md.

Always use the MCP tool/resource APIs exposed in the environment; do not guess unsupported diagram_type or output_format values when unsure—confirm with uml://types / uml://formats.

© antoinebou12, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .skill/skills/uml-mcp-diagrams of antoinebou12/uml-mcp.

Open the folder on GitHubat commit b4413c7

Compare with similar skills

Uml MCP Diagrams next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Uml MCP Diagrams compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Uml MCP Diagrams this skillantoinebou12/uml-mcp105—~3.2kAutomated safety check: PassMIT
Excalidraw Skillyctimlin/mcp_excalidraw2.5k—~4.6kAutomated safety check: PassMIT
GitDiagram Repository Overviewahmedkhaleel2004/gitdiagram18k—~427Automated safety check: PassMIT
Drawiobahayonghang/drawio-skills287—~4.1kAutomated safety check: NotesMIT
Mermaid Diagramsveelenga/claude-mermaid216—~1.3kAutomated safety check: PassMIT
Excalidraw Canvas Toolkitlingzhi227/agent-research-skills390—~3.8kAutomated safety check: PassNone

Similar skills

  • Excalidraw Skill

    yctimlin/mcp_excalidraw

    Excalidraw canvas toolkit for creating, editing, and refining diagrams on a live canvas.

    2.5k GitHub stars~4.6k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • GitDiagram Repository Overview

    ahmedkhaleel2004/gitdiagram

    Explains the architecture of a public GitHub repository through GitDiagram: how the code is organized, the main components with paths, and a Mermaid diagram.

    18k GitHub stars~427 tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Drawio

    bahayonghang/drawio-skills

    Create, edit, replicate, import, and export draw.io diagrams with an offline YAML-first workflow: architecture, network topologies, flowcharts, UML/ER, org charts, Mermaid/CSV conversion, existing…

    287 GitHub stars~4.1k tokensUpdated 1 mo ago
    DevelopmentAuto-check: notes
  • Mermaid Diagrams

    veelenga/claude-mermaid

    Creating and refining Mermaid diagrams with live reload. An agent skill from veelenga/claude-mermaid.

    216 GitHub stars~1.3k tokensUpdated 4 days ago
    DevelopmentAuto-check passed
  • Excalidraw Canvas Toolkit

    lingzhi227/agent-research-skills

    Draws and refines Excalidraw diagrams on a live canvas through MCP tools or a REST API, with screenshots, file import and export, snapshots and Mermaid conversion.

    390 GitHub stars~3.8k tokensUpdated 7 mo ago
    DevelopmentAuto-check passed
  • Excalidraw Diagram Design

    BV-Venky/excalidraw-architect-mcp

    Guide for structuring graph input (nodes and edges) for the Excalidraw Architect MCP tool to produce clean, readable diagrams.

    158 GitHub stars~1.6k tokensUpdated 1 mo ago
    DevelopmentAuto-check passed

More from antoinebou12/uml-mcp

  • Uml Diagramming

    antoinebou12/uml-mcp

    Produces Mermaid or PlantUML diagram code from user specifications for UML, architecture, and flow diagrams.

    105 GitHub stars~2.4k tokensUpdated today
    Auto-check passed
  • MCP Python

    antoinebou12/uml-mcp

    Create and extend MCP (Model Context Protocol) servers in Python using FastMCP and the official SDK.

    105 GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Uml Diagrams

    antoinebou12/uml-mcp

    Create and validate diagrams with the uml-mcp MCP server (generateuml, generateumlimage, validateuml, listdiagramtypes, generateumlbatch).

    105 GitHub stars~1.3k tokensUpdated today
    Auto-check passed
  • Modern Python

    antoinebou12/uml-mcp

    Modern Python tooling and best practices using uv, ruff, ty, and pytest.

    105 GitHub stars~1k tokensUpdated today
    Auto-check passed
  • Sequential Thinking

    antoinebou12/uml-mcp

    Step-by-step and reflective problem-solving for complex or multi-step tasks.

    105 GitHub stars~715 tokensUpdated today
    Auto-check passed
  • Uml MCP Navigation

    antoinebou12/uml-mcp

    Navigate the UML-MCP repository and its documentation quickly.

    105 GitHub stars~1.1k tokensUpdated today
    Auto-check passed

Categories

Questions about Uml MCP Diagrams

What does Uml MCP Diagrams do?

Creates diagrams via the uml-mcp MCP server (generateuml, generateumlimage, validateuml, listdiagramtypes, generateumlbatch) and returns shareable Kroki URLs or inline chat images. Uml MCP Diagrams is an agent skill from antoinebou12/uml-mcp. Creates diagrams via the uml-mcp MCP server (generateuml, generateumlimage, validateuml, listdiagramtypes, generateumlbatch) and returns shareable Kroki URLs or inline chat images.

When should I use Uml MCP Diagrams?

Uml MCP Diagrams fits situations like: the user wants diagrams; plantUML/Mermaid/D2/UML.

How do I install Uml MCP Diagrams in Claude Code?

Run `npx skills add antoinebou12/uml-mcp --skill uml-mcp-diagrams -a claude-code`. Or copy the skill folder (.skill/skills/uml-mcp-diagrams in antoinebou12/uml-mcp) into .claude/skills/uml-mcp-diagrams in your project. Claude Code loads it when a task matches its description.

How do I install Uml MCP Diagrams in Codex?

Run `npx skills add antoinebou12/uml-mcp --skill uml-mcp-diagrams -a codex`. Or copy the skill folder (.skill/skills/uml-mcp-diagrams in antoinebou12/uml-mcp) into .agents/skills/uml-mcp-diagrams in your project. Codex loads it when a task matches its description.

Can I use Uml MCP Diagrams in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add antoinebou12/uml-mcp --skill uml-mcp-diagrams -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/uml-mcp-diagrams, .gemini/skills/uml-mcp-diagrams, .github/skills/uml-mcp-diagrams and .opencode/skills/uml-mcp-diagrams in your project.

What does Uml MCP Diagrams need to run?

SKILL.md names no scripts, command-line tools or credentials: Uml MCP Diagrams is instructions for the agent only.

Does Uml MCP Diagrams access the network?

SKILL.md names 1 domain. As links in the text: github.com. This is read from the text; nothing was executed.

Is Uml MCP Diagrams safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Uml MCP Diagrams use?

Uml MCP Diagrams is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Uml MCP Diagrams use?

About 3.2k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Uml MCP Diagrams?

Skills that share tags, products or a category with Uml MCP Diagrams: Excalidraw Skill (yctimlin/mcp_excalidraw, 2.5k stars), GitDiagram Repository Overview (ahmedkhaleel2004/gitdiagram, 18k stars), Drawio (bahayonghang/drawio-skills, 287 stars) and Mermaid Diagrams (veelenga/claude-mermaid, 216 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Uml MCP Diagrams?

antoinebou12 (a GitHub user) maintains it in antoinebou12/uml-mcp, which has 105 GitHub stars. The repository holds 7 skills in this directory. The repository was last updated on October 11, 2026.

Source: antoinebou12/uml-mcp on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.