mcp painter

Local 2025-09-01 00:16:26 0
Image And Video Processing @flrngel/mcp-painter

Drawing Tool for AI Assistants


smithery badge

Drawing MCP Server - A simple drawing tool for AI assistants

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"
  }
]