mcpField
C
cameramcpserver

cameramcpserver

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

cameramcpserver について

Windows と Linux のローカルカメラを操作する Node.js/TypeScript 製 MCP サーバーです。カメラの検出、写真撮影、録画、ストリーミングに対応し、複数の通信方式と並行セッションを扱います。

主な機能

  1. 01接続カメラの列挙
  2. 02写真の撮影と保存
  3. 03動画の録画または配信
  4. 04stdio、HTTP、SSE に対応
  5. 05録画セッションの並行実行
  6. 06Windows dshow と Linux v4l2 に対応

活用シーン

  1. 01MCP クライアントからローカルカメラを一覧表示
  2. 02MCP ツール経由で写真を撮影
  3. 03カメラ映像の録画または配信
  4. 04複数カメラの録画セッションを並行実行

MCP 対応

MCP クライアントに listCameras、takePhoto、startVideo、stopVideo ツールを提供します。stdio、HTTP、SSE の通信方式に対応します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"CameraMCPServer": {
"command": "npx",
"args": [
"-y",
"mcp-camera-service"
]
}
}
}
起動コマンドnpx -y mcp-camera-service

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmmcp-camera-service

ツール

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

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

詳細

MCP カメラサービス

機能概要

本プロジェクトは、Node.js/TypeScript ベースのマルチプロトコル対応カメラ制御サービスです。Model Context Protocol (MCP) TypeScript SDK に厳密に準拠しており、次の機能をサポートします。

  • カメラの列挙、写真撮影、録画(ファイル/ストリーミング)など
  • MCP ツールインターフェース(listCameras、takePhoto、startVideo、stopVideo)
  • 複数のトランスポートモード:stdio、HTTP、SSE
  • Windows(dshow)と Linux(v4l2)をサポート
  • 複数インスタンスでの並行録画、ストリーミングをサポート
  • 豊富な環境変数設定と、カスタマイズ可能なログ
  • 録画ストリーミングでは streamUrl をサポートし、クライアントは httpx/curl/ffmpeg/ffplay でストリームを受信できます

環境依存関係

  • Node.js 16+
  • ffmpeg(インストール済みで PATH に設定されているか、ffmpeg-static から提供されている必要があります)
  • Windows 10+/Linux を推奨します。カメラデバイスが必要です

インストールと起動

npm install
# 配置 .env 文件(见下文)
npm run build
npm start # 或 npm run start:http

.env の設定方法

ローカルで実行する際は、.env.sample を .env にコピーし、必要なパラメーターを設定してください。

# HTTP 服务端口
PORT=3001
# MCP 服务名/版本
MCP_SERVER_NAME=mcp-camera-server
MCP_SERVER_VERSION=1.0.0
# 日志等级与文件
LOG_LEVEL=info
LOG_FILEPATH=./camera.log
# 拍照/录像文件前缀与目录
PHOTO_PREFIX=image
VIDEO_PREFIX=video
PHOTO_DIR=photos
VIDEO_DIR=videos
# 录像上下文自动清理时间(秒)
FINISHED_VIDEO_CLEAN_SPAN_SECOND=1800
# 推流URL超时时间(毫秒)
STREAM_URL_EXPIRE_MS=300000

主な MCP ツールインターフェース

1. listCameras - カメラの列挙

機能説明:利用可能なすべてのカメラデバイスを一覧表示します

入力パラメーター:なし

出力パラメーター:

  • cameras:カメラの一覧
    • cameraID:カメラ番号
    • name:デバイス名
    • description:デバイスの説明
2. takePhoto - 写真撮影

機能説明:指定したカメラで写真を撮影し、保存します

入力パラメーター:

  • cameraID:カメラ番号
  • filepath:写真の保存先ディレクトリパス

出力パラメーター:

  • success:操作が成功したかどうか
  • imagePath:写真の保存先パス(成功時に返されます)
  • error:エラー情報(失敗時に返されます)
3. startVideo - 録画/ストリーミングの開始

