mcpField
W
Webcam MCP

Webcam MCP

ローカル
github.comメディア・デザイン02 週間前に更新

Webcam MCP について

Webcam MCPは、LLMエージェントにウェブカメラへのアクセスを提供するMCPサーバーです。写真撮影や短い動画の記録に加え、チャット内パネルで操作でき、環境監視や実システムのデバッグに使えます。

主な機能

  1. 01高解像度写真の撮影
  2. 02指定時間の動画フレーム記録
  3. 03チャット内ウェブカメラ操作パネル
  4. 04解像度、カメラ番号、画質の設定
  5. 05Linux、macOS、Windowsに対応

活用シーン

  1. 01エージェントに撮影と画像説明をさせる場面
  2. 02動きを記録して変化を分析する場面
  3. 03環境監視や実システムのデバッグ

MCP 対応

MCPサーバーとして、クライアントに`take_photo`と`record_video`ツールを提供し、SSE転送に対応します。SSEに認証はなく、既定ではループバックで待ち受けます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ
パッケージ
mcpbbotbridge-webcam.mcpb0.2.1

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Webcam MCP 📸

LLM エージェントにウェブカメラへのアクセスを提供する MCP サーバー — 写真や動画を撮影

PyPI CI License: MIT

フォークに関するお知らせ。 これは 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)サーバーです。エージェントは自律的に写真を撮影したり、動画を録画したりできるため、人の介入なしにサイバーフィジカルシステムのデバッグ、環境の監視、物理世界とのやり取りが可能になります。

Webcam 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 オプション
オプション型デフォルト説明
--hoststring127.0.0.1サーバーのホストアドレス
--portinteger8000サーバーのポート
--camera-indexinteger0ウェブカメラのデバイスインデックス
--photo-widthinteger1920写真のデフォルトの幅(ピクセル)
--photo-heightinteger1080写真のデフォルトの高さ(ピクセル)
--video-widthinteger640動画フレームのデフォルトの幅(ピクセル)
--video-heightinteger480動画フレームのデフォルトの高さ(ピクセル)
--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 では、カメラへのアクセスを許可する必要があります。

  1. システム設定 → プライバシーとセキュリティ → カメラを開きます
  2. ターミナル(または使用しているターミナルアプリ)のカメラへのアクセスを有効にします
  3. ターミナルを再起動して、もう一度お試しください
カメラがすでに使用中

「Camera unavailable」エラーが表示される場合:

  1. ウェブカメラを使用している他のアプリケーション(Zoom、Skype など)を閉じます
  2. webcam-mcp の別のインスタンスが実行中か確認します
  3. 別のカメラインデックスを試します: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 への新しいリリースがプッシュされます。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。