ImageMagick MCP: дайте вашему ИИ-ассистенту пару рук для изменения размера изображений
← Назад в блог

ImageMagick MCP: дайте вашему ИИ-ассистенту пару рук для изменения размера изображений

Опубликовано
4 мин чтения
--- просмотров
ImageMagick MCP — изменение размера и обрезка с размытой заливкой фона

ИИ-ассистенты отлично решают, как должно выглядеть изображение, и совершенно бесполезны, когда нужно его реально создать. Попросите один из них "сделай из этого социальную карточку 1200×630" — и получите абзац советов вместо файла. Поэтому я написал imagemagick-mcp: маленький и быстрый сервер Model Context Protocol на Go, который оборачивает ImageMagick, чтобы любой MCP-совместимый агент — Claude, Cursor, что угодно — мог переформатировать изображения до точных размеров прямо на диске.

Вся суть: дать вашему ИИ-ассистенту пару рук для обрезки, изменения размера и заливки фона размытием — и никогда не искажать источник.

Единственная работа, которую он делает хорошо

Большинство инструментов для работы с изображениями либо обрезают ваш объект, либо сжимают пропорции, чтобы вписаться в рамку. Этот сервер отказывается делать и то, и другое. Когда исходное изображение уже соответствует нужным пропорциям, он просто аккуратно меняет размер. Когда не соответствует — вы выбираете, как заполнить разницу. Никогда никаких искажений.

Это и есть философия дизайна — один инструмент, три предсказуемых режима, ноль сюрпризов:

РежимЧто вы получаетеЛучше всего для
🌫️ blur (по умолчанию)Изображение вписано поверх размытой, увеличенной копии самого себя — красиво заполняет пустоту, без мёртвого пространстваМиниатюры, hero-карточки, посты в соцсетях
✂️ coverОбрезка-заполнение по центру — без отступов, без полосАватары, плитки, галереи с фиксированной сеткой
📦 containВписывание внутрь с аккуратными чёрными полямиЛоготипы, скриншоты, арт, который нельзя обрезать

Режим blur — тот, к которому я обращаюсь чаще всего: вместо уродливых чёрных полос или растянутого объекта вы получаете мягкий, гармоничный фон, полученный из самого изображения. Именно это заставляет портретное фото хорошо смотреться в карточке 16:9.

Инструмент: crop_resize_blur_bg

Сервер предоставляет один сфокусированный MCP-инструмент. Никакой раскидистой поверхности API — только параметры, которые имеют значение:

ПараметрТипОбязателенПо умолчаниюОписание
input_pathstringАбсолютный путь к исходному изображению
output_pathstringАбсолютный путь для вывода (родительские директории создаются автоматически)
widthnumberЦелевая ширина в пикселях
heightnumberЦелевая высота в пикселях
modestringblurblur, cover или contain
blurnumber30Радиус размытия (используется только режимом blur)

Поскольку он принимает обычные абсолютные пути и целые числа, модель может управлять им из запроса на естественном языке — "измени размер всех фото в этой папке на 1080×1080 с размытым фоном" — и агент сам подставит аргументы. Выходные директории создаются автоматически, так что всё просто работает.

Настройка

Предварительные требования

  • Go 1.22+ — для сборки сервера
  • ImageMagick 7 — бинарник magick должен быть в вашем PATH

Установите ImageMagick для своей платформы:

# macOS
brew install imagemagick

# Windows (pick one)
choco install imagemagick
winget install ImageMagick.ImageMagick

В Windows, если вы используете установщик вместо этого, отметьте "Add application directory to your system path".

Сборка

Сервер — это единый бинарник на Go. Makefile покрывает все платформы:

make build          # current platform  -> bin/imagemagick-mcp
make build-all      # cross-compile darwin/linux/windows (amd64 + arm64)
make install        # build + copy to /usr/local/bin

Подключение к вашему MCP-клиенту

Зарегистрируйте бинарник как stdio-сервер в MCP-конфиге вашего клиента:

{
  "mcpServers": {
    "imagemagick": {
      "command": "/absolute/path/to/bin/imagemagick-mcp"
    }
  }
}

Перезапустите клиент, и ваш ассистент сможет начать переформатировать изображения.

Почему обернуть ImageMagick, а не использовать библиотеку

ImageMagick десятилетиями остаётся золотым стандартом для манипуляций с изображениями из командной строки — он быстрый, скриптуемый и уже установлен на половине важных машин. Переизобретение логики обрезки и заполнения в управляемой библиотеке изображений означало бы заново изобретать проверенную временем геометрическую математику и тащить за собой более тяжёлую зависимость. Оборачивание бинарника magick держит сервер маленьким и быстрым: он делегирует работу инструменту, который уже превосходен, и просто учит его говорить на MCP.

Это паттерн, к которому я постоянно возвращаюсь в этих серверах — найти зрелый CLI, выставить ровно ту операцию, которая нужна агенту, и поставить перед ней чистый типизированный интерфейс. Модель получает надёжную возможность; вы не получаете новую поверхность атаки или хрупкую переимплементацию.

Проект открыт на GitHub: github.com/artschekoff/imagemagick-mcp — построен на Go + ImageMagick. Issues и пул-реквесты приветствуются.

Открыт для работы по контракту

Я доступен для работы по контракту. Если у вас есть интересная идея проекта — запишитесь на звонок через Calendly.

Записаться на 30-минутный звонок