機能説明:動画の録画またはリアルタイムストリーミングを開始します

入力パラメーター:

  • cameraID:カメラ番号
  • filepath:録画ファイルの保存先パス(省略可能。指定しない場合はストリーミングモードが開始されます)
  • duration:録画時間(ミリ秒、省略可能)

出力パラメーター(ファイルモード):

  • success:操作が成功したかどうか
  • videoPath:動画ファイルのパス
  • videoID:録画セッション ID

出力パラメーター(ストリーミングモード):

  • success:操作が成功したかどうか
  • videoID:録画セッション ID
  • streamUrl:ストリームへのアクセス先
4. stopVideo - 録画/ストリーミングの停止

機能説明:実行中の録画またはストリーミングを停止します

入力パラメーター:

  • videoID:録画セッション ID(startVideo から返されます)

出力パラメーター:

  • success:操作が成功したかどうか
  • message:操作結果のメッセージ
  • videoPath:動画ファイルのパス(ファイルモードの場合に存在します)
  • error:エラー情報(失敗時に返されます)

MCP ツールインターフェースのテスト方法

  • このリポジトリをダウンロードし、リポジトリのルートディレクトリに移動します:cd myCameraNodejs

  • npm link . を使って、グローバルコマンドとしてリンクします

  • npx modelcontextprotocol/inspector で modelcontextprotocol/inspector を起動し、テストしてください: img

    画面上で:

    • Transport Type:STDIO を選択
    • Command:npx を選択
    • Arguments:mcp-camera-server を入力

Connect ボタンをクリックすると、カメラサービスに接続できます。 npx run start:sse でサービスを起動する場合は、URL に http://127.0.0.1:3001/sse を入力します(3001 は .env の PORT で指定します)。

ビデオストリームのテスト方法

1. curl で ts ファイルに保存
curl http://localhost:3001/video/stream?videoID=xxxx-xxxx-xxxx -o output.ts
2. ffplay で直接再生
ffplay http://localhost:3001/video/stream?videoID=xxxx-xxxx-xxxx
3. ffmpeg で mp4 ファイルに保存
mp4 に直接トランスコード(推奨)
ffmpeg -i "http://localhost:3001/video/stream?videoID=xxxx-xxxx-xxxx" -c:v libx264 -preset veryfast -crf 23 -f mp4 output.mp4
ts ファイルにそのまま保存(トランスコード不要、最速)
ffmpeg -i "http://localhost:3001/video/stream?videoID=xxxx-xxxx-xxxx" -c copy output.ts

よくある質問とトラブルシューティング

  • ffplay/ffmpeg で Invalid data found when processing input と表示される
    • サーバー側のストリーム形式が mpegts であることを確認してください(修正済みです)
  • streamUrl を一度しか利用できない/タイムアウト後に無効になる
    • 仕様です。新しい streamUrl を取得するには、startVideo を再度呼び出してください
  • カメラが見つからない/写真を撮影できない
    • まず listCameras で cameraID を取得し、ffmpeg がカメラを認識できることを確認してください
  • 録画ファイルを再生できない
    • ffmpeg/ffplay でのトランスコードまたは再生をおすすめします
  • ストリームのタイムアウト時間/録画コンテキストのクリーンアップ時間
    • .env で STREAM_URL_EXPIRE_MS、FINISHED_VIDEO_CLEAN_SPAN_SECOND を設定できます

その他の説明

  • 複数インスタンスでの並行録画/ストリーミングをサポート
  • 詳細なログにより、問題の調査が容易です
  • Windows/Linux をサポートし、dshow/v4l2 に自動で対応します
  • MCP の stdio/http/sse モードをサポート

ご質問やご要望がありましたら、issue を作成するか、[email protected] または [email protected] までお問い合わせください。

MCPHub の認定を受けています。https://mcphub.com/mcp-servers/jackgao19700/cameramcpserver から入手できます。

コメント

MCP は初めてですか?

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

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