attalla1/photopea-mcp-server

attalla1/photopea-mcp-server

от attalla1
MCP-сервер для редактирования изображений через Photopea — бесплатный фоторедактор в браузере. Создавай постеры, редактируй фото и трансформируй изображения прямо из терминала с помощью AI-агента. Полезен дизайнерам и разработчикам.

Photopea

Photopea MCP Server

Design posters, edit photos, and transform images directly from your terminal. Powered by Photopea -- a free, browser-based alternative to Photoshop -- connected to your AI agent via MCP.

Glama score npm version license node

photopea-mcp-server MCP server

Demo

Demo

Prompt used in this demo: examples/album-cover-demo.md

How It Works

graph LR
    A[Agent] <-->|stdio| B[MCP Server]
    B <-->|WebSocket| C[Browser]
    C <-->|postMessage| D[Photopea]

Your agent sends editing commands through the MCP protocol. The server translates these into Photopea JavaScript API calls and executes them via a WebSocket bridge to the browser.

Note: A browser window will open automatically on the first tool call. This is expected -- Photopea runs entirely in the browser and the server needs it to perform image editing operations.

Quick Start

claude mcp add -s user photopea -- npx -y photopea-mcp-server

Then start a new Claude Code session and ask it to edit images. The Photopea editor will open in your browser automatically on the first tool call.

Installation

Claude Code
Инструменты были проиндексированы:
photopea_add_fill_layer

Добавляет недеструктивный слой сплошной заливки на весь холст. В отличие от fill_selection, он создаёт отдельный корректирующий слой — его можно включить/выключить, перекрасить или удалить, не трогая остальные. Чтобы изменить прозрачность или режим наложения, используй set_layer_properties.

Добавить слой заливки

