Skip to main content
Glama

Локальный MCP-сервер Snagit

Локальный MCP-сервер, который позволяет GitHub Copilot записывать демо-видео с помощью копии TechSmith Snagit, уже установленной на вашем компьютере. Copilot управляет записью так же, как и всем остальным — прохождением по терминалу, развёртыванием или сеансом Playwright для развёрнутого приложения — и получает на выходе MP4.

Он общается со Snagit через собственный COM-интерфейс автоматизации SNAGIT.VideoCapture, поэтому здесь нет имитации горячих клавиш, сценариев пользовательского интерфейса и сторонних программ записи экрана.

Требования

  • Windows

  • Snagit 2023 или новее, установленный и запущенный хотя бы один раз (проверено на Snagit 2025, 25.4.0.8498)

  • Python 3.10+

Related MCP server: autodemo

Установка

py -3.12 -m venv .venv
.\.venv\Scripts\python.exe -m pip install -e .
.\.venv\Scripts\python.exe -m snagit_mcp --selftest

--selftest должен сообщить "ready": true. Если этого не произошло, см. раздел Устранение неполадок.

В репозитории есть .vscode/mcp.json, поэтому VS Code предлагает запустить сервер, как только вы откроете папку. Чтобы использовать его из любой рабочей области, добавьте тот же блок в свой пользовательский mcp.json с абсолютными путями вместо ${workspaceFolder}.

Записи сохраняются в SNAGIT_MCP_OUTPUT_DIR (по умолчанию это папка recordings/ в рабочей области или %USERPROFILE%\Videos\Snagit MCP, если переменная не задана).

Переменная окружения

По умолчанию

Назначение

SNAGIT_MCP_OUTPUT_DIR

%USERPROFILE%\Videos\Snagit MCP

Куда сохраняются MP4-файлы

SNAGIT_MCP_MAX_WAIT_SECONDS

600

Верхняя граница для инструмента wait

SNAGIT_MCP_ENCODE_TIMEOUT_SECONDS

300

Как долго stop_recording ждёт кодирования

Инструменты

Инструмент

Что делает

check_snagit_setup

Версия Snagit, доступность COM, выходная папка, количество дисплеев

list_displays

Мониторы и их границы в пикселях

list_windows

Видимые окна с дескрипторами и границами — используйте, чтобы найти браузер

focus_window

Восстановить и вывести окно на передний план перед записью

start_recording

Записать дисплей, окно или фиксированную область в MP4

recording_status

Идёт ли запись и как долго

pause_recording / resume_recording

Пропустить паузу, например, пока завершается развёртывание

stop_recording

Остановить, дождаться кодирования, вернуть путь к MP4 и длительность

wait

Выдержать паузу, чтобы последнее действие на экране было читаемым

list_recordings

Последние MP4-файлы в выходной папке

Также есть промпт record_app_demo (слэш-команда в VS Code), который даёт Copilot полную процедуру «сначала список кадров».

Запись демо-ролика развёрнутого приложения

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

  1. Playwright MCP открывает URL вашего App Service в браузере с открытым окном и выполняет вход.

  2. list_windows с title_contains: "Edge" (или Chrome) возвращает дескриптор окна браузера.

  3. start_recording с target: "window" и этим дескриптором. Он возвращается после обратного отсчёта Snagit, так что следующее действие уже попадает в кадр.

  4. Playwright щёлкает по сценарию; wait между шагами позволяет за ним следить.

  5. stop_recording возвращает путь к MP4.

Для обзора репозитория, когда нужно переключаться между VS Code, терминалом, порталом Azure и браузером, используйте target: "fullscreen" с display_index из list_displays вместо отдельного окна.

Попросите об этом простым языком, например:

Запиши демо процесса развёртывания: покажи предварительные требования в README, запусти скрипт развёртывания, затем открой URL App Service и пройдись по созданию записи. Используй дисплей 0.

Как это управляет Snagit

Эти особенности были установлены экспериментально, и тайминги в src/snagit_mcp/recorder.py зависят от них:

  • Последовательность: Capture() для подготовки, пауза 3 секунды, Start(), затем Stop(). Если вызвать Start() слишком рано после Capture(), получится пустой MP4 размером 2 КБ.

  • Snagit воспроизводит обратный отсчёт ~3,4 секунды после Start(). start_recording поглощает его и возвращается только после начала реальной записи.

  • Панель записи Snagit должна оставаться видимой. Установка HideRecordingUI = True незаметно усекает записи до пары секунд. Панель находится за пределами захватываемой области, поэтому в видео не попадает.

  • В этой сборке Snagit микрофон и системный звук нельзя настроить через COM — эти сеттеры вызывают исключение, а неудачная запись может заблокировать механизм захвата. Поэтому звук следует настройкам, заданным в самом Snagit. Если нужен закадровый голос, настройте его там перед записью.

  • RecordingDuration, FrameCount и AverageFrameRate имеют смысл только после Stop(); во время записи recording_status сообщает собственное время сервера.

  • Вывод идёт сразу в файл. Редактор Snagit не открывается между дублями.

Проверка после обновления Snagit

.\.venv\Scripts\python.exe tests\smoke_recording.py

Записывает реальный 5-секундный клип через инструменты MCP и проверяет длительность полученного MP4. Если будущий выпуск Snagit изменит поведение обратного отсчёта или подготовки, это будет обнаружено.

Устранение неполадок

Симптом

Исправление

check_snagit_setup сообщает об ошибке COM

Запустите Snagit один раз, чтобы он зарегистрировал свой COM-сервер, затем повторите попытку

Записи пустые или длятся пару секунд

Механизм захвата завис: Stop-Process -Name SnagitCapture -Force, затем снова запустите SnagitCapture.exe

Snagit did not arm the recorder

В Snagit уже открыт захват — отмените его и повторите попытку

Координаты области выглядят смещёнными на масштабированном дисплее

Сервер устанавливает DPI-совместимость на монитор при запуске; проверьте dpi_awareness в check_snagit_setup

Примечание о том, что попадает в кадр

Запись экрана захватывает всё, что отображается на экране, включая вывод терминала, токены, сеансы портала и уведомления. Закройте или очистите всё конфиденциальное перед записью и просмотрите MP4 перед публикацией.

Related MCP Connectors

Related MCP Servers

  • F
    license
    A
    quality
    D
    maintenance
    Enables LLMs to capture screenshots and screen recordings through MCP with chunked session-based transfers for reliable image consumption. Supports multi-monitor selection, timeline capture, and compatibility with both vision and non-vision language models.
    11
    1
    -
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables an AI agent to operate Windows applications through vision-driven UI Automation and record polished demo videos with pre-click camera zoom, narration, and cinematic effects.
    MIT