MCP server for Amazon Blink cameras: see, aim (pan/tilt) and capture, over the undocumented accessory protocol
blink-camera-mcp
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
An MCP server for **Amazon Blink cameras**, including the
**pan/tilt mount** that Blink's own API gives you no way to move.
Install it with uvx blink-camera-mcp. It is listed in the official MCP Registry as
io.github.AbhijatSaxena/blink-camera-mcp.
Give any MCP host — Claude Desktop, an IDE agent, your own client — the ability to see where
a camera is pointing, aim it, and look through it.
Why this exists
Blink cameras are cloud devices. There is no local API, no ONVIF, no UVC — video exists only
as a short-lived session brokered by Blink's cloud, capped at 300 seconds. Two consequences:
1. Anything that wants to use the camera has to hold that session open and refresh it.
2. The pan/tilt mount is not a device you can talk to. It has no endpoint of its own: it is
driven *inside* the camera's media session, and its position comes back on the same socket.
A client that reads only the video and skips every other message never sees any of that
traffic, which is why the mount has looked uncontrollable for years.
This server owns the session (or reuses one), frames it correctly, routes the accessory
messages, and exposes the whole thing as MCP tools with closed-loop semantics.
Install
The distribution is blink-camera-mcp; the command it installs is blink-mcp.
You need Python 3.10+, a Blink account, and ffmpeg on PATH for snapshot
(set BLINK_FFMPEG if it lives somewhere unusual).
Configure
Credentials come from the environment, and only the first run needs them:
The token is cached (token material only — a password is never written to disk), so later
runs need no credentials. Cache location defaults to ~/.blink-mcp/state.json; override with
BLINK_STATE_FILE.
**If Blink asks for a 2FA code**, the server will not prompt you and will not take the code
from anywhere but a file:
Write the newest code into that file; it is read once and deleted. This keeps a live
credential out of chat logs, shell history and argument lists.
Add it to your MCP host
Hosts that manage their own Python (Claude Desktop, VS Code, LM Studio, …) run uvx as above.
If you installed it into a virtualenv instead, set command to that interpreter and args to
["-m", "blink_mcp", …].
Claude Desktop — one-click
Download blink-camera-mcp-0.1.1.mcpb from the
releases page and open it.
Claude Desktop prompts for your Blink email and password (kept in the OS keychain), and asks for
the 2FA code file only if your account uses verification. The bundle carries no server code of its
own — it depends on this package from PyPI, so it can never drift from the released version.
LM Studio, VS Code, Cursor, Cline and friends
They all read the same JSON as above. Paste it into the host's MCP config — LM Studio: mcp.json;
VS Code: .vscode/mcp.json; Cursor: .cursor/mcp.json. Cline installs it from this README.
Hermes
Hermes' curated catalog is for remote, OAuth-authenticated servers, and this one has to run on a
machine that can reach your camera — so add it as an ordinary stdio server in
~/.hermes/config.yaml:
Restart the session (or /reload-mcp) and the eight tools show up like any other.
Two ways to run it
**Standalone (default)** — the server owns the camera's live session and publishes the video