Frigate Auth について
Frigate Authは、Frigate NVRのカメラ、イベント、レビューを確認するAIアシスタント向けの読み取り専用MCPサーバーです。viewer権限で認証し、アクセス範囲はFrigate側で管理され、設定変更や破壊的操作は行いません。
主な機能
- 01viewerロールでの認証
- 02カメラ状態とイベントの照会
- 03イベントスナップショットと最新フレーム
- 04レビュー一覧と集計
- 05画像対象カメラとサイズの制限
活用シーン
- 01選択したカメラの最近の状況確認
- 02説明やスナップショットによるイベント確認
- 03屋内カメラ画像のモデル送信を回避
MCP 対応
MCPクライアントにFrigateの状態、イベント、画像、レビューを扱う読み取り専用ツールを提供します。認証ポートとviewerアカウントを使い、ログイン以外のリクエストはGETのみです。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
uvx frigate-auth-mcpFRIGATE_URLBase URL of the authenticated Frigate portFRIGATE_USERFrigate username with the viewer roleFRIGATE_PASSWDシークレットPassword of the Frigate userFRIGATE_IMAGE_CAMERASCameras allowed to return images, comma-separated; default allFRIGATE_IMAGE_MAX_HEIGHTUpper limit for the height of returned images, in pixels; default no limitFRIGATE_IMAGE_MAX_QUALITYUpper limit for the JPEG quality of returned images (1-100); default no limitFRIGATE_TIMEOUTSeconds per requestローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
7掲載時のツール一覧 · 1 週間前に更新
このツールにパラメーターはありません。
詳細
frigate-auth-mcp
概要
Frigate NVR用の認証機能付きMCPサーバーです。AI アシスタント(Claude Code、Claude Desktop、Hermes、その他のMCPクライアント)がカメラ、イベント、レビューを確認できます。 それ以外の操作はできません。
viewerロールのユーザーとして、認証が必要なFrigateのポートにログインするため、アシスタントが閲覧できる内容はFrigate自体によって制限されます。Frigate 0.17.xでテスト済みです。
インストール
Python 3.11以降とuvが必要です。手動でインストールするものはありません。MCPクライアントがPyPIからサーバーを起動します。
uvx frigate-auth-mcp
GitHubの最新コードを実行するには、uvx --from git+https://github.com/adel-s/frigate-auth-mcp frigate-auth-mcpを使用します。
セットアップ
- Frigateで、ロールが
viewerのアシスタント用ユーザーを作成します(Settings -> Users)。ロールで閲覧可能なカメラを制限できる場合は、アシスタントに表示するカメラだけを許可します。 - MCPクライアントにサーバーを追加します。Claude Codeの場合は、
.mcp.jsonに次のように記述します。
{
"mcpServers": {
"frigate": {
"command": "uvx",
"args": ["frigate-auth-mcp"],
"env": {
"FRIGATE_URL": "https://frigate.example.com:8971",
"FRIGATE_USER": "assistant",
"FRIGATE_PASSWD": "${FRIGATE_PASSWD}"
}
}
}
}
パスワードをファイルに記載しないでください。クライアントの実行環境に設定してください。
ツール
| ツール | 返される内容 | Frigate API |
|---|---|---|
frigate_status | バージョン、稼働時間、このユーザーが閲覧できるカメラ、カメラごとのfps | /api/stats、/api/profile、/api/version |
list_events | 追跡対象オブジェクトのイベント。カメラ、ラベル、時刻、GenAIの説明で絞り込み可能 | /api/events |
get_event | イベントの詳細とGenAIの説明 | /api/events/<id> |
event_snapshot | イベントのスナップショットとバウンディングボックス。必要に応じて切り抜き可能。既定では480 px、品質70 | /api/events/<id>/snapshot.jpg |
latest_frame | カメラの現在のフレーム。既定では480 px、品質70 | /api/<camera>/latest.jpg |
list_reviews | Frigate UIと同じレビュー項目。既定では過去7日間 | /api/review |
review_summary | 過去24時間および日ごとのアラート数と検知数 | /api/review/summary |
環境変数
| 変数 | 意味 |
|---|---|
FRIGATE_IMAGE_CAMERAS | 画像の返却を許可するカメラ。カンマ区切り。既定ではすべて |
FRIGATE_IMAGE_MAX_HEIGHT | 画像のheightの上限(ピクセル単位)。既定では上限なし |
FRIGATE_IMAGE_MAX_QUALITY | JPEGのqualityの上限(1~100)。既定では上限なし |
FRIGATE_PASSWD | Frigateユーザーのパスワード。必須(シークレット) |
FRIGATE_TIMEOUT | リクエストごとの秒数。既定値は30 |
FRIGATE_URL | 認証が必要なポートのベースURL。既定値はhttp://localhost:8971 |
FRIGATE_USER | Frigateのユーザー名。必須 |
安全性
- 認証済みポート(デフォルトでは
8971)にのみ接続し、認証されていない内部ポート5000には接続しません。このポートは、アクセスできる人なら誰でも API に完全にアクセスできます。 viewerロールの Frigate ユーザーとしてログインします。唯一の非 GET 呼び出しはPOST /api/loginです。- 設定の削除、エクスポート、編集、再起動を行うツールはありません。
- すべてのツールに MCP アノテーション
readOnlyHint: trueとdestructiveHint: falseが付与されているため、クライアントはサーバーが読み取りのみを行うことを確認できます。 - 認証情報を含むカメラのストリーム URL が記載されているため、Frigate の生の設定は公開されません。
- 画像の任意のフィルター
FRIGATE_IMAGE_CAMERAS:画像(スナップショット、フレーム)を返すカメラを指定します。これは Frigate ユーザーのロールによるカメラ制限に続く、2 つ目の保護層です。デフォルトではすべてのカメラが許可されています。MCP クライアントが画像をサードパーティのモデルに送信し、屋内カメラなどの一部のフレームを自宅の外に出したくない場合に使用してください。
スキル
skills/frigate-cameras/SKILL.md では、どの質問にどのツールを使うか、画像より先にテキストを確認すること、小さな画像、空の結果やエラーの意味など、ツールの使い方をアシスタントに説明しています。
これは通常の Agent Skill です。frigate-cameras フォルダーをクライアントのスキルフォルダーにコピーしてください(Claude Code の場合は .claude/skills/、Hermes の場合は ~/.hermes/skills/<category>/)。
理由
私が見つけた Frigate MCP サーバーは、認証なしでポート 5000 に接続し、イベントの削除、エクスポートの開始、設定の保存、Frigate の再起動を行うツールを公開しています。これを AI モデルに任せるのは、カメラシステムに許すには過剰な信頼です。このサーバーがアシスタントに与えるのは目であり、手ではありません。
注意事項
afterを指定しない場合、Frigate の/api/reviewは直近 24 時間分のみを返します。list_reviewsは代わりに過去 7 日間分を要求するため、「今週何があったか」という質問に漏れなく回答できます。has_descriptionを指定したlist_eventsは、Frigate API 自体ではできない GenAI の説明文によるフィルタリングを行います。- モデルのコンテキストを小さく保つため、画像のデフォルトは 480 px、JPEG 品質は 70 です。細部が小さくて見えない場合は、
heightとqualityを上げてください。モデルは必要以上の値を求めがちです。FRIGATE_IMAGE_MAX_HEIGHTとFRIGATE_IMAGE_MAX_QUALITYで上限を設定でき、大きすぎる要求は上限まで引き下げられます。 - エラーは短いプレーンテキストのメッセージ(オブジェクトが見つからない、ログインが拒否された、アクセスが拒否された、Frigate に接続できない)で返され、内部の Frigate ホスト名は含まれません。
テスト
uv run python -m unittest discover -s tests
テストには unittest と httpx.MockTransport 上の Frigate API のフェイクを使用するため、Frigate を実行する必要はありません。また、ログインを除くすべてのツールが GET 以外のリクエストを送信しないことも確認します。
GitHub Actions は、master ブランチと dev/* ブランチへの各プッシュ時に、Python 3.11 から 3.14 でテストを実行します。
開発
問題が発生した場合や新機能が必要な場合は、気軽に issue を作成してください。できるだけ早く修正します!
ライセンス
MIT。詳細は LICENSE を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。