关于 Frigate Auth
Frigate Auth 是面向需要查看 Frigate NVR 摄像头、事件和审核记录的 AI 助手的只读 MCP 服务。它以 Frigate 的 viewer 角色登录,由 Frigate 管理可见范围,不提供配置修改或破坏性操作。
主要功能
- 01以 viewer 角色验证身份
- 02查询摄像头状态和事件
- 03获取事件快照与实时画面
- 04列出审核记录并汇总
- 05可限制图像摄像头和尺寸
适用场景
- 01查看指定摄像头的近期活动
- 02通过描述或快照检查事件
- 03避免室内摄像头画面发送给模型
MCP 相关
向 MCP 客户端提供只读的 Frigate 状态、事件、图像和审核工具。它使用 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
使用 uvx --from git+https://github.com/adel-s/frigate-auth-mcp frigate-auth-mcp 可运行 GitHub 上的最新代码。
设置
- 在 Frigate 中为助手创建一个用户(Settings -> Users),并分配
viewer角色。如果该角色允许限制摄像头访问,请仅授予助手应查看的摄像头权限。 - 将服务添加到 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,让客户端知道该服务只会读取数据。 - 不会公开原始 Frigate 配置:其中包含带凭据的摄像头流 URL。
- 可选图像筛选器
FRIGATE_IMAGE_CAMERAS:只有这些摄像头会返回图像(快照、帧)。这是 Frigate 用户角色的摄像头限制之外的第二层保护;默认情况下允许所有摄像头。如果 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 天的数据,这样询问“这周发生了什么”才能得到完整答案。 list_events的has_description会根据 GenAI 描述筛选,这是 Frigate API 本身无法做到的。- 图像默认尺寸为 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 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。