Webcam MCP について
Webcam MCPは、LLMエージェントにウェブカメラへのアクセスを提供するMCPサーバーです。写真撮影や短い動画の記録に加え、チャット内パネルで操作でき、環境監視や実システムのデバッグに使えます。
主な機能
- 01高解像度写真の撮影
- 02指定時間の動画フレーム記録
- 03チャット内ウェブカメラ操作パネル
- 04解像度、カメラ番号、画質の設定
- 05Linux、macOS、Windowsに対応
活用シーン
- 01エージェントに撮影と画像説明をさせる場面
- 02動きを記録して変化を分析する場面
- 03環境監視や実システムのデバッグ
MCP 対応
MCPサーバーとして、クライアントに`take_photo`と`record_video`ツールを提供し、SSE転送に対応します。SSEに認証はなく、既定ではループバックで待ち受けます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
フォークに関するお知らせ。 これは
botbridge-webcam-mcpであり、 1019666077-bit がメンテナンスする pavel-kirienko/webcam_mcp(MIT)のフォークです。MCP Apps パネル(webcam_panel)が追加されています。このディストリビューションはbotbridge-webcam-mcpとしてインストールしてください。PyPI 上の上流ディストリビューション名はwebcam-mcpです。Python のインポートパッケージ名はwebcam_mcpです。
Webcam MCP は、LLM エージェントがウェブカメラに直接アクセスできるようにする Model Context Protocol(MCP)サーバーです。エージェントは自律的に写真を撮影したり、動画を録画したりできるため、人の介入なしにサイバーフィジカルシステムのデバッグ、環境の監視、物理世界とのやり取りが可能になります。

機能:
- 📸 高解像度の写真:静止画像を撮影します
- 🎛️ MCP Apps パネル(
webcam_panel):チャット内で無料のボタン(撮影/もう一度撮影/閉じる)を利用できます。Pro はプレースホルダーのみです - 🎥 動画録画:指定した時間にわたってフレームを録画します
- 🌐 SSE トランスポート:デフォルトではループバックです。LAN への公開は明示的な指定が必要で、認証はありません
- ⚙️ 設定可能:解像度、カメラインデックス、画質設定を調整できます
- 🔌 クロスプラットフォーム:Linux、macOS、Windows で動作します
- 🚀 簡単に統合:シンプルな MCP クライアント設定
使い方
インストール:
pip install botbridge-webcam-mcp
MCP サーバーを起動します:
webcam-mcp
サーバーはデフォルトで http://127.0.0.1:8000/sse(ループバックのみ)で起動します。
MCP Inspector(npx @modelcontextprotocol/inspector でインストール)など、任意の MCP クライアントを使ってサーバーをテストできます。
CLI オプション
| オプション | 型 | デフォルト | 説明 |
|---|---|---|---|
--host | string | 127.0.0.1 | サーバーのホストアドレス |
--port | integer | 8000 | サーバーのポート |
--camera-index | integer | 0 | ウェブカメラのデバイスインデックス |
--photo-width | integer | 1920 | 写真のデフォルトの幅(ピクセル) |
--photo-height | integer | 1080 | 写真のデフォルトの高さ(ピクセル) |
--video-width | integer | 640 | 動画フレームのデフォルトの幅(ピクセル) |
--video-height | integer | 480 | 動画フレームのデフォルトの高さ(ピクセル) |
--version | - | - | バージョンを表示して終了 |
使用例
# Start on custom port
webcam-mcp --port 9000
# Use different camera (e.g., external USB webcam)
webcam-mcp --camera-index 1
# Custom photo resolution
webcam-mcp --photo-width 1280 --photo-height 720
# Opt-in LAN exposure (unauthenticated! see Security below)
WEBCAM_MCP_ALLOW_LAN=1 webcam-mcp --host 0.0.0.0
セキュリティ
SSE トランスポートには認証がありません。SSE エンドポイントにアクセスできる人は誰でも、ウェブカメラで写真や動画を撮影できます。
- stdio(デスクトップ MCP クライアントでは自動的に使用されます)またはループバック
(デフォルトは
127.0.0.1)を推奨します。 --hostをループバック以外のアドレス(例:0.0.0.0や LAN IP)にバインドすると、起動時に目立つ警告が表示され、WEBCAM_MCP_ALLOW_LAN=1を設定しない限り拒否されます。- リスクを理解し、手前に独自の認証を設けている場合にのみ、サーバーを LAN またはパブリックインターフェースに公開してください。
MCP クライアントの設定
Claude Desktop
claude_desktop_config.json に追加します:
{
"mcpServers": {
"webcam": {
"url": "http://localhost:8000/sse"
}
}
}
設定ファイルの場所:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
その他の MCP クライアント
SSE トランスポートに対応する任意の MCP クライアントから、次のアドレスに接続できます:
http://<host>:<port>/sse
MCP ツール
take_photo
ウェブカメラで高解像度の写真を1枚撮影します。
パラメーター: なし
戻り値: JPEG 画像
Claude での使用例:
Can you take a photo and describe what you see?
record_video
指定した時間にわたって動画フレームを記録します。
パラメーター:
duration_seconds(float、任意):記録時間(秒)- 最小値:1.0 秒
- 最大値:60.0 秒
- デフォルト:5.0 秒
戻り値: JPEG フレームのリスト
Claude での使用例:
Record a 10-second video and analyze any movement you detect.
トラブルシューティング
カメラへのアクセスが拒否される(macOS)
macOS では、カメラへのアクセスを許可する必要があります。
- システム設定 → プライバシーとセキュリティ → カメラを開きます
- ターミナル(または使用しているターミナルアプリ)のカメラへのアクセスを有効にします
- ターミナルを再起動して、もう一度お試しください
カメラがすでに使用中
「Camera unavailable」エラーが表示される場合:
- ウェブカメラを使用している他のアプリケーション(Zoom、Skype など)を閉じます
webcam-mcpの別のインスタンスが実行中か確認します- 別のカメラインデックスを試します:
webcam-mcp --camera-index 1
カメラインデックスが正しくない
使用可能なカメラを確認するには:
import cv2
for i in range(10):
cap = cv2.VideoCapture(i)
if cap.isOpened():
print(f"Camera {i}: Available")
cap.release()
else:
print(f"Camera {i}: Not available")
その後、正しい番号を指定して --camera-index を使用します。
解像度がサポートされていない
カメラが要求された解像度をサポートしていない場合、サーバーは次のように動作します。
- 実際に適用された解像度を警告としてログに記録します
- カメラがサポートする最大解像度で動作を続けます
次のようなメッセージがログに記録されているか確認してください。
WARNING: Requested resolution 1920x1080, but camera provided 1280x720
開発
# Install in editable mode with dev dependencies
pip install -e ".[dev]"
# Run all tests
pytest
# Run with verbose output
pytest -v
# Run specific test file
pytest tests/test_camera.py
すべてのテストではカメラハードウェアをモックするため、テストに物理的なウェブカメラは必要ありません。
リリース
新しいバージョンにタグを付けてリリースするには、新しい __version__ 文字列を設定して main に新しいコミットをプッシュします。
これにより、新しいタグが作成され、PyPI への新しいリリースがプッシュされます。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。