MCP-протокол плюс OpenCV и FFmpeg: ИИ-ассистент работает с камерой в 15 МБ памяти
Автоматическая обработка видео с веб-камер и IP-камер силами ИИ-ассистента обычно требует Python-окружения весом в гигабайт и десятков зависимостей, но существует способ обойтись одним компактным исполняемым файлом на Windows, который стартует мгновенно и потребляет от 12 до 15 мегабайт оперативной памяти.

MCP-протокол (Model Context Protocol, открытый стандарт связи между ИИ-ассистентом и внешними инструментами) позволяет подключить к любому агенту камеру, видеопоток или нарезку кадров, но готовые серверы на Python или Node.js тяжелы и медленны для работы с видео в реальном времени: нативный сервер на Delphi решает именно эту проблему.
Проект media-mcp-server, описанный разработчиком библиотек Delphi-OpenCV5, Delphi-FFmpeg и Delphi-ONVIF, объединяет три вещи: прямой импорт классов OpenCV 4/5 из C++ DLL в Object Pascal, обработку видеопотоков через FFmpeg и обнаружение IP-камер по протоколу ONVIF. Результат компилируется в один исполняемый файл MediaMCPServer.exe с несколькими DLL рядом. Ни виртуальных окружений, ни вызовов pip install, ни папки node_modules на гигабайт.
Что понадобится?
- Delphi (Object Pascal) с поддержкой Custom Managed Records
- OpenCV 5.0 (DLL для Windows x64), проект Delphi-OpenCV5
- FFmpeg (DLL), обёртка Delphi-FFmpeg
- Delphi-ONVIF для работы с сетевыми камерами
- Windows (хост) плюс, при необходимости, WSL для ИИ-клиента на стороне Linux
- ИИ-клиент с поддержкой MCP-протокола (например, Claude Desktop, Cursor или любой агент, умеющий вызывать tools/list и tools/call по JSON-RPC)
- Примерно 2 до 4 часов на сборку и настройку, если Delphi-среда уже установлена
Как собрать и запустить сервер за шесть шагов?
-
Клонируйте репозитории Delphi-OpenCV5, Delphi-FFmpeg и Delphi-ONVIF. Положите DLL-файлы OpenCV и FFmpeg рядом с будущим исполняемым файлом.
-
Откройте проект media-mcp-server в Delphi. Убедитесь, что пути к модулям (uMCPHttpServer.pas и остальным юнитам) прописаны корректно.
-
Скомпилируйте проект под Windows x64. На выходе получите MediaMCPServer.exe. Проверьте, что рядом лежат все нужные DLL.
-
Выберите транспорт. Рекомендуется Streamable HTTP: сервер стартует как самостоятельный процесс и слушает заданный порт. Транспорт stdio (стандартные потоки ввода-вывода) оставлен для совместимости, но на практике ненадёжен: библиотеки OpenCV и FFmpeg иногда пишут отладочные сообщения прямо в stdout, и этот мусор ломает парсер JSON-RPC на стороне клиента.
-
Запустите сервер:
MediaMCPServer.exe --transport http --port 8080
В режиме ожидания сервер занимает 12 до 15 МБ RAM. При обработке кадров память расходуется только под структуры TMat (обёртка для cv::Mat из OpenCV) внутри C++ DLL.
- Подключите ИИ-клиент. Укажите адрес сервера в настройках MCP-протокола вашего агента. Клиент отправляет запрос tools/list, получает список доступных функций (захват кадра с веб-камеры, нарезка видео, распознавание объектов), затем вызывает нужную через tools/call с параметрами в формате JSON.
Допустим, вы хотите, чтобы ИИ-ассистент сделал снимок с USB-камеры и описал, что на нём. В MCP-клиенте вы пишете обычный текст: «Сделай снимок с веб-камеры и опиши, что видишь». Клиент вызывает функцию take_snapshot() через MCP-протокол, сервер захватывает кадр средствами OpenCV, возвращает изображение, а языковая модель получает его как мультимодальный (воспринимающий и текст, и картинку) вход и формирует текстовое описание. Весь цикл занимает доли секунды, потому что кадр обрабатывается в общей памяти процесса без межпроцессной сериализации (без перекодирования массива пикселей для передачи между отдельными программами).
Почему stdio-транспорт не подошёл?
Разработчик столкнулся с тремя конкретными проблемами. Библиотеки FFmpeg и OpenCV при внутренних предупреждениях пишут сообщения прямо в stdout, что ломает JSON-RPC-парсер клиента и вызывает аварийное завершение сессии. Стандартная функция Readln в Delphi буферизует ввод и зависает, когда разделитель строк не совпадает с ожидаемым. И главное: stdio не работает через границу виртуализации, например, когда ИИ-клиент запущен в WSL Linux, а сервер с физическими USB-камерами и видеокартами с CUDA работает на хост-системе Windows.
Streamable HTTP решает все три проблемы: сервер изолирован как отдельный процесс, слушает порт, поддерживает сессии через заголовок Mcp-Session-Id и отдаёт ответы в реальном времени.
- Забыли положить DLL рядом с exe. Сервер запустится, но при первом вызове OpenCV или FFmpeg упадёт без внятной ошибки. Проверяйте наличие всех DLL до первого запроса.
- Оставили stdio-транспорт по умолчанию. Отладочный вывод сторонних библиотек в stdout сломает сессию. Переключайтесь на HTTP сразу.
- Путаете версии OpenCV. Проект Delphi-OpenCV5 рассчитан на OpenCV 5.0. Старые DLL от версии 4.x могут не подойти по декорированным именам функций.
- Не учитываете границу WSL и Windows. Если ваш ИИ-клиент работает в WSL, а камеры физически подключены к Windows, без сетевого транспорта (HTTP) связь невозможна.
Что с этого вам прямо сейчас?
Разработчику на Delphi или C++: готовая архитектура для создания MCP-сервера с нативным доступом к камерам и видео. Не нужен Python, не нужен Node.js. Один exe, минимальный расход памяти, прямая работа с кадрами в общей памяти процесса.
Автору на Дзене, который пишет про технологии: MCP-протокол стремительно становится стандартом подключения внешних инструментов к ИИ-агентам. Понимание того, как он работает на практике, даёт вам тему для серии материалов, которые пока почти никто не освещает на русском языке.
Предпринимателю, которому нужно видеонаблюдение с ИИ: коммерческие платформы вроде Lumana или Spot AI стоят денег и привязывают к вендору. Если в команде есть Delphi-разработчик, описанный подход позволяет собрать собственное решение на своём железе, под своим контролем.
Для тех, кто работает в РФ: все компоненты (Delphi, OpenCV, FFmpeg) доступны и работают без ограничений. Облачные MCP-серверы от Anthropic или OpenAI могут быть недоступны, но описанный сервер работает полностью локально.
Идея кажется нишевой: Delphi в 2025 году звучит неожиданно. Но суть не в языке, а в архитектурном решении. Один нативный exe, который стартует за миллисекунды, ест 12 до 15 МБ памяти и работает с камерами напрямую, без прослойки из Python, это ровно то, чего не хватает «бытовым» агентным системам на базе Claude или ChatGPT. По моим наблюдениям, большинство MCP-серверов на Python тратят больше ресурсов на запуск окружения, чем на саму обработку кадра. Честная оговорка: проект пока не стал публичным релизом с документацией и готовыми бинарниками. Порог входа высокий, нужен опыт работы с Delphi и понимание того, как устроены DLL-обёртки для C++ библиотек. Но сам паттерн «нативный MCP-сервер для медиа» заслуживает внимания: если идея приживётся, мы увидим аналоги на Rust и Go.
Для тех, кто хочет попробовать: начните с простого, соберите сервер, подключите одну веб-камеру и попросите ИИ-ассистента описать кадр. Это займёт вечер и покажет, стоит ли вкладываться в полноценную интеграцию с RTSP-потоками и ONVIF-сканированием сети.
Научитесь работать с ИИ-инструментами на практике
В dzen.guru мы разбираем реальные сценарии использования нейросетей для авторов и предпринимателей, от промптов до интеграций
Попробовать бесплатно
Основатель dzen.guru. Эксперт по монетизации и продвижению на Дзен. Автор курса «Старт на Дзен 2026».
Читайте также

Gemini 3.5 Flash получил управление компьютером: агент видит экран и сам нажимает кнопки
Google встроила в Gemini 3.5 Flash управление компьютером: модель видит экран, рассуждает и сама нажимает кнопки в браузере, на десктопе и в мобильных…

Что такое ИИ-агент: собираем runtime с контролем токенов и бюджета с нуля
Компания или человек, написавший оригинальный код OpenHarness, не указаны в источнике как конкретный бренд или лицо. Источник представляет собой учебный…

Baidu открыла OCR-нейросеть на 3 млрд параметров: 40 страниц за проход без роста памяти
Baidu, китайская технологическая компания, 10 июня 2025 года выложила в открытый доступ Unlimited OCR, нейросеть для распознавания текста, которая обрабатывает…
Комментарии