plantuml-mcp-js
OFFICIAL SERVERChecks, explains and renders PlantUML diagrams to SVG on Node.js, with no Java runtime needed
PlantUML's own Java MCP server for checking, explaining and rendering PlantUML diagrams to SVG
Official · PlantUML Java Local · stdio, Streamable HTTP DesignDeveloper tools
Opens the app, which asks before it adds the server.
claude mcp add --transport http plantuml http://localhost:8080/mcp{
"mcpServers": {
"plantuml": {
"url": "http://localhost:8080/mcp"
}
}
}{
"servers": {
"plantuml": {
"type": "http",
"url": "http://localhost:8080/mcp"
}
}
}[mcp_servers.plantuml]
url = "http://localhost:8080/mcp"gemini mcp add --scope user --transport http plantuml http://localhost:8080/mcpOpens the app, which asks before it adds the server. Then replace each <NAME> in its settings with your value.
git clone https://github.com/plantuml/plantuml-mcp.git
cd plantuml-mcp
./gradlew bootJarclaude mcp add plantuml -- java -jar '<ABSOLUTE_PATH_TO_CLONE>/build/libs/plantuml-mcp-1.0.0.jar'{
"mcpServers": {
"plantuml": {
"command": "java",
"args": [
"-jar",
"<ABSOLUTE_PATH_TO_CLONE>/build/libs/plantuml-mcp-1.0.0.jar"
]
}
}
}{
"mcpServers": {
"plantuml": {
"command": "java",
"args": [
"-jar",
"<ABSOLUTE_PATH_TO_CLONE>/build/libs/plantuml-mcp-1.0.0.jar"
]
}
}
}{
"servers": {
"plantuml": {
"type": "stdio",
"command": "java",
"args": [
"-jar",
"<ABSOLUTE_PATH_TO_CLONE>/build/libs/plantuml-mcp-1.0.0.jar"
]
}
}
}[mcp_servers.plantuml]
command = "java"
args = ["-jar", "<ABSOLUTE_PATH_TO_CLONE>/build/libs/plantuml-mcp-1.0.0.jar"]gemini mcp add --scope user plantuml java -- -jar '<ABSOLUTE_PATH_TO_CLONE>/build/libs/plantuml-mcp-1.0.0.jar'plantuml-mcp is the PlantUML project's Java server built on Spring Boot and Spring AI. It bundles the PlantUML library and hands an assistant a few tools that work on diagram source passed in as text: report the bundled PlantUML version, check one diagram for syntax errors without drawing it, render one diagram, and walk through how each line of a diagram is parsed. Results come back as JSON with the diagram type, line count, warnings and, on failure, the line number and message of the error, so an assistant can fix its own PlantUML before showing it.
It runs over stdio by default, launched by the client as a subprocess, or as a Streamable HTTP web app on port 8080 at /mcp when started with --spring.profiles.active=http. There is no published package or image: you build the JAR from the repository with the bundled Gradle wrapper.
The README still describes an MVP with only plantuml_version, but the tool class on the main branch (PlantUmlTools.java) registers four tools: plantuml_version, check_syntax, diagram_render and diagram_explain. The README of the sibling @plantuml/mcp-js package points to this server for PNG and PDF output, yet the render tool's own parameter description in that same class says only SVG is supported right now.
| Runtime | Java 21+ |
|---|
Java 21 or later to build and run (the build can target 17 with -PjavaVersion=17). A clone of the repository built with ./gradlew bootJar, since no JAR, package or container image is published. An MCP client that launches a command over stdio, or one that speaks Streamable HTTP for the HTTP mode (started separately with --spring.profiles.active=http).
Renders to SVG only at present, per the format parameter in PlantUmlTools.java, despite the mcp-js README pointing here for PNG/PDF. Each tool takes a single diagram (one @start/@end block). Its makers label it an early MVP; the README lists only plantuml_version and has not caught up with the three newer tools. No tagged releases: you build whatever is on main. In HTTP mode the port is fixed at 8080 in application-http.yml unless you edit it. Logs go to plantuml-mcp.log in the client's working directory, and a harmless 'Empty or null pattern' warning may appear at startup.
Suits developers who already have a Java 21 runtime and want an assistant to validate and render PlantUML diagrams locally with the official engine, with no account or network service involved. It only processes text it is given, so it is low-reach. Pick the @plantuml/mcp-js server, which we also hold, if you want no Java and an npx install instead of building a JAR from source; both currently render SVG. Look elsewhere if you need PNG or PDF output or a packaged release.
plantuml_versioncheck_syntaxdiagram_renderdiagram_explain