Access Frigate NVR cameras with session-based authentication. Get live snapshots, retrieve motion events, and fetch stream URLs. Includes CLI helper script for doorbell, driveway, front, east, mailbox, and garage cameras.
Scanned 9/7/2026
Install to Claude Code
npx -y skills add modbender/skill-library-mcp --skill frigate --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Frigate?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/modbender-frigate)More formats (shields.io, HTML) on the badges page.
---
name: frigate
description: Access Frigate NVR cameras with session-based authentication. Get live snapshots, retrieve motion events, and fetch stream URLs. Includes CLI helper script for doorbell, driveway, front, east, mailbox, and garage cameras.
---
# Frigate NVR Integration
Access Frigate NVR server at `FRIGATE_URL` with credentials from `FRIGATE_USER` and `FRIGATE_PASS` environment variables.
## Authentication
Frigate uses session-based authentication (not HTTP Basic Auth):
```python
import requests
session = requests.Session()
response = session.post(
f"{FRIGATE_URL}/api/login",
json={"user": FRIGATE_USER, "password": FRIGATE_PASS},
verify=False # For self-signed certificates
)
# session.cookies contains frigate_token for subsequent requests
```
## Common Operations
### Get Camera List
```python
response = session.get(f"{FRIGATE_URL}/api/config", verify=False)
config = response.json()
cameras = list(config.get('cameras', {}).keys())
# Returns: ['driveway', 'front', 'east', 'mailbox', 'garage', 'doorbell']
```
### Get Snapshot from Camera
```python
snapshot = session.get(
f"{FRIGATE_URL}/api/{camera_name}/latest.jpg",
verify=False
)
# Save: with open(f"/tmp/{camera_name}.jpg", "wb") as f: f.write(snapshot.content)
```
### Get Motion Events
```python
events = session.get(
f"{FRIGATE_URL}/api/events?cameras={camera_name}&has_clip=1",
verify=False
).json()
# Returns list of motion detection events with timestamps
```
### Get Camera Stream URL
```python
config = session.get(f"{FRIGATE_URL}/api/config", verify=False).json()
stream_config = config.get('go2rtc', {}).get('streams', {}).get(camera_name)
# Returns RTSP/WebRTC stream URLs
```
## Environment Variables
Required:
- `FRIGATE_URL` - Frigate server URL (e.g., `https://server.local:8971/`)
- `FRIGATE_USER` - Username for authentication
- `FRIGATE_PASS` - Password for authentication
Optional:
- None required beyond the above
## Example: Send Doorbell Snapshot to Telegram
```python
import requests
session = requests.Session()
session.post(f"{FRIGATE_URL}/api/login",
json={"user": FRIGATE_USER, "password": FRIGATE_PASS}, verify=False)
# Get doorbell snapshot
snapshot = session.get(f"{FRIGATE_URL}/api/doorbell/latest.jpg", verify=False)
# Send to Telegram
from clawdbot import message
message(action="send", channel="telegram", target="3215551212",
message="Doorbell snapshot", path="/tmp/doorbell_snapshot.jpg")
```
## Notes
- Always use `verify=False` for self-signed certificates on home networks
- Session tokens expire after 24 hours (configurable via `session_length`)
- The `/api/cameras` endpoint doesn't exist; use `/api/config` for camera info
- Frigate version 0.16+ uses this authentication model
## Bundled Resources
- **Scripts**: See [scripts/frigate.py](scripts/frigate.py) for CLI utility with commands: `list`, `snapshot`, `events`, `stream`
- **API Reference**: See [references/api.md](references/api.md) for complete API documentation
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!