使用说明
Webcam MCP
Сплит на отдельные репо: логика разнесена на webcam-mcp-shared, webcam-capture-mcp и webcam-analysis-mcp. Этот каталог можно считать монолитом для обратной совместимости; для новых установок предпочтительны два MCP-сервера из
captureиanalysis.
MCP-сервер для ручного захвата с камеры и микрофона и передачи данных агенту для анализа. Поддерживает одиночный кадр, burst-серии и аудио-burst в WAV.
Модульная раскладка
Тот же функционал в стеке financial-open разнесён по трём сабмодулям (источник правды — GitLab; на GitHub — зеркала):
- webcam-mcp-shared — общая библиотека
- webcam-capture-mcp — захват (камера, экран, аудио, A/V)
- webcam-analysis-mcp — анализ, OCR, Whisper
Этот репозиторий — один процесс со всеми тулами в одном MCP; если так проще подключать в mcp.json, это остаётся нормальным вариантом.
Стек
- C#, .NET 10, win-x64, self-contained
ModelContextProtocol(C# SDK)OpenCvSharp4+OpenCvSharp4.runtime.winNAudioWhisper.net+Whisper.net.Runtime
Лицензия
Software: MIT (текст OSI) · Ethical use: declaration
Публикация
dotnet publish -c Release -o publish
Для подключения удобно использовать фиксированный путь к exe (например через junction), затем добавить сервер в mcp.json.
Пример mcp.json
{
"mcpServers": {
"webcam-mcp": {
"command": "D:\\webcam-mcp\\WebcamMcp.exe",
"args": []
}
}
}
Tool
capture_webcam_frame
Делает одиночный снимок с выбранной камеры и сохраняет изображение в workspace.
Обязательный параметр:
workspace_path— путь к workspace.
Опциональные параметры:
camera_index(int, default0)width/height(int)warmup_frames(int, default5)image_format(jpg|png, defaultjpg)jpeg_quality(int1..100, default92)output_subdir(relative path, default.cascade-ide\\webcam-captures)file_name(без расширения)
Ответ: JSON-строка с file_path, width, height, camera_index, image_format, captured_at_utc.
capture_webcam_burst
Делает серию кадров с камеры в течение заданной длительности.
Обязательный параметр:
workspace_path— путь к workspace.
Опциональные параметры:
camera_index(int, default0)width/height(int)warmup_frames(int, default5)duration_sec(int, default2)target_fps(int, default24)image_format(jpg|png, defaultjpg)jpeg_quality(int1..100, default92)output_subdir(relative path, default.cascade-ide\\webcam-captures)burst_name(имя серии, опционально)save_video(bool, defaultfalse)video_fps(int, default24)video_format(mp4|avi, defaultmp4)
Ответ: JSON-строка с burst_dir, frames_captured, target_fps, actual_fps, video_path (если включено), и метаданными кадра.
capture_screen_burst
Делает серию кадров с экрана в течение заданной длительности (вместо веб-камеры).
Обязательный параметр:
workspace_path— путь к workspace.
Опциональные параметры:
monitor(int 1-based слева направо илиall; если указан иx/y/width/heightне переданы, регион берётся по выбранному монитору;all= весь виртуальный экран)x/y(int, default: начало виртуального экрана)width/height(int, default: размер виртуального экрана)duration_sec(int, default2)target_fps(int, default24)image_format(jpg|png, defaultjpg)jpeg_quality(int1..100, default92)output_subdir(relative path, default.cascade-ide\\screen-captures)burst_name(имя серии, опционально)save_video(bool, defaultfalse)video_fps(int, default24)video_format(mp4|avi, defaultmp4)
Ответ: JSON-строка с burst_dir, frames_captured, target_fps, actual_fps, capture_region, video_path (если включено) и временем захвата.
analyze_burst_sequence
Анализирует папку burst как последовательность кадров и возвращает структурный отчёт о динамике.
Обязательные параметры:
workspace_path— путь к workspace.burst_dir— путь к папке burst (абсолютный или относительный к workspace).
Опциональные параметры:
sample_every(int, default1) — анализировать каждый N-й кадрmax_frames(int, default3000) — лимит кадровscene_cut_threshold(number1..255, default35) — порог «резкой смены сцены»
Ответ содержит:
avg_motion_score,min_motion_score,max_motion_scorescene_cut_counttop_motion_peakstimeline(переходы между кадрами с оценкой движения)- краткий
summary
capture_audio_burst
Записывает короткий WAV-фрагмент с микрофона по явной команде.
Обязательный параметр:
workspace_path— путь к workspace.
Опциональные параметры:
duration_sec(int, default10)sample_rate(int, default16000)channels(int, default1)device_number(int, default0)output_subdir(relative path, default.cascade-ide\\audio-captures)file_name(имя файла без расширения)
Ответ содержит путь к WAV и параметры записи.
analyze_audio_sequence
Анализирует WAV-файл и возвращает таймлайн по окнам громкости.
Обязательные параметры:
workspace_pathaudio_path(абсолютный или относительный к workspace)
Опциональные параметры:
frame_ms(int, default50)silence_threshold_db(number, default-45)
Ответ содержит:
duration_sec,peak_dbfs,avg_rms,activity_ratio,silence_ratiozero_crossings_per_sectimelineи краткийsummary
transcribe_audio_whisper
Локальная транскрипция аудио через Whisper.net (на базе whisper.cpp runtime).
Поддерживаемые форматы: WAV (напрямую); WebM, MP4, M4A и др. — через конвертацию в WAV с помощью FFmpeg (должен быть в PATH). Без FFmpeg для не-WAV файлов вернётся ошибка с подсказкой.
Обязательные параметры:
workspace_pathaudio_path
Опциональные параметры:
model_path— путь к локальной модели Whisper (ggml/gguf)language—auto(по умолчанию),ru,en, ...max_segments— лимит сегментов в ответе
Если model_path не передан, используется переменная окружения:
WHISPER_MODEL_PATH
Ответ содержит:
transcript(полный текст)segments(таймкоды + текст)
capture_av_burst
Снимает короткую синхронную A/V-сессию:
- кадры с камеры в
frames/ - аудио в
audio.wav - метаданные тайминга в
metadata.json - опционально
video.mp4
Обязательный параметр:
workspace_path
Опциональные параметры:
duration_sec(int, default10)target_fps(int, default24)camera_index(int, default0)audio_device_number(int, default0)width/height(int)audio_sample_rate(int, default16000)audio_channels(int, default1)warmup_frames(int, default5)image_format(jpg|png)jpeg_quality(int1..100)output_subdir(default.cascade-ide\\av-captures)session_name(опционально)save_video(bool, defaulttrue)video_fps(int, default24)
capture_screen_av_burst
Одновременная запись короткой A/V-сессии: кадры с экрана + WAV с микрофона + метаданные синхронизации.
Обязательный параметр:
workspace_path— путь к workspace.
Опциональные параметры:
duration_sec(int, default10)target_fps(int, default24)audio_device_number(int, default0)monitor(int 1-based слева направо илиall; если указан иx/y/width/heightне переданы, регион берётся по выбранному монитору;all= весь виртуальный экран)x/y(int, default: начало виртуального экрана)width/height(int, default: размер виртуального экрана)audio_sample_rate(int, default16000)audio_channels(int, default1)image_format(jpg|png, defaultjpg)jpeg_quality(int1..100, default92)output_subdir(relative path, default.cascade-ide\\av-captures)session_name(имя сессии, опционально)save_video(bool, defaulttrue)video_fps(int, default24)
Ответ: JSON-строка с session_dir, frames_dir, audio_path, video_path, metadata_path, frame_count, actual_fps, capture_region.
analyze_av_sequence
Комплексный отчёт по A/V-сессии: объединяет видео- и аудио-анализ.
Обязательные параметры:
workspace_pathsession_dir
Опциональные параметры:
sample_every,max_frames,scene_cut_threshold(для видео)audio_frame_ms,silence_threshold_db(для аудио)
Ответ содержит:
av_profile(интегральный тип сцены)summaryvideo_analysisaudio_analysis
Приватность и безопасность
- Съёмка выполняется только при явном вызове tool.
- Файлы сохраняются только внутри
workspace_path(попытки выхода наружу блокируются).
