mcpField
F
Frigate Auth

Frigate Auth

ローカル
github.com/adel-sセキュリティ01 週間前に更新

Frigate Auth について

Frigate Authは、Frigate NVRのカメラ、イベント、レビューを確認するAIアシスタント向けの読み取り専用MCPサーバーです。viewer権限で認証し、アクセス範囲はFrigate側で管理され、設定変更や破壊的操作は行いません。

主な機能

  1. 01viewerロールでの認証
  2. 02カメラ状態とイベントの照会
  3. 03イベントスナップショットと最新フレーム
  4. 04レビュー一覧と集計
  5. 05画像対象カメラとサイズの制限

活用シーン

  1. 01選択したカメラの最近の状況確認
  2. 02説明やスナップショットによるイベント確認
  3. 03屋内カメラ画像のモデル送信を回避

MCP 対応

MCPクライアントにFrigateの状態、イベント、画像、レビューを扱う読み取り専用ツールを提供します。認証ポートとviewerアカウントを使い、ログイン以外のリクエストはGETのみです。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"adel-s-frigate-auth": {
"command": "uvx",
"args": [
"frigate-auth-mcp"
],
"env": {
"FRIGATE_URL": "<FRIGATE_URL>",
"FRIGATE_USER": "<FRIGATE_USER>",
"FRIGATE_PASSWD": "<FRIGATE_PASSWD>",
"FRIGATE_IMAGE_CAMERAS": "<FRIGATE_IMAGE_CAMERAS>",
"FRIGATE_IMAGE_MAX_HEIGHT": "<FRIGATE_IMAGE_MAX_HEIGHT>",
"FRIGATE_IMAGE_MAX_QUALITY": "<FRIGATE_IMAGE_MAX_QUALITY>",
"FRIGATE_TIMEOUT": "<FRIGATE_TIMEOUT>"
}
}
}
}
起動コマンドuvx frigate-auth-mcp
設定が必要な環境変数
FRIGATE_URLBase URL of the authenticated Frigate port
FRIGATE_USERFrigate username with the viewer role
FRIGATE_PASSWDシークレットPassword of the Frigate user
FRIGATE_IMAGE_CAMERASCameras allowed to return images, comma-separated; default all
FRIGATE_IMAGE_MAX_HEIGHTUpper limit for the height of returned images, in pixels; default no limit
FRIGATE_IMAGE_MAX_QUALITYUpper limit for the JPEG quality of returned images (1-100); default no limit
FRIGATE_TIMEOUTSeconds per request

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

パッケージ
pypifrigate-auth-mcp0.3.0

ツール

7

掲載時のツール一覧 · 1 週間前に更新

このツールにパラメーターはありません。

詳細

tests publish

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を使用します。

セットアップ

  1. Frigateで、ロールがviewerのアシスタント用ユーザーを作成します(Settings -> Users)。ロールで閲覧可能なカメラを制限できる場合は、アシスタントに表示するカメラだけを許可します。
  2. 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_reviewsFrigate UIと同じレビュー項目。既定では過去7日間/api/review
review_summary過去24時間および日ごとのアラート数と検知数/api/review/summary

環境変数

変数意味
FRIGATE_IMAGE_CAMERAS画像の返却を許可するカメラ。カンマ区切り。既定ではすべて
FRIGATE_IMAGE_MAX_HEIGHT画像のheightの上限(ピクセル単位)。既定では上限なし
FRIGATE_IMAGE_MAX_QUALITYJPEGのqualityの上限(1~100)。既定では上限なし
FRIGATE_PASSWDFrigateユーザーのパスワード。必須(シークレット)
FRIGATE_TIMEOUTリクエストごとの秒数。既定値は30
FRIGATE_URL認証が必要なポートのベースURL。既定値はhttp://localhost:8971
FRIGATE_USERFrigateのユーザー名。必須

安全性

  • 認証済みポート(デフォルトでは 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 を参照してください。

コメント

MCP は初めてですか?

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

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