An ultra-lightweight (4MB) MCP gateway to render diagrams and data visualizations by calling Kroki
= MCP Kroki Bridge David Buret https://github.com/DBuret[@DBuret] :toc: :icons: font :docker-image: davidburet/mcp-kroki-bridge :sectnums: :toc:
An ultra-lightweight (4MB) MCP gateway to render diagrams and data visualizations by calling https://kroki.io[Kroki].
image:https://img.shields.io/docker/image-size/davidburet/mcp-kroki-bridge/latest[Size] image:https://img.shields.io/docker/v/davidburet/mcp-kroki-bridge[Version]
NOTE: Kroki is NOT included. This project is a gateway. Either start your own local Kroki instance or use https://kroki.io. I'm not affiliated with Kroki, please contact them before using their free service extensively - or better yet, start your own local instance.
== Features
- Multiple Engines: Supports Mermaid (not yet), PlantUML, Vega-Lite.
- Smart Compression: Uses Zlib + Base64 encoding to fit complex diagrams into URLs.
- Network: exposed with SSE and can be called through network by LLM
- Security: Built from
scratchwith a non-root user. No OS vulnerabilities.
== Tools Included
=== render_plantuml
Render professional UML diagrams (classes, sequences, states) and C4 models with https://plantuml.com/en/[plantuml].
=== render_vega
The power of Data Visualization. Transform JSON data into beautiful charts (bars, lines, scatter plots) using https://vega.github.io/[Vega-Lite].
== Quick Start (Docker)
[source,bash]
docker run --rm -p 3001:3001
-e MCP_KROKI_PORT="3001"
davidburet/mcp-kroki-bridge:latest
== Configuration for LM Studio
Add this to your mcp.json (usually in ~/.cache/lm-studio/mcp.json):
[source,json]
{
"mcpServers": {
"mpc-kroki": {
"url": "http://192.168.1.49:3001/sse"
}
}
}
=== Example - Simple PlantUML diagram
Create a UML sequence diagram showing the interaction between a user, a web server, and a database during login.
The LLM will automatically:
. Generate the PlantUML code
. Call the generate_diagram tool with type plantuml
. Return the generated SVG URL
=== Example - Vega-Lite chart
Generate a bar chart comparing monthly sales: January 120, February 150, March 95, April 180
The LLM will:
. Build the Vega-Lite JSON spec
. Call the tool with type vegalite
. Return the SVG image
Next step is to connect your LLM with database or the web so it can provide usefull data to kroki
== Environment Variables
|=== | Variable | Description | Default
| MCP_KROKI_URL | Base URL of the Kroki instance | https://kroki.io
| MCP_KROKI_PORT | Listening port | 3001
| RUST_LOG | Logging level (info, debug, warn) | info
|===
== License
MIT