For Agents

PaintBox MCP

The first fully agentic Photoshop-class editing experience. External AI agents compose image edits through 89 MCP tools and submit proposals for human review.

Quick start

claude mcp add --transport http paintbox https://paintbox.erikbethke.com/api/mcp

No token to paste. The first time a tool needs your account, Claude Code opens a PaintBox approval page; click Approve once and it refreshes on its own. From a terminal, run scripts/paintbox login. Revoke any agent from Account → Connected Agents.

Workflow

1. Auth

Add the server with no header. The first tools/call opens a PaintBox approval page.

2. Initialize

POST /api/mcp — JSON-RPC "initialize". Returns a session ID header.

3. Discover

Call list_documents to see what the user has open in their browser.

4. Load

Call set_active_document with a document ID. Context is loaded from the DB.

5. Edit

Call editor tools: set_selection, fill, create_layer, set_opacity, etc.

6. Finish

Call finish with an interpretation explaining what you did and why.

7. Deliver

Call get_proposal. This deposits the proposal in the editor's inbox.

8. Review

The user sees the proposal in their browser with Accept / Reject buttons.

Tools (89)

Layers

set_layer_styles, rasterize_styles, convert_to_smart_object, replace_smart_object_source, set_opacity, set_visibility, set_blend_mode, rename_node, reorder_node, create_layer, duplicate_layer, import_raster, add_text, set_text, group_layers, ungroup_layers, set_locked, set_clipping, set_mask_from_selection, clear_mask, merge_down, merge_group, merge_visible, flatten

Selection

set_selection, clear_selection, invert_selection, modify_selection, select_all, grow_selection, named_selection, select_color_range

Paint

create_pattern, erase_selection, fill, fill_gradient, fill_shape, add_vector, rerender_vector

Adjustments

set_adjustment, create_adjustment_layer, apply_preset

Filters

apply_filter

Transform

set_transform, align_nodes, distribute_nodes, set_crop, resize_canvas, resample_document, flip

Asset production

trim_to_content, remove_background, create_document_from_asset

Export

set_export_spec, delete_export_spec, apply_export_preset, rename_document, export_bundle

Recipes

make_cutout, make_favicon_package, uniform_asset, apply_proposal_headless, sync_develop_settings

Generate

generate_image, request_image_edit, restyle_layer, generative_expand

History

compare_revisions, get_history

Variants

list_variants, create_variant, create_variant_grid, switch_variant, compare_variants

Inspection

describe_document, inspect_layer, inspect_channel, get_headless_job

View

set_guides

Control

apply_edit, ask_clarification, finish

Session

list_documents, set_active_document, set_document_context, list_skills, describe_skill, run_skill, get_proposal

Skill tools are per-user and dynamic: a signed-in tools/list also carries each of the user's pinned skills, up to 10, as skill_<slug> with that skill's own input schema. They are not in the tool count. list_skills and run_skill reach every skill, pinned or not.

Discovery surfaces

MCP server
Streamable HTTP

JSON-RPC 2.0 endpoint — 82 editor tools + 7 session tools. Signs in with OAuth; no token to paste.

Discovery manifest with tools, workflow, and install command.

Agent card
A2A JSON

Skills, interfaces, and provider metadata.

OpenAPI spec
OpenAPI 3.1

Machine-readable REST API description.

llms.txt
Markdown

LLM-readable summary of the tool surface and workflow.

Every tool with its description and parameters, generated from the registry.

One index of the MCP endpoint, its auth, the OpenAPI spec and these docs.

Discovery URLs for AI crawlers.

PaintBox is built by Erik Bethke / Million on Mars. The MCP interface is the first fully agentic loop for a Photoshop-class editor — agents compose, humans review.