@plantuml/mcp-js
Officialby plantuml
README.md
> [!TIP]
> đ§Š **New!** Render PlantUML diagrams directly inside GitHub with [our official browser extension](https://github.com/plantuml/plantuml-for-github) — No server. No tokens. No tracking. Zero permissions but clipboard.
>
> [](https://chromewebstore.google.com/detail/plantuml-for-github/lbokhidfopkdehkmlmpaabacljoediic) [](https://addons.mozilla.org/en-US/firefox/addon/plantuml-for-github/)
>
> đŦ Want native PlantUML support in GitHub? Upvote and join the discussion: [Support for PlantUML diagrams](https://github.com/orgs/community/discussions/10111)
> [!TIP]
> đ¤ **New!** Give your AI assistant the power to render and check PlantUML diagrams with [`@plantuml/mcp-js`](https://www.npmjs.com/package/@plantuml/mcp-js) — a pure Node.js [MCP](https://modelcontextprotocol.io/) server. No Java. No server. Just `npx @plantuml/mcp-js`.
>
> [](https://www.npmjs.com/package/@plantuml/mcp-js) [](https://www.npmjs.com/package/@plantuml/mcp-js) [](https://mcptoplist.com/server/glama%2Fplantuml)
# đą PlantUML
Generate UML diagrams from textual descriptions.
[](https://discord.gg/sXhzexAQGh)
[](https://github.com/sponsors/plantuml/)
[](https://github.com/plantuml/plantuml/stargazers/)
[](https://github.com/plantuml/plantuml/watchers/)
[](https://github.com/plantuml/plantuml/graphs/contributors)
[](https://github.com/plantuml/plantuml/network/)
[](https://github.com/plantuml/plantuml/releases)
[](https://github.com/plantuml/plantuml/releases/latest)
[](https://github.com/plantuml/plantuml/releases/latest)
[](https://github.com/plantuml/plantuml/commits/)
[](https://javadoc.io/doc/net.sourceforge.plantuml/plantuml-gplv2)
[](https://github.com/plantuml/plantuml/releases/tag/snapshot)
[](https://github.com/plantuml/plantuml/releases/tag/snapshot)
[](https://github.com/plantuml/plantuml/commits/)
[](https://github.com/plantuml/plantuml/actions/workflows/ci.yml)
[](https://plantuml.github.io/plantuml/javadoc)
[](https://plantuml.github.io/plantuml/jacoco/test/html/index.html)
[](https://sonarcloud.io/project/overview?id=plantuml_plantuml)
[](https://plantuml.github.io/plantuml/)
[](https://deepwiki.com/plantuml/plantuml)
[](https://plantuml.github.io/plantuml/js-plantuml)
## âšī¸ About
PlantUML is a component that allows you to create various UML diagrams through simple textual descriptions. From sequence diagrams to deployment diagrams and beyond, PlantUML provides an easy way to create visual representations of complex systems.
### đī¸ Supported Diagram Types
- đ§Š UML Diagrams
- [Sequence diagram](http://plantuml.com/sequence-diagram)
- [Use case diagram](http://plantuml.com/use-case-diagram)
- [Class diagram](http://plantuml.com/class-diagram)
- [Object diagram](http://plantuml.com/object-diagram)
- [Activity diagram](http://plantuml.com/activity-diagram-beta)
- [Legacy syntax](http://plantuml.com/activity-diagram-legacy)
- [Component diagram](http://plantuml.com/component-diagram)
- [Deployment diagram](http://plantuml.com/deployment-diagram)
- [State diagram](http://plantuml.com/state-diagram)
- [Timing diagram](http://plantuml.com/timing-diagram)
- đ Non-UML Diagrams
- [JSON (JavaScript Object Notation) data](http://plantuml.com/json)
- [YAML (YAML Ain't Markup Language) data](http://plantuml.com/yaml)
- [EBNF (Extended Backus-Naur Form)](http://plantuml.com/ebnf)
- [Regex (Regular Expression)](http://plantuml.com/regex)
- [Network diagram (nwdiag)](http://plantuml.com/nwdiag)
- [Salt (Wireframe graphical interface or UI Mockups)](http://plantuml.com/salt)
- [Archimate diagram](http://plantuml.com/archimate-diagram)
- [SDL (Specification and Description Language)](http://plantuml.com/activity-diagram-beta#sdl)
- [Ditaa diagram](http://plantuml.com/ditaa)
- [Gantt diagram](http://plantuml.com/gantt-diagram)
- [Chronology diagram](http://plantuml.com/chronology-diagram)
- [MindMap diagram](http://plantuml.com/mindmap-diagram)
- [WBS (Work Breakdown Structure)](http://plantuml.com/wbs-diagram)
- [Mathematical Notations (AsciiMath, JLaTeXMath)](http://plantuml.com/ascii-math)
- Entity Relationship (ER) diagram
- [Information Engineering (IE) diagram](http://plantuml.com/ie-diagram)
- [Entity Relationship (ER) diagram (Chen's notation)](http://plantuml.com/er-diagram)
- [Chart diagram](http://plantuml.com/chart-diagram)
- [Files (files tree) diagram](http://plantuml.com/files-diagram)
### đŖ Additional Features
- [Hyperlinks and tooltips](http://plantuml.com/link)
- [Rich text (Creole) with emoticons, unicode, and icons](http://plantuml.com/creole)
- [OpenIconic icons](http://plantuml.com/openiconic)
- [Sprite icons](http://plantuml.com/sprite)
### đ Learn More
For a more detailed overview, visit [PlantUML Official Website](https://plantuml.com/).
## đĄ Security
See [Security Policy](docs/SECURITY.md) and [Security overview](https://github.com/plantuml/plantuml/security).
> [!IMPORTANT]
> [PlantUML is **not** affected by the log4j vulnerability.](https://github.com/plantuml/plantuml/issues/826)
## đ Getting Started
Whether you're looking to use PlantUML as a standalone application or as a component in your own project, getting started is simple. Check out the official [PlantUML setup guide](https://plantuml.com/starting) for instructions on how to set up PlantUML on your system.
## âī¸ Building from Source
To build PlantUML from source, you have two options:
1. Using Gradle: `./gradlew jar`
2. Using Ant: `ant`
For prerequisites and detailed build instructions, see our [BUILDING.md](https://github.com/plantuml/plantuml/blob/master/docs/BUILDING.md) guide.
### đ Building for the Browser (TeaVM)
PlantUML can be compiled to JavaScript with [TeaVM](https://teavm.org/) to run entirely client-side in the browser, with no server required. To produce the JavaScript artifacts and use them in your own project:
```sh
git clone https://github.com/plantuml/plantuml.git
cd plantuml
chmod +x ./gradlew
./gradlew clean teavm -Pfast
cp ./build/generated/teavm/js/plantuml.js $YOUR_PROJECT/plantuml.js
cp ./build/generated/teavm/js/viz-global.js $YOUR_PROJECT/viz-global.js
```
The `-Pfast` flag skips the slow parts of a regular build (tests, Javadoc, JaCoCo) so you only get the TeaVM output. The `viz-global.js` file provides [Viz.js](https://github.com/mdaines/viz-js) (Graphviz) support for diagrams that rely on Dot layout.
The `teavm` task also copies the PlantUML stdlib bundles and a ready-to-use `index.html` demo into `./build/generated/teavm/js/`.
For a live example of client-side rendering, see the [JavaScript PlantUML Demo](https://plantuml.github.io/plantuml/js-plantuml).
## đ§ą Contributing
PlantUML is an open-source project, and we welcome contributions of all kinds. Whether you're helping us fix bugs, improve the docs, or spread the word, we appreciate your support. See our [contributing guide](CONTRIBUTING.md) for more information on how to get started.
The language guide on [plantuml.com](https://plantuml.com) is updated through [alphadoc](http://alphadoc.plantuml.com/). Edit a page there (pick a language and wiki syntax), save, and maintainers publish it after review. Details are in [CONTRIBUTING.md](CONTRIBUTING.md#updating-the-plantuml-guide-alphadoc).
For comprehensive and detailed documentation on using PlantUML, refer to the [official Javadoc, available here](https://plantuml.github.io/plantuml/javadoc). Please note that this documentation is a work in progress and may not be complete.
## đ§âđ¤âđ§ Support and Community
- [GitHub issues](https://github.com/plantuml/plantuml/issues/)
- [Community Forum](https://forum.plantuml.net/)
## đ License
PlantUML is licensed under several licenses; you can choose the one that suits you best:
- [GPL license](https://www.gnu.org/licenses/gpl-3.0.html)
- [LGPL license](https://www.gnu.org/licenses/lgpl-3.0.html)
- [Apache license](https://www.apache.org/licenses/LICENSE-2.0)
- [Eclipse Public license](https://www.eclipse.org/legal/epl-2.0/)
- [MIT license](https://opensource.org/licenses/MIT)
For more information, please refer to the [PlantUML license FAQ](https://plantuml.com/en/faq#ddbc9d04378ee462) to help determine which license is appropriate for your use case.
TDQS
A4.1/5.0
Scored across 4 tools
Disambiguation5/5
Each tool has a clearly distinct purpose: syntax checking, line-by-line explanation, version retrieval, and SVG rendering. No overlap or ambiguity.
Naming Consistency4/5
All tool names use consistent snake_case with descriptive verbs/nouns (check_syntax, explain_diagram, render_diagram). 'plantuml_version' is a minor deviation (noun_noun) but still follows the same style and is intuitive.
Tool Count5/5
Four tools is well-scoped for a PlantUML server, covering core operations (check, render, explain, version) without being too few or overly numerous.
Completeness4/5
The tool surface covers essential diagram workflows (validate, render, explain). A potential gap is the lack of a tool to list supported diagram types or configure rendering options, but the core is solid.
Maintenance
ActivityActive
ResponsivenessResponsive