Monodraw MCP
Giving language models a precise, editable way to draw software diagrams.
I use Monodraw because text diagrams occupy a useful middle ground. They are quicker than illustration software, clearer than prose, and can live beside the system they explain.
Monodraw MCP connects that workflow to tools using the Model Context Protocol. A model can discover existing diagrams, export them as text, generate new ones, save editable Monodraw documents, and open them in the native application.
Drawing is mostly alignment
Generating a box is easy. Generating a diagram that remains correct after labels vary in width is not.
The rendering core is pure Rust with no I/O. It produces boxes, flowcharts, architecture diagrams, tables, trees, and sequence diagrams in five border styles. It accounts for display width rather than byte or character count, so CJK text and other wide characters align correctly. Tables use proper junctions, trees distinguish their final branches, sequence arrows meet actor lifelines, and long labels wrap instead of breaking the drawing.
That part of the project became more interesting than the protocol integration: a small geometry and typography problem hiding inside “just ASCII art.”
Native documents, not screenshots
The server can write .monojson and compressed .monopic files directly. Generated art is stored as a borderless text shape sized to its contents, so the result opens as an editable Monodraw document rather than a flattened image.
Tools that need the Monodraw CLI locate it through configuration, the shell path, or the application bundle. Diagram generation itself is platform-independent and requires no Monodraw installation.
Configured directories are exposed as MCP resources. Restricting discovery to those roots also avoids the common mistake of scanning an entire home directory from an MCP process whose working directory happens to be /.
A small bridge
The project uses the official Rust MCP SDK and exposes tools, prompts, and resources over standard input/output. It is deliberately narrow: it does not try to replace Monodraw. It gives an automated system enough mechanical precision to prepare a useful diagram, then hands the editable result back to a human.
Want to try it?
You can download the latest release and try it out for yourself.