Параметры
  • colorstringобязательный

    Fill color as hex string (e.g. #ff0000)

  • namestring

    Display name for the fill layer in the layers panel

  • typeenumобязательный

    Fill layer type (currently only 'solid' is supported)

photopea_add_gradient

Применяет заливку линейным градиентом к слою, заменяя его текущее пиксельное содержимое. Целевой слой уже должен существовать — используйте add_layer, чтобы сначала создать его. Цвета равномерно распределяются по градиенту.

Добавить градиент

Параметры
  • anglenumber

    Gradient angle in degrees (0 = left-to-right, 90 = top-to-bottom, default 0)

  • colorsstring[]обязательный

    Array of hex color stops distributed evenly along the gradient (minimum 2, e.g. ['#ff0000', '#0000ff'])

  • targetstring | numberобязательный

    Layer name (string) or index (number)

  • typeenumобязательный

    Gradient type (currently only 'linear' is supported)

photopea_add_layer

Добавляет новый пустой слой в активный документ. Новый слой становится активным. Используйте это перед операциями, которые рисуют на слое, такими как fill_selection или add_gradient.

Добавить слой

Параметры
  • blendModestring

    Blend mode (e.g. normal, multiply, screen, overlay, darken, lighten). Defaults to normal.

  • namestring

    Display name for the new layer in the layers panel

  • opacitynumber

    Layer opacity percentage (0 = fully transparent, 100 = fully opaque, default 100)

photopea_add_shape

Добавляет слой векторной фигуры (прямоугольник или эллипс) в активный документ. Слой фигуры становится активным слоем. Фигуры неразрушающие — их можно изменять в размере с помощью transform_layer без потери качества.

Добавить фигуру

Параметры
  • boundsobjectобязательный

    Shape bounds

  • fillColorstring

    Color as hex string (e.g. #ff0000)

  • namestring

    Name for the shape layer

  • strokeColorany

    Color as hex string (e.g. #ff0000)

  • strokeWidthnumber

    Stroke width in pixels

  • typeenumобязательный

    Shape type to create

photopea_add_text

Добавляет новый текстовый слой в активный документ в указанную позицию. Текстовый слой становится активным слоем. Используйте paragraphBounds для создания текстового блока с переносом слов или опустите для точечного текста. Используйте load_font для добавления пользовательских шрифтов и list_fonts для поиска доступных имён шрифтов.

Добавить текст

Параметры
  • alignmentenum

    Text alignment

  • boldboolean

    Apply faux bold

  • colorstring

    Color as hex string (e.g. #ff0000)

  • contentstringобязательный

    Text content to display on the layer

  • fontstring

    Font PostScript name (e.g. ArialMT, Helvetica-Bold). Use list_fonts to find available names.

  • italicboolean

    Apply faux italic

  • letterSpacingnumber

    Letter tracking/spacing

  • lineHeightnumber

    Line height (leading)

  • paragraphBoundsobject | null

    Paragraph text box bounds

  • sizenumber

    Font size in points (default varies by document resolution)

  • xnumberобязательный

    X position in pixels from the left edge of the document

  • ynumberобязательный

    Y position in pixels from the top edge of the document

photopea_apply_adjustment

Применяет деструктивную корректировку изображения к пиксельным данным активного слоя. Сначала используйте select_layer для выбора конкретного слоя. Изменяет пиксели напрямую — используйте undo для отмены при необходимости.

Применить настройку

Параметры
  • settingsobject

    Key-value settings for the adjustment. For brightness: { brightness: -100..100, contrast: -100..100 }. For hue_sat: { hue: -180..180, saturation: -100..100, lightness: -100..100 }. For levels: { inputBlack: 0..255, inputWhite: 0..255 }

  • typeenumобязательный

    Adjustment type: 'brightness' for brightness/contrast, 'hue_sat' for hue/saturation/lightness, 'levels' for input levels, 'curves' for tone curves

photopea_apply_filter

Применяет разрушительный эффект фильтра к пиксельным данным активного слоя. Сначала необходимо вызвать select_layer для выбора конкретного слоя. Изменяет пиксели напрямую — используйте undo для отмены, если потребуется.

Применить фильтр

Параметры
  • settingsobject

    Key-value settings for the filter. For gaussian_blur: { radius: pixels }. For unsharp_mask: { amount: 1-500, radius: 0.1-250, threshold: 0-255 }. For motion_blur: { angle: degrees, distance: pixels }. For noise: { amount: 1-100 }

  • typeenumобязательный

    Filter type to apply to the active layer

photopea_clear_selectionидемпотентный

Снимает текущее выделение в активном документе, убирая бегущих муравьёв. Не изменяет пиксельные данные. Используйте после завершения fill_selection или других операций, основанных на выделении.

Очистить выбор

Параметры

Без параметров.

photopea_close_document

Закрывает активный документ. Установите save в true, чтобы сохранить изменения перед закрытием. Несохранённые изменения отбрасываются, если save имеет значение false. Следующий открытый документ становится активным, если таковой имеется.

Закрыть документ

Параметры
  • saveboolean

    Whether to save changes before closing (true = save first, false = discard unsaved changes)

photopea_create_document

Создает новый пустой документ и делает его активным. Обычно это первый шаг в рабочем процессе. Документ открывается со слоем Background. Чтобы редактировать существующее изображение, используйте open_file.

Создать документ

Параметры
  • fillColorstring

    Background fill color as hex (e.g. #ffffff for white, #000000 for black). Defaults to white if omitted.

  • heightnumberобязательный

    Document height in pixels (e.g. 1080 for full HD)

  • modeenum

    Color mode (use RGB for most workflows)

  • namestring

    Document name shown in the title bar

  • resolutionnumber

    Resolution in DPI (72 for screen, 300 for print)

  • widthnumberобязательный

    Document width in pixels (e.g. 1920 for full HD)

photopea_delete_layer

Навсегда удаляет слой из активного документа по имени или индексу. Следующий слой в стеке становится активным после удаления. Используйте get_layers, чтобы увидеть доступные слои перед удалением.

Удалить слой

Параметры
  • targetstring | numberобязательный

    Layer name (string) or index (number)

photopea_duplicate_layer

Создаёт копию слоя в активном документе. Дубликат становится активным слоем и размещается над оригиналом. Используйте newName, чтобы отличить копию от оригинала.

Дублировать слой

Параметры
  • newNamestring

    Display name for the duplicated layer (defaults to 'original name copy')

  • targetstring | numberобязательный

    Layer name (string) or index (number)

photopea_edit_text

Изменяет содержимое или стиль существующего текстового слоя. Изменяются только указанные свойства - опустите параметры, чтобы сохранить их текущие значения. Используйте get_layers для поиска названий текстовых слоев, если необходимо.

Редактировать текст

Параметры
  • alignmentenum

    Text alignment

  • colorstring

    Color as hex string (e.g. #ff0000)

  • contentstring

    New text content to replace existing text

  • fontstring

    New font PostScript name (use list_fonts to find available names)

  • letterSpacingnumber

    Letter tracking/spacing

  • lineHeightnumber

    Line height (leading)

  • sizenumber

    New font size in points

  • targetstring | numberобязательный

    Layer name (string) or index (number)

photopea_export_image

Экспортирует активный документ в файл и сохраняет его в локальной файловой системе. Весь документ уплощается и экспортируется в выбранном формате. Используйте create_document или open_file, чтобы настроить документ перед экспортом.

Экспорт изображения

Параметры
  • formatenumобязательный

    Output format: 'png' for lossless, 'jpg' for compressed photos, 'webp' for web, 'psd' for Photoshop, 'svg' for vector

  • outputPathstringобязательный

    Absolute local file path where the exported file will be saved (e.g. /Users/me/output.png)

  • qualitynumber

    Compression quality for JPG format only (1 = smallest file, 100 = best quality). Ignored for other formats.

photopea_fill_selection

Заполняет текущее выделение сплошным цветом на активном слое. Требуется активное выделение — используйте make_selection, чтобы сначала создать его. Напрямую изменяет пиксельные данные на активном слое. После используйте clear_selection, чтобы снять выделение.

Заполнить выделение

Параметры
  • blendModestring

    Blend mode for the fill (e.g. normal, multiply, screen, overlay, darken, lighten). Defaults to normal.

  • colorstringобязательный

    Color as hex string (e.g. #ff0000)

  • opacitynumber

    Fill opacity percentage (0 = fully transparent, 100 = fully opaque, default 100)

photopea_get_document_infoтолько чтениеидемпотентный

Получает метаданные активного документа: имя, ширину, высоту, разрешение (DPI), количество слоёв и цветовой режим. Возвращает JSON. Используйте для проверки размеров документа перед позиционированием слоёв или созданием выделений.

Получить информацию о документе

Параметры

Без параметров.

photopea_get_layersтолько чтениеидемпотентный

Получает полное дерево слоёв активного документа в формате JSON. Возвращает массив объектов слоёв со свойствами name, type, index, visible, opacity, blendMode и bounds. Группы содержат вложенные массивы children. Используйте это, чтобы узнать имена и индексы слоёв для других операций со слоями.

Получить слои

Параметры

Без параметров.

photopea_group_layers

Объединяет несколько слоев в группу слоев (папку). Слои указываются по имени — используйте get_layers, чтобы найти имена слоев. Сгруппированные слои можно позже разгруппировать с помощью ungroup_layers.

Группировать слои

Параметры
  • groupNamestring

    Display name for the group folder in the layers panel

  • layersstring[]обязательный

    Array of layer names to include in the group (use get_layers to find names)

photopea_list_fontsтолько чтениеидемпотентный

Выводит список доступных шрифтов в Photopea. Возвращает PostScript-имена шрифтов, которые можно использовать с add_text и edit_text.

Список шрифтов

Параметры
  • searchstring

    Optional search string to filter fonts by name

photopea_load_fontидемпотентныйвнешний мир

Загружает пользовательский шрифт из URL (TTF, OTF или WOFF2) в Photopea. Шрифт становится доступным для add_text и edit_text. Используйте list_fonts, чтобы найти имя PostScript после загрузки.

Загрузить шрифт

Параметры
  • urlstringобязательный

    URL to a font file (.ttf, .otf, or .woff2)

photopea_make_selection

Создаёт область выделения пикселей в активном документе. После создания выделения используйте fill_selection для заполнения цветом или clear_selection для отмены выделения. Используйте тип 'all' для выбора всего холста или 'rect'/'ellipse' с границами для конкретной области.

Выбрать

Параметры
  • boundsobject

    Selection region bounds in pixels. Required for 'rect' and 'ellipse' types, ignored for 'all'.

  • feathernumber

    Soft edge radius in pixels for anti-aliased selection edges (0 = hard edge)

  • typeenumобязательный

    Selection shape: 'all' selects the entire canvas, 'rect' creates a rectangle, 'ellipse' creates an ellipse

photopea_modify_selection

Изменяет текущее активное выделение. Требует существующее выделение, созданное make_selection. Для expand, contract и feather параметр amount задаёт пиксели. Invert меняет местами выделенные и невыделенные области.

Изменить выделение

Параметры
  • actionenumобязательный

    How to modify the selection: 'expand' grows it, 'contract' shrinks it, 'feather' softens edges, 'invert' swaps selected/unselected

  • amountnumber

    Modification amount in pixels (required for expand, contract, feather; ignored for invert)

photopea_move_layer

Перемещает слой на относительное смещение по x/y в пикселях от его текущей позиции. Положительное x смещает вправо, положительное y — вниз. Используйте get_layers, чтобы проверить текущие границы слоя, или transform_layer для масштабирования и поворота.

Переместить слой

Параметры
  • targetstring | numberобязательный

    Layer name (string) or index (number)

  • xnumberобязательный

    Horizontal offset in pixels (positive = right, negative = left)

  • ynumberобязательный

    Vertical offset in pixels (positive = down, negative = up)

photopea_open_file

Открывает существующий файл изображения в Photopea как новый документ. Поддерживает PSD, PNG, JPG, WebP, SVG и другие распространённые форматы. Открытый файл становится активным документом. Используйте create_document, чтобы начать с чистого холста.

Открыть файл

Параметры
  • sourcestringобязательный

    URL or absolute local file path of the image to open (e.g. /Users/me/photo.psd or https://example.com/image.png)

photopea_place_image

Помещает изображение в активный документ из URL или локального пути. Создаёт новый слой с размещённым изображением как активный слой. Используйте width/height для изменения размера с сохранением соотношения сторон или x/y для позиционирования слоя.

Разместить изображение

Параметры
  • heightnumber

    Resize to this height in pixels (preserves aspect ratio if only one dimension is set)

  • namestring

    Display name for the placed layer in the layers panel

  • sourcestringобязательный

    URL or absolute local file path of the image to place

  • widthnumber

    Resize to this width in pixels (preserves aspect ratio if only one dimension is set)

  • xnumber

    X position offset in pixels from the left edge

  • ynumber

    Y position offset in pixels from the top edge

photopea_redo

Повторяет одно или несколько ранее отменённых действий в активном документе. Доступно только после использования undo — история redo очищается при выполнении новых действий.

Повторить

Параметры
  • stepsinteger

    Number of history steps to redo (default 1)

photopea_reorder_layer

Перемещает слой на новую позицию в стеке слоёв. Используйте 'top' или 'bottom', чтобы переместить в начало или конец стека, или 'above'/'below', чтобы сдвинуть на одну позицию относительно текущего индекса. Используйте get_layers, чтобы увидеть текущий порядок слоёв.

Переупорядочить слой

Параметры
  • positionenumобязательный

    Target position: 'top' = front of stack, 'bottom' = back of stack, 'above' = one position up, 'below' = one position down

  • targetstring | numberобязательный

    Layer name (string) or index (number)

photopea_resize_document

Изменяет размер холста активного документа на новые размеры в пикселях, пересчитывая всё содержимое слоёв, чтобы оно поместилось. Это необратимая операция - все слои масштабируются пропорционально. Используйте отмену (Undo), чтобы вернуть изменения, если нужно.

Изменить размер документа

Параметры
  • heightnumberобязательный

    New document height in pixels

  • widthnumberобязательный

    New document width in pixels

photopea_run_scriptвнешний мир

Выполняет произвольный JavaScript Photopea/ExtendScript в среде Photopea. Используйте для продвинутых операций, не охваченных другими инструментами. Имеет полный доступ к DOM Photopea (app, activeDocument, layers). Используйте с осторожностью — скрипты могут изменить или удалить любые данные документа.

Запустить скрипт

Параметры
  • scriptstringобязательный

    Photopea JavaScript code to execute. Must call app.echoToOE(result) to return data. Has access to the full Photopea scripting API (app, activeDocument, etc.).

photopea_select_layerидемпотентный

Устанавливает слой как активный по имени или индексу. Многие инструменты (apply_filter, apply_adjustment, fill_selection) работают с активным слоем: используйте это, чтобы сначала выбрать нужный слой. Используйте get_layers, чтобы найти имена и индексы слоёв.

Выбрать слой

Параметры
  • targetstring | numberобязательный

    Layer name (string) or index (number)

photopea_set_layer_properties

Обновляет одно или несколько свойств слоя. Изменяются только указанные свойства; остальные остаются с текущими значениями. Используйте get_layers для просмотра текущих значений свойств перед изменением.

Установить свойства слоя

Параметры
  • blendModestring

    Blend mode (e.g. normal, multiply, screen, overlay, darken, lighten, color-dodge, color-burn)

  • lockedboolean

    Whether the layer is locked (true = prevent edits, false = allow edits)

  • namestring

    New display name for the layer

  • opacitynumber

    Layer opacity percentage (0 = fully transparent, 100 = fully opaque)

  • targetstring | numberобязательный

    Layer name (string) or index (number)

  • visibleboolean

    Layer visibility (true = visible, false = hidden)

photopea_transform_layer

Масштабирует, поворачивает или отражает слой на месте. Необратимо изменяет данные пикселей слоя. Используйте get_layers, чтобы проверить текущие границы слоя перед преобразованием, и undo, чтобы отменить при необходимости.

Слой преобразования

Параметры
  • flipHboolean

    Flip the layer horizontally (mirror left-right)

  • flipVboolean

    Flip the layer vertically (mirror top-bottom)

  • rotationnumber

    Rotation angle in degrees (positive = clockwise, negative = counter-clockwise)

  • scaleXnumber

    Horizontal scale factor (1.0 = no change, 0.5 = half size, 2.0 = double size)

  • scaleYnumber

    Vertical scale factor (1.0 = no change, 0.5 = half size, 2.0 = double size)

  • targetstring | numberобязательный

    Layer name (string) or index (number)

photopea_undo

Отменяет одно или несколько последних действий в активном документе. Каждый шаг отменяет одну операцию из истории. Используйте после деструктивных операций (apply_filter, apply_adjustment, fill_selection), чтобы отменить изменения.

Отменить

Параметры
  • stepsinteger

    Number of history steps to undo (default 1)

photopea_ungroup_layers

Распустить группу слоев, переместив все дочерние слои в корень документа. Папка группы удаляется, но её содержимое сохраняется. Используйте get_layers, чтобы найти имена групп.

Разгруппировать слои

Параметры
  • targetstringобязательный

    Name of the layer group to ungroup (use get_layers to find group names)

Похожие MCP-сервера

AceDataCloud/MCPNanoBanana

AceDataCloud/MCPNanoBanana

MCP сервер для генерации и редактирования изображений на базе Google Nano Banana. Создавайте картинки по тексту, редактируйте их, примеряйте одежду виртуально. Инструмент для дизайнеров и маркетоло...

Python7
GenWaveLLC/svgmaker-mcp

GenWaveLLC/svgmaker-mcp

SVGMaker MCP сервер на базе ИИ: генерирует, редактирует и конвертирует SVG по текстовому описанию. Подходит дизайнерам и разработчикам: создавайте векторную графику, редактируйте естественным языко...

TypeScript87
AceDataCloud/MCPSeedream

AceDataCloud/MCPSeedream

MCP-сервер для генерации и редактирования изображений с помощью моделей ByteDance Seedream. Используйте текстовые запросы на русском или английском, меняйте стиль и фон, управляйте разрешением и se...

Python3
strato-space/media-gen-mcp

strato-space/media-gen-mcp

Строго типизированный MCP сервер для генерации изображений (OpenAI gpt-image) и видео (Sora, Veo). Поддерживает редактирование, загрузку с URL и диска, сжатие. Интегрируется с любыми MCP-клиентами.

TypeScript9
AceDataCloud/MCPFlux

AceDataCloud/MCPFlux

MCP сервер FluxMCP подключает генерацию и редактирование AI-изображений Flux к любым MCP-клиентам. Создавайте и дорабатывайте картинки текстовыми запросами, работайте локально или облачно, 7 моделей.

Python3
vkhanhqui/figma-mcp-go

vkhanhqui/figma-mcp-go

Открытый Figma MCP-сервер с полным доступом на чтение и запись через плагин. Не требует API и не имеет лимитов — подходит дизайнерам и разработчикам. Работает с AI-инструментами. Управляйте стилями...

Go1178
© Каталог MCP, 2026. Все права защищены.
Проект не аффилирован с Anthropic и любыми упомянутыми продуктами.
Все названия и торговые марки принадлежат их владельцам.
Контакты для связи: hi@mcp-katalog.ru

Лука Никитин