AI アシスタントを接続する
Agent DVR は Claude、ChatGPT、Cursor、VS Code Copilot などの AI アシスタント から直接使用できます。自然言語で質問してください。「昨夜どのようなアラート がありましたか?」、「今朝の玄関カメラで何が起こったか見せてください」、「ガレージのカメラ を無効にしてください」など。アシスタント は、画像を含めて、ライブカメラ、録画ファイル およびアラート ログから回答を得られます。
これは、外部工具類 に接続するために アシスタント が使用するオープン標準である Model Context Protocol (MCP) を通じて機能します。Agent DVR は 2 つの場所で MCP サーバー を提供し、あなたのニーズに合わせてサーバー に接続できます。
- Agent DVR に組み込まれている(ローカルエンドポイント): ローカルネットワーク上の独自のサーバー によって提供されます。アカウント またはサブスクリプションは不要です。同じコンピューター または LAN で実行されているアシスタント 向けです。
- iSpyConnect.com 経由(クラウドエンドポイント): ウェブポータルとモバイルアプリが使用するのと同じリモートアクセス を介して、どこからでもサーバー に接続できます。ポート 転送は不要です。iSpyConnect サブスクリプションが必要です。これは claude.ai、ChatGPT、携帯電話用です。
両方 とも同じ工具類 のセットを提供します。Agent DVR 8.0.3 以降が必要です。
ローカルエンドポイント
すべての Agent DVR サーバーはローカル Web サーバーの /mcp で MCP を提供します。したがって、Agent DVR UI を http://localhost:8090 で開いた場合、エンドポイントは http://localhost:8090/mcp です (LAN 上の別のコンピューターからサーバーのアドレスとポートを使用してください。例: http://192.168.1.10:8090/mcp)。既定では有効になっており、サーバー設定 - ローカルサーバーの AI アシスタント (MCP) エンドポイントで無効にできます。
アクセスは ローカル API の他の部分とまったく同じルールに従います。自分のネットワークからアクセスする場合、API を保護が有効になっていない限りログインは不要です。有効になっている場合、アシスタントは管理者ユーザーのユーザー名とパスワードを送信する必要があります (ほとんどの MCP クライアントでは認証ヘッダーを追加できます)。ネットワーク外からの接続には、さらに ライセンスが必要です。これは UI へのポート転送アクセスと同じです。
Claude Code
claude mcp add --transport http agentdvr http://localhost:8090/mcp
Gemini CLI
gemini mcp add -s user --transport http agentdvr http://localhost:8090/mcp
その後、Gemini CLI 内で /mcp と入力して工具類が読み込まれたことを確認します。-s user の部分はサーバーをユーザー設定に保存するため、どのフォルダからでも利用可能になります。
Cursor
.cursor/mcp.json に追加してください (または設定 - MCP 経由):。
{ "mcpServers": { "agentdvr": { "url": "http://localhost:8090/mcp" } } }
VS Code (Copilot)
.vscode/mcp.json に追加してください:
{ "servers": { "agentdvr": { "type": "http", "url": "http://localhost:8090/mcp" } } }
Claude Desktop
Claude デスクトップアプリはあなたのコンピューター上のサーバーに直接呼び出すことができないため、代わりにそれを行う小さな拡張機能を使用します。AgentDVR.mcpb をダウンロードしてから、Claude Desktop で 設定 - 拡張機能 を開き、ファイルをページにドラッグします。これは有効化済み の状態でインストールされ、http://localhost:8090/mcp に接続します。サーバーが別のコンピューター上にあるか、API を保護 が有効化済み の場合のみ、構成 をクリックしてください。Claude は各ツールが初めて使用されるときに許可を求めます。プロンプトを止めるには [常に許可] を選択してください。
その他のアシスタント
HTTP 経由で MCP ("ストリーム可能 HTTP") をサポートするクライアントは、同じ URL を使用できます。アシスタントの設定で "MCP サーバー"、"コネクター"、または "工具類" を探してください。
Claude ウェブアプリ、モバイルアプリ、および ChatGPT は、あなたのネットワーク上のサーバーにまったくアクセスできません。これらは クラウド エンドポイント を使用します。
クラウドエンドポイント
iSpyConnect サブスクリプションがあれば、お客様のサーバーは以下の場所からもアクセス可能です:
https://www.ispyconnect.com/mcp
そのURLをアシスタントのカスタムコネクタまたはMCPサーバーとして追加してください(例えばclaude.aiおよびClaudeアプリの設定 - コネクタ、またはCursorの同等の機能)。アシスタントがiSpyConnect サインインページを開きます。サインインして、表示だけでなく制御を許可するかどうかを選択し、「許可」をクリックしてください。それ以上の設定は必要ありません。リモートアクセスが有効化済みでアカウントに接続されているすべてのAgent DVRサーバーが利用可能であり、複数ある場合はアシスタントがどれを意図しているのかを尋ねます。
ChatGPT(PlusまたはPro)の場合、手順は以下の通りです。設定 - セキュリティとログイン - 「開発者モード」をオンにします。その後、設定 - プラグイン - 「プラグインを参照」 - 「追加」を実行します。名前をAgent DVRと付け、上記のURLを入力し、「OAuth」を選択してクライアントIDとシークレットは空のままにしておき、サインインして「許可」をクリックしてください。プラグインページに「利用可能なアプリアクションがまだありません」と表示される場合は、そのページの「更新」をクリックしてください。
Gemini CLI や Claude Code などのコマンドラインアシスタントからのサインインは2段階です。サーバーを追加してから承認すると、ブラウザーが同じページで開きます。
gemini mcp add -s user --transport http agentdvr-cloud https://www.ispyconnect.com/mcp
gemini
/mcp auth agentdvr-cloud
リクエストはウェブポータルが使用するのと同じリレーを経由するため、ポート転送は不要であり、お客様のサーバーがインターネットに公開されることはありません。サブスクリプションが失効するとアクセスが停止され、各アシスタントのアクセスはいつでもそのアシスタント自体のコネクタ設定から削除できます。
お客様のサーバーは実行中で、iSpyConnect に接続されている必要があります(ローカルUIの南京錠アイコンがリモート接続の状態を示します)。サーバー設定 の 外部アクセスのブロック はこのエンドポイントもブロックします。
アシスタントができること
アシスタントは生の API ではなく、目的に特化した小さな工具類のセットを使用するため、回答は迅速で低コストです:
- 表示: サーバーとデバイスをリスト表示 (場所と状態付き)、アクティビティサマリーを取得 (カメラ単位、時間単位での録画ファイルとアラート、検出内容付き)、時間ウィンドウ内の録画ファイルをリスト表示、ウィンドウ全体をフレームグリッドで一目で確認、カメラを1日分のタイムラインで表示、1つの録画ファイルからフレームを抽出、カメラのライブスナップショットを撮影、アラートログを読む、ウェブUIで録画ファイルを開くためのリンクを取得できます。
- 制御: サーバーをアーム/ディスアームする、プロファイルを適用する、デバイスを有効/無効にする、録画モードを変更する、アラート、検出器、物体検出、顔認証、ナンバープレート認識をオン/オフにする、カメラが検索するオブジェクトをリストに追加する、デバイスをグループに配置する、PTZカメラをプリセットに移動する、およびAPIからのその他の状態変更。
- ルール: 平文でルールを設定します - 「赤い車が次の6時間に現れたら教えて」、「火曜日の14時から16時の間にDaveが玄関にいたらアラートして」など。アシスタントは検出器イベント(オブジェクト、顔、プレート、音、モーション)を選択し、色や車種など検出器が判断できない詳細情報についてのみビジョンAIに質問を追加して回答で照合を確認します。ルールはカメラ上の通常のアクションとして保存され、あなたが使用した文で「アシスタント作成」とマークされ、自動的に期限切れになります。いつでもそこで削除できます。アシスタントのルールとルール例を参照してください。Agent DVR 8.0.7以降が必要です。
- その他すべて: 専用の工具類が当てはまらない場合にアシスタントが呼び出すことができるさらなる読み取りコマンドと制御コマンドのカタログ (システム統計、デバイスの完全なステータス、PTZ プリセットなど)。
アシスタントは録画ファイルや写真を削除したり、デバイスやサーバーの設定を変更したり、デバイスを追加・削除したり、サーバーを再起動することはできません。これらのコマンドは、どのエンドポイントを使用しても意図的に提供されていません。ルールはアシスタントが作成できる唯一のものであり、すべてが「サーバー設定」の「アシスタントのルール」に一覧表示されます。クラウドエンドポイントでは、表示、制御、ルールは別々の権限で、サインインページで付与し、リレーを保護するために使用量はレート制限されています。ビジョンAIに質問をするルールは、トリガーが発火するたびにAI呼び出し1回分かかります(1時間ごとに上限あり)。アシスタントはそれを設定するときにそう伝えます。
プロンプト例
- "過去24時間で誰かが玄関を訪れましたか?見せてください。"
- "今朝、どんな鳥が給餌器を訪れましたか?"
- "今日の道路はどのくらい混雑していて、どの時間帯でしたか?"
- "裏庭を1日分のタイムラインで見せてください。いつ雨が降り始めましたか?"
- "昨日はどんなアラートがありました?人物を検出したものはありましたか?"
- "今、玄関に誰がいますか?"
- "どのカメラがオフラインですか?"
- "外出します - すべてを外出中プロファイルで有効化します。"
- "ホームの場所のすべてのカメラを無効にしてください。"
- "配達員のクリップへのリンクを送ってください。"
- 「次の6時間で誰かが玄関に来たら教えてください。」
- 「赤い車が今日の庭先に現れたらアラートしてください。」
- 「火曜日の2時から4時の間にDaveが玄関にいたら、最初の1回だけ知らせてください。」
- 「裏門のカメラが今週オフラインになったらメールしてください。」
- 「今朝、誰かが駐車場に入ってきたら、事務所は奥にあると知らせてください。」
- 「今夜、誰かが側門にいたら、犬の鳴き声を再生して庭のカメラも記録してください。」
- 「日曜日の午後6時までにゴミ箱が路肩に出ていなかったら、[email protected]にメールしてください。」
- 「平日の午前9時から午後5時に、配送バンが店の外に停止したら知らせてください。」
- 「今日、誰かが荷物を持って玄関にいたら知らせてください。」
- 「毎日正午に庭の写真を撮ってください。」
- "玄関、庭、門のカメラをOutsideというグループに配置する。"
- 「毎晩午後11時から午前6時までの間に、外側のカメラのいずれかに人物が映った場合は知らせてください。」
- 「毎晩午後10時にシステムを有効にし、無効にされたときに知らせてください。」
- 「どのカメラが犬を見つけることができますか?誰を認識していますか?玄関のカメラは話せますか?」
- 「何を設定してくれましたか、そして今のところ各々は正常に機能していますか?」
- 「庭先のものを1つメール通知に変更してください。」
- 「何個のルールを設定してくれましたか?庭先のものを一時停止して、残りを削除してください。」
既成ワークフロー
サーバーはまた、プロンプトサポート対応のアシスタント (Claude Desktop、Claude Code、Gemini CLI、Cursor など) がスラッシュコマンドまたはメニューに表示する プロンプトテンプレート を提供します。それぞれが完全な複数ステップのワークフローを実行して結果をレポートします:
- morning_briefing - 昨晩以降、カメラが捉えた内容: アクティビティ、アラート、注目すべき人物、車両と動物、およびカメラの状態。
- door_report - ドアカメラを訪れた人物、訪問時刻、各訪問者の動作、各クリップへのリンク。
- wildlife_report - カメラが捉えた動物と鳥、映像から判別できる限りの精度で識別。
- camera_health - すべてのサーバーとカメラをチェック (オフライン、無効化されています、エラー、沈黙しているカメラ)。
- day_in_review - カメラを1日分のフレームタイムラインで表示、シーンがどのように変化したかの説明付き。
- set_up_a_rule - 文からルールを設定します。カメラができることを確認し、ルールが何をするかを表示してから、はいと言ったときに作成します。
アシスタントのルール
ルールの権限があれば、アシスタントは文からルールを作成できます: 「次の6時間で誰かが玄関に来たら教えて」。Agent DVRはそれを通常のカメラのアクションに変換するため、手動で作成したルールと同じようにサーバーで実行されます。ルールが存在した後は、アシスタントは関与しません。
- 配置される場所:カメラのアクションリストで、アシスタントのルールとマークされ、終了日付と、限られた回数だけ発火するルールの場合は発火回数が表示されます。マークの上にマウスを置くと、そのルール元の文が表示されます。他のアクション同様にそこで編集または削除するか、アシスタントにルールのリスト表示、一時停止、削除をリクエストできます。サーバー上のすべてのルールは1つの場所サーバー設定 - アシスタントのルールにも表示され、ルール元の文、対象範囲、アクティブ、待機中、一時停止中、完了のいずれの状態か、および削除ボタンが表示されます。カメラグループまたはシステム自体のルールはそこにのみ表示されます。サーバー設定の変更権限がないユーザーはリストを表示できますが、削除はできません。
- 監視できるもの:カメラが既に検出できるもの - 動き、物体(人、車、犬など)、顔認識、ナンバープレート、音声、またはカメラがオフラインになったこと。また質問することもできます:「どのカメラが犬を検出できますか?」、「誰を認識していますか?」、「ドアカメラは通話できますか?」
- 発生時に実行できること:プッシュ通知、メール、またはSMSで通知;カメラを通じてメッセージを音声で伝える(「誰かが駐車場に入ったら、オフィスはその奥だと伝える」)またはそれを通じて音声を再生(犬の吠える音);別のカメラで記録;PTZカメラをプリセット位置に移動;URLを呼び出す(ウェブフック、スマートプラグ);記録にタグを付与;プロフィールを適用。音声メッセージの送信と音声の再生には通話機能がセットアップされたカメラが必要で、音声とSMSには接続されたアカウント、メールにはカメラのメッセージング有効化が必要です - アシスタントがこれらをチェックして、どのカメラが条件を満たしているかを伝えます。
- 複数のカメラ、またはシステム自体: グループ、場所、または「すべてのカメラ」に名前を付けると、それに従う 1 つのルールが作成されます - 「夜間に Outside カメラのいずれかに人がいたら知らせてください」は来月 Outside グループに追加するカメラもカバーします。要求した内容を検出できないグループ内のカメラは単純にソースにはなりませんが、アシスタントが何台が対応可能かを知らせます。グループがまだ存在しない場合、コントロール権限を持つアシスタントが作成できます: 「玄関、庭、門のカメラを Outside という名前のグループに入れてください」(Agent DVR 8.0.7 以降が必要です)。グループはデバイスの「一般設定」タブで設定するものと同じであり、制限されたユーザーアカウントが見ることができるデバイスも決定するため、グループに入れたカメラは、そのグループを含まないアカウントを持つ制限されたユーザーから非表示になります。ルールはカメラではなくサーバーに属することもできます: 「毎晩午後 10 時にシステムを武装する」、「平日の日没に Night プロファイルを適用する」、「システムが解除済みになった時に知らせてください」。システムルールは独自のタイムテーブルで実行されるため、カメラのスケジュールスイッチはこれらに影響しません。また、画像を見たり、カメラを通じて話したりすることはできません。
- タイミング:今後数時間の間、指定された日時まで、毎週のタイムウィンドウ(「火曜日の午後2時から4時」など)、特定の1日、または一定の間隔(「庭の写真を1時間ごとに撮影」、「門が閉まっているか15分ごとに確認」 - 必要に応じてタイムウィンドウ内)。時間は太陽の動きに従うことができます:「日没後」、「日没から日の出まで」、「日の出の30分前」はカメラの場所の座標から毎日計算されます(緯度と経度が設定されていない場所は午前6時と午後6時になります)。「...のときに知らせて」は一度だけ通知して、ルールは一時停止になります;毎回通知してほしい場合は「毎回」または「その都度」と指定してください。毎回とは、誰かが立ち止まるたびではなく、毎訪問を意味します:ルールは再度通知する前に1分間待機します(話す、音を再生、または記録するルールの場合は30秒)。より長い間隔を指定することもできます(「1時間に1回まで」)。繰り返すタイムウィンドウの場合(「平日の午前9時から午後5時、バンが外に停まったら知らせて」)、1回はウィンドウが開く毎日1回を意味します。「セットアップした内容と動作しているかどうかを教えて」と聞くと、各ルールとそれがアクティブ、ウィンドウ待機中、一時停止中、または完了中であるかが表示されます。「そのルールをメールで送ってもらう」はルールを変更します。時間制限のあるルールは、その時間が経過すると自動削除されます。
- 検出器が見ることができない詳細: 色、メーク、衣服などについては(「赤い自動車」など)、ルールは検出器が発動するたびに画像についてあなたの AI プロバイダー(サーバー設定 - AI 設定)に yes または no の質問をし、答えが yes の場合のみ動作します。検出器がまったく知らないもの(「庭のカンガルー」など)の場合も同じ方法が機能し、トリガーとしてモーションを使用します。また、設定時刻を見ることもできます: 「日曜日午前 8 時にゴミが出ていなければ、Max にテキストしてください」は毎週日曜日午前 8 時にカメラをチェックし、答えが no の場合のみメッセージを送信します。AI が判断できない場合(暗い、ビューがブロックされている)は何も送信されないため、カメラが見えるときを選択してください。これはトリガーあたり 1 つの AI 呼び出しで、デフォルトではルールあたり 1 時間あたり 30 に制限されており、アシスタントがルールがこの方法で動作する場合を知らせます。AI プロバイダーが設定されていない場合、アシスタントはそう言い、追加する方法を説明します(Google Gemini には無料層があります) - それは API キーであるため、アシスタントはそのステップを実行できず、その質問なしでルールを提案します: 赤い車ではなくすべての車で、後であなたと一緒に確認できます。正確な車のモデルや、カメラが白黒の夜間撮影に切り替わった時の夜間の色など、細部は信頼性がありません。
- ルールが拒否される理由:Agent DVRは機能しないルールは作成せず、1度にすべての問題を述べます。指定した名前で登録された顔がない場合、通話したいカメラに通話チャネルがない場合、そのカメラでオブジェクト検出がオフの場合、要求したものがその「検索する」リストにない場合、またはカメラのスケジュールがオフになっているカメラに時間帯を要求した場合、アシスタントには正確に何を変更する必要があるかが伝えられます。制御権限があれば、アシスタントは変更を加えて再試行できます:検出器またはスケジュールをオンにするか、カメラの「検索する」リストにオブジェクトを追加します(「犬」を人と車しか検出しないカメラに追加)。カメラのAIモデルが認識するオブジェクトのみを追加できます。その他の場合は、より広いオブジェクトを使用し、詳細をAIプロバイダーに確認させます。音声は例外です:それらをマイク設定リストに自分で追加してください。
- まだサポートされていません:カウント(「今日2番目」)、発生していないもの(「午後6時までに配達がない」)、およびカメラ間のシーケンス。
Agent DVR 8.0.7以降が必要です。クラウドエンドポイントでは、ルールはサインインページの個別権限であるため、以前に接続されていたアシスタントは再度アクセス承認を求めます。
ルールの例
カメラに求める一般的なことは、接続されたアシスタントに言うべき文、Agent DVRが設定すること、そしてそれに必要なものです。これらはすべてアシスタントのルールです。サーバーで実行され、アシスタントが接続されていなくても継続します。Agent DVR 8.0.7以降とルール権限が必要です。
- 特定の色の車が到着したときにアラートを受け取る。「今後6時間、赤い車が私道に現れたら教えてください」と言ってください。カメラのオブジェクト検出はすべての車に反応し、AIプロバイダーに車が赤いかどうかを確認され、答えが「はい」になった最初の時点で1つのプッシュ通知を受け取ります。ルールは6時間後に削除されます。カメラの「検索」リストに「car」を含めてオブジェクト検出をオンにしておく必要があります(アシスタントは管理権限でどちらも実行できます)。また、サーバー設定のAI設定でAIプロバイダーが必要です。
- 特定の人物が到着したときに知る。「火曜日の2時から4時にDaveがドアにいたら最初の1回だけ知らせてください」と言ってください。顔認証が名前に反応し、1回だけ通知されます。カメラで顔認証をオンにし、その名前で登録された顔が必要です。その名前の顔が登録されていない場合、ルールは拒否され、登録されている名前が表示されます。
- 設定された時刻までに何かが完了したかどうかを確認する。「日曜日の午後6時までゴミが路肩に出ていなければ、テキストで知らせてください」と言ってください。毎週日曜日の午後6時にカメラの画像がAIプロバイダーに送信され、「はい」または「いいえ」の質問が尋ねられます。答えが「いいえ」の場合だけメッセージを受け取ります。AIが判別できない場合(暗すぎる、見えない)は何も送信されないため、カメラが見える時刻を選んでください。AIプロバイダーとSMS用の接続されたアカウントが必要です。
- 営業時間中に配達を監視する。「平日の9時から5時まで、配達バンが店の外に停まったら知らせてください」と言ってください。ウィンドウは1日1回開き、全体で1回ではありません。各配達ごとに知りたい場合は「毎回」と言ってください。カメラのスケジュールをオンにする必要があります。
- 検出器が認識しないものを見つける。「庭に今日カンガルーがいたら教えてください」または「玄関で誰かが荷物を持っていたら教えてください」と言ってください。モーション検知または人物がルールをトリガーし、AIプロバイダーが画像についての質問に答えます。トリガーあたり1回のAI呼び出し、各ルールあたり1時間に30回までに制限されます。
- 現れた人と話をする。「今朝誰かが駐車場に歩いてきたら、事務所は裏側だと伝えてください」と言ってください。音声合成によるメッセージがカメラのスピーカーから話されます。通話が設定されたカメラと接続されたアカウントが必要です。
- 夜間の訪問者を追い払う。「今夜誰かが側門にいたら、犬が吠える音を再生して庭カメラも録画を開始してください」と言ってください。カメラ経由で音声ファイルを再生し、最長30秒ごとに1回別のカメラの録画を開始します。通話が設定されたカメラが必要です。
- すべての屋外カメラを一晩中カバーする。「私道、庭、門のカメラをOutsideという名前のグループに入れてください」と言ってから、「日没から日の出までOutsideカメラのどれかに人物がいたら知らせてください」と言ってください。1つのルールがグループに続き、後で追加したカメラも含まれます。日没は場所の座標から毎日計算されます。各カメラから最多1分間に1つの通知です。
- カメラが機能しなくなったことについて知る。「後ろの門カメラが今週オフラインになったらメールで知らせてください」と言ってください。カメラでメッセージングを有効にする必要があります。
- スケジュールで装備と解除を行い、変更を知る。「毎晩午後10時にシステムを装備してください。そして解除されたときに知らせてください」と言ってください。これらはサーバー自体のルールであるため、どのカメラのスケジュールにも影響されません。
- 毎日の写真を録画する。「毎日正午に庭の写真を撮ってください」と言ってください。
設定されている内容を確認または変更するには、「設定したルールは何か、それぞれが機能しているか」「私道をメール通知に変えてください」「バンルールを一時停止してください」と聞くか、サーバー設定 - アシスタントのルールを開いてください。リクエストが機能しない場合、アシスタントが理由と変更内容を説明します。制限についてはアシスタントのルールを参照してください。
トラブルシューティング
- アシスタントはローカルエンドポイントに接続できません: ブラウザで URL を確認してください - http://localhost:8090/mcp が応答する必要があります (エラーメッセージは問題ありませんが、「接続が拒否されました」はそうではありません)。ポートが「サーバー設定」の「ローカルサーバー」と一致していることを確認し、そこでエンドポイントが有効になっていることを確認してください。
- 401 認可されていません: API を保護 が有効になっているため、アシスタントは管理者ユーザーの認証情報を送信する必要があります。または、ネットワーク外から接続しています。
- 403 アクセス禁止: ライセンスなしでネットワーク外から接続しています。代わりに クラウドエンドポイント を使用してください。
- 404 見つかりませんでした: エンドポイントが「サーバー設定」で無効になっているか、サーバーが 8.0.3 より古いバージョンです。
- クラウドエンドポイントでサーバーがオフラインと表示されます: サーバーが iSpyConnect に接続されていません。ローカル UI の南京錠アイコンを確認し、「外部アクセスのブロック」がオフになっていることを確認してください。
- アシスタントが何をしているかを確認する: 「サーバー設定」で「ロギング」を「デバッグ」に設定し、「サーバーメニュー」からログを開きます。ローカルエンドポイントでは、すべてのリクエストと工具類の呼び出しが「MCP」プレフィックス付きでログに記録され、「引数」と実行時間が含まれます。クラウドエンドポイントを通じて工具類は iSpyConnect.com で実行され、サーバーは「RelayApi」プレフィックス付きでログに記録される個別の「コマンド」のみを参照します。