

Draw cowboy using canvas tools chat log
A Model Context Protocol (MCP) server that provides drawing capabilities for AI assistants.
Features
- Create a canvas with specified dimensions
- Draw filled rectangles with custom colors
- Export canvas as PNG image
- Get raw canvas data as JSON
Installation
Installing via Smithery
To install mcp-painter for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @flrngel/mcp-painter --client claude
Manual Installation
Add this to your MCP config
"painter": {
"command": "npx",
"args": ["-y", "github:flrngel/mcp-painter"]
}
[
{
"description": "Generate a new drawing canvas with specified width and height.",
"inputSchema": {
"properties": {
"height": {
"description": "Height of the canvas in pixels",
"type": "number"
},
"width": {
"description": "Width of the canvas in pixels",
"type": "number"
}
},
"required": [
"width",
"height"
],
"type": "object"
},
"name": "drawing_generateCanvas"
},
{
"description": "Fill a rectangle on the drawing canvas with a specified color and coordinates.",
"inputSchema": {
"properties": {
"color": {
"description": "Color to fill the rectangle with (RGB)",
"properties": {
"a": {
"description": "Alpha component (0-255, optional, default 255)",
"type": "number"
},
"b": {
"description": "Blue component (0-255)",
"type": "number"
},
"g": {
"description": "Green component (0-255)",
"type": "number"
},
"r": {
"description": "Red component (0-255)",
"type": "number"
}
},
"required": [
"r",
"g",
"b"
],
"type": "object"
},
"height": {
"description": "Height of the rectangle",
"type": "number"
},
"width": {
"description": "Width of the rectangle",
"type": "number"
},
"x": {
"description": "X coordinate of the top-left corner of the rectangle",
"type": "number"
},
"y": {
"description": "Y coordinate of the top-left corner of the rectangle",
"type": "number"
}
},
"required": [
"x",
"y",
"width",
"height",
"color"
],
"type": "object"
},
"name": "drawing_fillRectangle"
},
{
"description": "Get the current drawing canvas as a PNG image (base64 encoded).",
"inputSchema": {
"properties": {},
"required": [],
"type": "object"
},
"name": "drawing_getCanvasPng"
},
{
"description": "Get the current pixel data of the drawing canvas as JSON.",
"inputSchema": {
"properties": {},
"required": [],
"type": "object"
},
"name": "drawing_getCanvasData"
}
]