Skip to main content

Krita MCP - Paint with Claude

An MCP server that lets Claude paint in Krita. Paint, see the result, adjust, repeat.

How It Works

  1. A Krita plugin runs an HTTP server inside Krita
  2. An MCP server bridges Claude to that plugin
  3. Claude can create canvases, set colors, paint strokes, and export to see results

Installation

Step 1: Install the Krita Plugin

Find your Krita resources folder:

  • Windows: %APPDATA%\krita\pykrita\
  • Mac: ~/Library/Application Support/krita/pykrita/
  • Linux: ~/.local/share/krita/pykrita/

Copy the plugin files:

krita_plugin/kritamcp.desktop  ->  [resources]/pykrita/kritamcp.desktop
krita_plugin/kritamcp/         ->  [resources]/pykrita/kritamcp/

On Windows, that's:

C:\Users\[YOU]\AppData\Roaming\krita\pykrita\kritamcp.desktop
C:\Users\[YOU]\AppData\Roaming\krita\pykrita\kritamcp\__init__.py

Enable the plugin in Krita:

  1. Open Krita
  2. Go to Settings > Configure Krita > Python Plugin Manager
  3. Find "Krita MCP Bridge" and enable it
  4. Restart Krita

Verify it's working:

  • Open Krita
  • The plugin starts an HTTP server on port 5678
  • Test: Open browser to http://localhost:5678/health
  • Should see: {"status": "ok", "plugin": "kritamcp"}

Step 2: Add the MCP Server

For Claude Code:

claude mcp add krita-mcp -- uv run --with fastmcp --with httpx fastmcp run /path/to/server.py

For Claude Desktop (add to config):

{
  "mcpServers": {
    "krita-mcp": {
      "command": "uv",
      "args": ["run", "--with", "fastmcp", "--with", "httpx", "fastmcp", "run", "/path/to/server.py"]
    }
  }
}

Tools

Tool Description
krita_health Check if Krita is running with plugin
krita_new_canvas Create new canvas (size, background color)
krita_set_color Set paint color (hex)
krita_set_brush Set brush preset, size, opacity
krita_stroke Paint a stroke through points
krita_fill Fill area at point
krita_draw_shape Draw rectangle, ellipse, or line
krita_get_canvas Export canvas to PNG, return path
krita_undo Undo last action
krita_redo Redo
krita_clear Clear canvas to color
krita_save Save to specific path
krita_get_color_at Sample color at pixel
krita_list_brushes List available brush presets

Example Session

Claude: krita_new_canvas(800, 600, "Evening Sky", "#1a1a2e")
        -> Created canvas: 800x600, background: #1a1a2e

Claude: krita_set_color("#b8a9c9")
        -> Color set to #b8a9c9

Claude: krita_set_brush("Soft", 30)
        -> Brush set: preset=Soft, size=30

Claude: krita_stroke([[100, 300], [200, 280], [300, 290], [400, 270]])
        -> Stroke painted with 4 points

Claude: krita_get_canvas("sky_v1.png")
        -> Canvas saved to: ~/krita-mcp-output/sky_v1.png

Claude: [views image, decides to adjust]

Claude: krita_undo()
        -> Undone

Claude: krita_set_brush("Soft", 50, 0.5)
Claude: krita_stroke([[100, 300], [200, 285], [300, 290], [400, 275]])

The Creative Loop

  1. Paint - Use stroke, shape, fill commands
  2. Export - krita_get_canvas() saves current state
  3. View - Read the PNG file to see what was painted
  4. Adjust - Undo, change settings, paint more
  5. Repeat

This is different from code-based art. You're actually painting and seeing and responding to your own work.

Configuration

The plugin saves exports to ~/krita-mcp-output/ by default. Edit CANVAS_OUTPUT_DIR in krita_plugin/kritamcp/__init__.py to change this.

The HTTP server runs on port 5678 by default. Edit SERVER_PORT in the same file to change this.

Troubleshooting

"Cannot connect to Krita"

  • Make sure Krita is running
  • Check that the plugin is enabled (Settings > Configure Krita > Python Plugin Manager)
  • Verify HTTP server: http://localhost:5678/health

Plugin doesn't appear in Krita

  • Check file locations match exactly
  • Make sure kritamcp.desktop is in pykrita folder (not inside kritamcp subfolder)
  • Restart Krita after copying files

Commands timeout

  • Krita might be busy with another operation
  • Try again after a moment
  • Check Krita's Python console for errors (Settings > Dockers > Log Viewer)

License

MIT

Metadata

Release files for iflow-mcp_maryfellowes-krita-mcp 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for iflow-mcp_maryfellowes-krita-mcp 0.1.0
File Size Uploaded
iflow_mcp_maryfellowes_krita_mcp-0.1.0.tar.gz 10.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for iflow-mcp_maryfellowes-krita-mcp 0.1.0
File Interpreter ABI Platform
iflow_mcp_maryfellowes_krita_mcp-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 29.5 kB

Release files / iflow_mcp_maryfellowes_krita_mcp-0.1.0.tar.gz

Download URL iflow_mcp_maryfellowes_krita_mcp-0.1.0.tar.gz
Size 10.9 kB
Tags Source
SHA-256 checksum
How to use checksums
57f5fb98ad6d627e8d11a92f56a8c207753fa94c6002c5a36a61d89102709afb
BLAKE2b-256 checksum
How to use checksums
937a2d04324b95ead293fced731a52612bccd95761d76b97db5fd75ce7a43ac7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / iflow_mcp_maryfellowes_krita_mcp-0.1.0-py3-none-any.whl

Download URL iflow_mcp_maryfellowes_krita_mcp-0.1.0-py3-none-any.whl
Size 18.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3c4fcf02bafc72a92de3c88bd908c087435f011abfb075e6342965af778b9011
BLAKE2b-256 checksum
How to use checksums
fb6dae5ed7af60675738728939b194f9bae4cc1f8e63f549ae8e70524425015b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page