MCP инструменты
Heretic Lazy Shot открывает все основные действия через встроенный сервер Model Context Protocol. Любой MCP-совместимый агент снимет, распознаёт текст, расставит маркеры и откроет композитор без мышки.
Гигиена ключей. Каждый захват требует короткий описательный
keyword, напримерchrome-settingsилиlogin-page. При совпадении ключ автоматически суффиксируется (login-page→login-page2). Всегда показывайте пользователю возвращённый ключ.
Захват
| Инструмент | Когда использовать |
|---|---|
capture_display | Целый монитор |
capture_region | Прямоугольник в пикселях на мониторе |
capture_window | Конкретное приложение по названию / процессу (нечёткий матч — предпочтительно) |
capture_active_window | Активное окно — рискованно из-под агента (может захватить собственный терминал) |
capture_tracked_window | Выбор из стека недавно активных окон (нужен флаг windowTracker) |
Примеры
// capture_window — конкретное приложение
{ "query": "Chrome", "keyword": "chrome-settings" }
// capture_region — прямоугольник на мониторе 0
{ "x": 100, "y": 200, "width": 800, "height": 600, "keyword": "header-crop" }
// capture_display — монитор 0 целиком
{ "display": 0, "keyword": "full-desktop" }
Обнаружение и списки
| Инструмент | Назначение |
|---|---|
list_displays | Подключённые мониторы и геометрия |
list_tracked_windows | Недавно активные окна — вызывайте перед capture_tracked_window |
list_screenshots | Листать галерею; фильтр по статусу / типу / сортировке |
search_screenshots | Поиск по имени файла, ключу, метаданным — с диапазоном дат и типом |
get_screenshot | Полные метаданные снимка (по id или ключу) |
get_app_status | Версия, порт MCP, флаги фич |
list_ocr_languages | Доступные / установленные пакеты OCR |
list_marker_presets / search_marker_presets / get_marker_preset | Сохранённые пресеты маркеров |
// search_screenshots
{ "query": "dashboard", "date_from": "2026-04-01", "type": "window" }
Значения type: region | window | display | beautify | markers.
Действия над снимком
| Инструмент | Назначение |
|---|---|
assign_keyword | Переименовать / тегировать — вызывайте сразу после захвата для стабильного имени |
edit_screenshot | Открыть в композиторе Beautify. edit_existing: true перезаписывает; по умолчанию создаётся копия |
delete_screenshot | Мягкое удаление |
open_screenshot | Открыть в системном просмотрщике (Preview на macOS) |
show_window | Показать или скрыть окно самого lazy-shot |
// переименовать после захвата
{ "id": "chrome-settings", "keyword": "chrome-settings-dark" }
// открыть в композиторе (по умолчанию — копия)
{ "id": "chrome-settings" }
Маркеры — add_markers
Наложить нумерованные или подписанные пины. Можно передать массив маркеров или указать сохранённый пресет.
{
"screenshot_id": "chrome-settings",
"keyword": "chrome-settings-annotated",
"markers": [
{ "x": 120, "y": 80, "label": "1", "color": "#FF0000", "size": 32 },
{ "x": 340, "y": 200, "label": "2", "color": "#00AA00" }
]
}
Для переиспользуемых схем сохраните пресет в приложении и вызывайте через get_marker_preset.
OCR
Две точки входа:
ocr_screenshot— OCR по элементу галереи (по id или ключу)ocr_image_path— OCR по любому файлу внутри директории screenshots / app-data
Ключевые параметры:
| Параметр | Значения | Примечание |
|---|---|---|
format | text · metadata · text_and_metadata | metadata возвращает боксы слов и confidence |
variant | fast · best | best — только если fast искажает текст |
lang | например eng, rus, eng+rus | Неустановленные пакеты скачиваются автоматически при первом вызове (~4 МБ) |
{ "id": "login-page", "lang": "eng+rus", "format": "text_and_metadata" }
Формат ответа
Инструменты захвата возвращают унифицированный объект, чтобы агенты могли связывать цепочки:
{
"id": "chrome-active-view-222",
"keyword": "chrome-active-view",
"path": "/Users/you/Pictures/lazy-shot/chrome-active-view-222.png",
"width": 2880,
"height": 1800,
"type": "window"
}
Связывайте capture_window → add_markers → edit_screenshot → ocr_screenshot по id или keyword из каждого шага.
Промпт-рецепты
«Оформи активную вкладку Chrome»
Захвати окно Chrome с ключом "chrome-active-view",
затем открой его в редакторе beautify.
Под капотом: capture_window({ query: "Chrome", keyword: "chrome-active-view" }) → edit_screenshot({ id: "chrome-active-view" }).
«Сними баг и расставь три маркера»
Захвати область x=0 y=0 w=1400 h=900 на мониторе 0 с ключом "bug-42".
Расставь три нумерованных маркера в (120,80), (340,200) и (540,420).
Сохрани результат как "bug-42-annotated" и открой его.
«OCR страницы логина на англ + рус»
Захвати текущее окно Chrome как "login-page", затем прогоняй OCR
с lang=eng+rus и format=text_and_metadata. Верни распознанный текст.
«Найди все скриншоты дашборда за апрель»
search_screenshots: query="dashboard", type="window",
date_from="2026-04-01". Верни id и пути.
«Пересними из стека отслеживаемых окон»
list_tracked_windows. Если Slack есть в списке — выполни
capture_tracked_window с ключом "slack-thread".
Иначе захвати Slack через capture_window.
Безопасность
- Все инструменты работают локально — никаких облачных вызовов и сетевого исхода
capture_active_windowрискованно из-под агента (может захватить собственный терминал) — предпочитайтеcapture_windowс явнымquery- Конфликт ключей суффиксируется автоматически (
rabbit→rabbit2) — используйте возвращённый ключ в последующих вызовах - Неустановленные пакеты OCR скачиваются автоматически при первом вызове (~4 МБ)
Настройка Claude Desktop, Claude Code, Cursor и Copilot — в разделе интеграции.