# ImageStep

MCP-сервер для работы с изображениями: генерация, трансформации и пресеты. Картинки не попадают в контекст — на выходе только id, пути и ссылки.

- MCP-сервер · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 1
- Автор: imagestep
- Лицензия: MIT · policy=link-only · показываем только описание, файл — у автора
- Исходник: https://github.com/imagestep/imagestep-sdk/tree/HEAD/packages/mcp
- Обновлён: 2026-10-22
- HTML: https://affpapa.org/nevibecode/mcp/imagestep

## Что делает

ImageStep даёт агенту инструменты для картинок: `generate` создаёт изображения по промпту, `transform` выполняет одну операцию, `run_preset` прогоняет сохранённый пресет из нескольких шагов, `job_status` показывает прогресс задания, `search_assets` ищет ассеты, `save_preset` сохраняет цепочку операций под именем и версией. Пресет с `subjects` удерживает одного персонажа или товар одинаковым по всей партии, а `slug@version` фиксирует конкретную версию.

Байты изображений в контекст не возвращаются: инструмент отвечает идентификатором ассета, путём к временному файлу или ссылкой. У `transform` два режима, и выбирает их не агент, а входные данные. Синхронный режим включается, когда на входе ровно один локальный файл или один URL, операция детерминированная и передан `wait: true` — тогда ничего не сохраняется в аккаунте. Всё остальное уходит в задание с прогрессом и отменой. Локальный сервер отдаёт `path`, хостинг по адресу `https://mcp.imagestep.dev/mcp` — подписанную ссылку с `expiresInSeconds`.

Для работы нужен ключ `IMAGESTEP_API_KEY`. У платных инструментов есть `dry_run`: он показывает точную цену и ничего не создаёт, поэтому ошибку в параметре отклонят до списания. Повторный вызов с тем же `idempotency_key` и теми же аргументами вернёт результат первого вызова, а не создаст второе задание.

## Требования
- Нужно: Node.js (команды через npx)
- Удалённый сервер: `https://mcp.imagestep.dev/mcp`
- Переменные окружения: `IMAGESTEP_API_KEY` — это ключи и токены: значения спроси у человека, в репозиторий и общие файлы не записывай.

## Установка

### Claude Code (родная платформа)

1. **Командой платформы**
```bash
claude mcp add mcp -e IMAGESTEP_API_KEY=<IMAGESTEP_API_KEY> -- npx -y @imagestep/mcp
```
Вместо <…> подставьте свои значения

2. **Командой платформы: удалённый сервер**
```bash
claude mcp add --transport http mcp https://mcp.imagestep.dev/mcp
```

### Codex

1. **Командой платформы: удалённый сервер**
```bash
codex mcp add mcp --url https://mcp.imagestep.dev/mcp
```

2. **Командой платформы**
```bash
codex mcp add mcp --env IMAGESTEP_API_KEY=<IMAGESTEP_API_KEY> -- npx -y @imagestep/mcp
```
Вместо <…> подставьте свои значения

### Cursor

**Файл настроек**
Файл `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "mcp": {
            "url": "https://mcp.imagestep.dev/mcp"
        }
    }
}
```
Файл `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "mcp": {
            "command": "npx",
            "args": [
                "-y",
                "@imagestep/mcp"
            ],
            "env": {
                "IMAGESTEP_API_KEY": "<IMAGESTEP_API_KEY>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения

### GitHub Copilot

**Файл настроек**
Файл `.vscode/mcp.json`:
```json
{
    "servers": {
        "mcp": {
            "type": "http",
            "url": "https://mcp.imagestep.dev/mcp"
        }
    }
}
```
Файл `.vscode/mcp.json`:
```json
{
    "servers": {
        "mcp": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "@imagestep/mcp"
            ],
            "env": {
                "IMAGESTEP_API_KEY": "<IMAGESTEP_API_KEY>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения

### Gemini CLI

1. **Командой платформы: удалённый сервер**
```bash
gemini mcp add -t http mcp https://mcp.imagestep.dev/mcp
```

2. **Командой платформы**
```bash
gemini mcp add -e IMAGESTEP_API_KEY=<IMAGESTEP_API_KEY> mcp npx -y @imagestep/mcp
```
Вместо <…> подставьте свои значения

## Когда брать
- сгенерировать картинку по промпту и получить ссылку на неё
- прогнать партию изображений через один пресет с сохранением персонажа
- убрать фон или увеличить разрешение одной операцией
- собрать PNG по шаблону из набора данных
- проверить цену операции до её запуска

## Примеры запросов агенту
- Сгенерируй три варианта обложки по промпту и покажи ссылки
- Прогони `hero.png` через `remove_bg` с `wait: true`
- Сохрани эту цепочку шагов как пресет и верни `slug@version`

## Похожие
- [scenario-identity-library](https://affpapa.org/nevibecode/skills/scenario-identity-library.md) — скилл · 435 установок
- [imagen](https://affpapa.org/nevibecode/skills/sanjay3290-imagen.md) — скилл · 626 установок
- [od-next-media-inputs](https://affpapa.org/nevibecode/skills/od-next-media-inputs.md) — скилл · 311 установок
- [shadcn](https://affpapa.org/nevibecode/skills/shadcn-ui-shadcn.md) — скилл · 123300 установок
- [spritecook-use-presets](https://affpapa.org/nevibecode/skills/spritecook-use-presets.md) — скилл · 517 установок
- [u-he Preset Randomizer](https://affpapa.org/nevibecode/mcp/u-he-preset-randomizer.md) — MCP-сервер · ★ 32

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
