loading…
Search for a command to run...
loading…
Exposes a Pygame-based drawing canvas as an MCP server, allowing LLMs to create digital art using standard shapes and freehand paths. It features a specialized
Exposes a Pygame-based drawing canvas as an MCP server, allowing LLMs to create digital art using standard shapes and freehand paths. It features a specialized oil paint mode that simulates realistic color mixing, paint depletion, and textured brush strokes.
A drawing canvas exposed as an MCP server. An LLM connects over stdio and paints on a pygame window using tool calls.
pip install -r requirements.txt
python server.py
This opens an 800x600 pygame canvas and starts the MCP server on stdio. Connect any MCP-compatible client (e.g. Claude Desktop) to the process.
| Tool | Description |
|---|---|
get_canvas_info |
Get canvas dimensions, current color, brush size, and mode |
set_color |
Set drawing color (RGB 0-255) |
set_brush_size |
Set brush size (1-50 px) |
set_brush_shape |
Set brush shape: round, flat, filbert, fan, or palette_knife |
draw_point |
Draw a single dot |
draw_line |
Draw a line between two points |
draw_rect |
Draw a rectangle (blocked in oil paint mode) |
draw_ellipse |
Draw an ellipse (blocked in oil paint mode) |
draw_path |
Draw a freehand path through coordinate pairs |
batch_strokes |
Execute many strokes in one call with per-stroke color/size/shape overrides |
blend_path |
Smudge/blend existing colors along a path |
flood_fill |
Bucket fill an area (blocked in oil paint mode) |
clear_canvas |
Clear to white |
undo |
Undo last operation |
get_canvas_pixels |
Read pixel data from a region |
preview_canvas |
Save canvas to a temp PNG and return the path for visual inspection |
save_canvas |
Save canvas to a PNG file |
| Tool | Description |
|---|---|
set_oil_paint_mode |
Toggle oil paint simulation on/off |
get_oil_painting_guide |
Get a technique guide for realistic oil painting |
When oil paint mode is enabled:
batch_strokes is the recommended way to paint — send many short strokes per call, each with its own color, brush size, and brush shape.Regular mode
| Starry Night | Meme |
|---|---|
![]() |
![]() |
Oil paint mode
| Sunset | Alien Sunset |
|---|---|
![]() |
![]() |
server.py — Entry point. Runs the pygame main loop and drains commands from a thread-safe queue.tools.py — MCP tool definitions. Pushes drawing commands onto the queue.canvas.py — Drawing engine. Wraps a pygame surface with draw ops, oil paint simulation, and an undo stack.Run in your terminal:
claude mcp add paint-mcp -- npx Extract design specs and assets
by FigmaEnables AI agents to read, write, and edit Office documents via LibreOffice with token-efficient design. Supports multiple formats including DOCX, XLSX, PPTX, a
by passerbyflutterSearch and retrieve company logos by brand or domain. Customize size, format, and theme to match your design needs. Accelerate design, prototyping, and content
by NOVA-3951Enables GUI automation for controlling PIX4Dmatic on Windows through MCP. Supports launching, focusing, capturing screenshots, sending hotkeys, clicking UI elem
by jangjo123Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All design MCPs