Render, validate, encode/decode PlantUML diagram-as-code; 22 diagram types. Free, no auth.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Recover the PlantUML source from a token or from any PlantUML render URL (the token is extracted automatically). Tokens use PlantUML's own 64-character alphabet ("0-9 A-Z a-z - _") over raw DEFLATE. This is NOT base64 - never encode or decode tokens with a base64 codec; use encode_source / decode_token.
Token or full render URL
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Recover the PlantUML source from a token or from any PlantUML render URL (the token is extracted automatically). Tokens use PlantUML's own 64-character alphabet ("0-9 A-Z a-z - _") over raw DEFLATE. This is NOT base64 - never encode or decode tokens with a base64 codec; use encode_source / decode_token.
| Argument | Type | Description |
|---|---|---|
| encoded* | string | Token or full render URL |
{
"type": "object",
"required": [
"encoded"
],
"properties": {
"encoded": {
"type": "string",
"description": "Token or full render URL"
}
}
}Encode PlantUML source into a URL token and ready-to-use share/render URLs (svg + png). The result carries url_ok: GET URLs only work while the token is at most 16000 characters; when url_ok is false do not share the URLs - render with render_diagram instead (it uses the POST API, no size limit up to 5 MB). Tokens use PlantUML's own 64-character alphabet ("0-9 A-Z a-z - _") over raw DEFLATE. This is NOT base64 - never encode or decode tokens with a base64 codec; use encode_source / decode_token.
| Argument | Type | Description |
|---|---|---|
| text* | string |
{
"type": "object",
"required": [
"text"
],
"properties": {
"text": {
"type": "string"
}
}
}Get the syntax reference entry for one diagram type: description, a render-verified example, and the help page URL. Use it to ground diagram generation.
| Argument | Type | Description |
|---|---|---|
| type* | string | Type id or label, e.g. "sequence", "class", "mindmap", "gantt", "json" |
{
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"type": "string",
"description": "Type id or label, e.g. \"sequence\", \"class\", \"mindmap\", \"gantt\", \"json\""
}
}
}List the 22 supported diagram/reference types with a one-line description and the local syntax reference URL for each. Use it to pick the right @start directive.
No arguments.
{
"type": "object",
"properties": {}
}Render PlantUML source text to a diagram image. Returns a PNG image block (format "png") or the SVG markup as text (format "svg", default), plus the shareable render URL. The source is validated first: on a syntax error the result is an error object with line, column, hint and a help link so you can fix the diagram and retry.
| Argument | Type | Description |
|---|---|---|
| text* | string | PlantUML source including @startuml ... @enduml (or the matching @start/@end pair) |
| format | string |
{
"type": "object",
"required": [
"text"
],
"properties": {
"text": {
"type": "string",
"description": "PlantUML source including @startuml ... @enduml (or the matching @start/@end pair)"
},
"format": {
"enum": [
"svg",
"png"
],
"type": "string",
"default": "svg"
}
}
}Check PlantUML source without rendering. Returns {ok:true, diagram_type} or {ok:false, error:{code, message, line, column, source_line, hint, diagram_type_detected, help}}. Cheap - call it in a generate -> validate -> fix loop before rendering.
| Argument | Type | Description |
|---|---|---|
| text* | string |
{
"type": "object",
"required": [
"text"
],
"properties": {
"text": {
"type": "string"
}
}
}