Track MCP LogoTrack MCP
Track MCP LogoTrack MCP

The world's largest repository of Model Context Protocol servers. Discover, explore, and submit MCP tools.

Product

  • Categories
  • Top MCP
  • New & Updated
  • Submit MCP

Company

  • About

Legal

  • Privacy Policy
  • Terms of Service
  • Cookie Policy

© 2026 TrackMCP. All rights reserved.

Built with ❤️ by Krishna Goyal

    Uml Mcp

    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 description or directly writing PlantUML and Mermaid and Kroki

    59 stars
    Python
    Updated Oct 28, 2025

    Table of Contents

    • At a glance
    • Quick Start
    • Choose your mode
    • Remote quick start (Vercel HTTP MCP)
    • Local quick start (stdio MCP)
    • Claude Code plugin
    • Remote vs Local
    • Supported Diagram Types
    • MCP Tools and Resources
    • Tools
    • Resources (uml://)
    • Deployment
    • Vercel
    • Smithery
    • Docker
    • Configuration (Local runtime)
    • Architecture
    • Development
    • Documentation
    • Contributing
    • License
    • Acknowledgements
    • Star History

    Table of Contents

    • At a glance
    • Quick Start
    • Choose your mode
    • Remote quick start (Vercel HTTP MCP)
    • Local quick start (stdio MCP)
    • Claude Code plugin
    • Remote vs Local
    • Supported Diagram Types
    • MCP Tools and Resources
    • Tools
    • Resources (uml://)
    • Deployment
    • Vercel
    • Smithery
    • Docker
    • Configuration (Local runtime)
    • Architecture
    • Development
    • Documentation
    • Contributing
    • License
    • Acknowledgements
    • Star History

    Documentation

    UML-MCP: Diagram Generation via MCP

    Run Tests

    Build Package

    Deploy docs

    GitHub stars

    License: MIT

    [![Python >=3.12,

    Quick Start

    Choose your mode

    • Remote (recommended): Fast setup over HTTP MCP with Vercel serverless runtime
    • Local: stdio process for file output and local debugging

    Remote quick start (Vercel HTTP MCP)

    Configuration for the public Vercel deployment:

    json
    "uml-mcp": {
      "transport": "http",
      "url": "https://uml-mcp.vercel.app/mcp"
    }

    Local quick start (stdio MCP)

    bash
    git clone https://github.com/antoinebou12/uml-mcp.git && cd uml-mcp
    uv sync
    uv run python server.py

    Example client configs:

    • config/cursor_config.json
    • config/claude_desktop_config.json
    • config/README.md for exact config file locations
    • Claude Code: install the bundled plugin from the repo marketplace (see below) or read docs/integrations/claude_code.md

    Claude Code plugin

    Adds the hosted HTTP MCP server plus a diagram skill (no settings.json paste). In Claude Code:

    text
    /plugin marketplace add https://github.com/antoinebou12/uml-mcp
    /plugin install uml-mcp@uml-mcp-plugins

    Use a local path instead of the GitHub URL if you already cloned this repo. Custom endpoints and validation: docs/integrations/claude_code.md.

    Remote vs Local

    • Transport: Remote uses HTTP MCP, local uses stdio by default
    • Runtime: Remote runs on Vercel, local runs in your Python environment
    • File writes: Remote is read-only (no output_dir), local supports output_dir
    • Returned data: Both return URL + base64; local can also save files
    • Environment variables: Remote is managed server-side; local reads your env config

    MCP clients must call /mcp, not the site root.

    Supported Diagram Types

    CategoryExamples
    UML (PlantUML)Class, Sequence, Activity, Use Case, State, Component, Deployment, Object
    GeneralMermaid, D2, Graphviz, ERD, BlockDiag, BPMN, C4
    SpecializedTikZ, Excalidraw, Nomnoml, Pikchr, Structurizr, SVGBob, WaveDrom, WireViz, …

    Full list with supported formats: run python server.py --list-tools or query uml://types and uml://formats.

    MCP Tools and Resources

    Tools

    ToolPurpose
    generate_umlRender a diagram; omit output_dir for URL/base64 only
    validate_umlStructural validation before render; strict enables extra Mermaid/D2 checks
    list_diagram_typesSame metadata as uml://types when resources are awkward
    generate_uml_batchMultiple diagrams in one call (cap: MCP_BATCH_MAX_ITEMS)

    Resources (uml://)

    ResourceDescription
    uml://typesDiagram types, backends, supported formats per type
    uml://templatesStarter templates per type; see BPMN 2.0.2 guide for element and flow reference (docs)
    uml://examplesExample diagrams per type; Mermaid documents named samples (sequence API, Gantt) alongside uml://examples (key mermaid)
    uml://formatsOutput formats per type
    uml://capabilitiesType → backend → formats matrix used for validation
    uml://server-infoServer name, version, tools, prompts, Kroki/PlantUML URLs
    uml://workflowRecommended plan-then-generate workflow

    Deployment

    Vercel

    This repo includes vercel.json for serverless deployment.

    1. Connect the repo to Vercel

    2. Use https://.vercel.app/mcp

    3. Keep /mcp in all MCP client URLs

    Smithery

    1. Open smithery.ai/new, choose URL

    2. Enter https://.vercel.app/mcp

    3. Configure display name, description, and homepage

    Detailed guide: docs/integrations/vercel_smithery.md

    Docker

    Default image serves FastAPI on port 8000 with MCP HTTP at http://127.0.0.1:8000/mcp.

    bash
    # Full local stack (local Kroki + mermaid + blockdiag)
    docker compose up -d
    
    # API + MCP only (public Kroki)
    docker build -t uml-mcp . && docker run -p 8000:8000 uml-mcp
    
    # stdio MCP subprocess mode
    docker run -i uml-mcp python server.py --transport stdio

    Configuration (Local runtime)

    These variables apply to local/self-hosted runs. Remote Vercel endpoint settings are managed server-side.

    VariableDescriptionDefault
    KROKI_SERVERKroki server URLhttps://kroki.io
    PLANTUML_SERVERPlantUML server URLhttp://plantuml-server:8080
    MCP_OUTPUT_DIRDiagram output directory./output
    MCP_READ_ONLYDisable file writesfalse
    MCP_MAX_CODE_LENGTHMax diagram code length500000
    MCP_BATCH_MAX_ITEMSMax items per generate_uml_batch20
    MCP_RATE_LIMIT_PER_MINUTEHTTP rate limit per IP for diagram/MCP routes (0 = off)0
    USE_LOCAL_KROKIUse local Kroki instancefalse
    USE_LOCAL_PLANTUMLUse local PlantUML instancefalse

    Full options: docs/configuration.md

    Architecture

    Typical flow when a user asks an MCP-enabled assistant for a diagram: the assistant calls generate_uml, the server renders via Kroki, then returns URLs and optional base64 to the assistant for the user.

    text
    server.py              -- MCP entry point (stdio/HTTP)
    app.py                 -- FastAPI REST API + MCP HTTP at /mcp
    api/app.py             -- legacy re-export of root app (Vercel FastAPI preset uses root app.py)
    mcp_core/
      core/                -- config, server, CLI, utilities, diagram pipeline
      tools/               -- generate_uml, validate_uml
      prompts/             -- diagram generation prompts
      resources/           -- uml:// resource handlers
    tools/kroki/           -- Kroki, PlantUML, Mermaid, D2 clients

    Development

    bash
    # Install dev dependencies
    uv sync --all-groups
    
    # Run tests
    uv run pytest tests/ -v
    
    # Lint
    uv run ruff check . && uv run ruff format --check .
    
    # Local CI
    make ci

    Documentation

    Built with MkDocs + Material:

    • Online: antoinebou12.github.io/uml-mcp
    • Local: uv run mkdocs serve then open http://127.0.0.1:8000

    Contributing

    • Contributing guide
    • Code of conduct
    • Security policy

    License

    MIT

    Acknowledgements

    PlantUML | Kroki | Mermaid | D2

    Star History

    Star History Chart

    Similar MCP

    Based on tags & features

    • AS

      Aseprite Mcp

      Python·
      92
    • IS

      Isaac Sim Mcp

      Python·
      83
    • FH

      Fhir Mcp Server

      Python·
      55
    • MC

      Mcp Aoai Web Browsing

      Python·
      30

    Trending MCP

    Most active this week

    • PL

      Playwright Mcp

      TypeScript·
      22.1k
    • SE

      Serena

      Python·
      14.5k
    • MC

      Mcp Playwright

      TypeScript·
      4.9k
    • MC

      Mcp Server Cloudflare

      TypeScript·
      3.0k
    View All MCP Servers

    Similar MCP

    Based on tags & features

    • AS

      Aseprite Mcp

      Python·
      92
    • IS

      Isaac Sim Mcp

      Python·
      83
    • FH

      Fhir Mcp Server

      Python·
      55
    • MC

      Mcp Aoai Web Browsing

      Python·
      30

    Trending MCP

    Most active this week

    • PL

      Playwright Mcp

      TypeScript·
      22.1k
    • SE

      Serena

      Python·
      14.5k
    • MC

      Mcp Playwright

      TypeScript·
      4.9k
    • MC

      Mcp Server Cloudflare

      TypeScript·
      3.0k