Spree Commerce: open-source B2B and marketplace ecommerce
Open-source B2B and marketplace ecommerce; new stores include an MCP server for AI agents.
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
Control an Amazon Blink camera and its pan/tilt mount: aim it, read its position, grab a frame.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
BLINK_USERNAME, BLINK_PASSWORD, BLINK_2FA_FILE, BLINK_CAMERA_NAME, BLINK_STATE_FILE, BLINK_FFMPEGค่าที่ติดป้ายความลับคือกุญแจของบัญชีคุณ อย่าส่งให้ใคร และอย่าวางในแชต
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"blink-camera": {
"command": "uvx",
"args": [
"blink-camera-mcp"
],
"env": {
"BLINK_USERNAME": "ใส่ค่าของคุณ",
"BLINK_PASSWORD": "ใส่ค่าของคุณ",
"BLINK_2FA_FILE": "ใส่ค่าของคุณ",
"BLINK_CAMERA_NAME": "ใส่ค่าของคุณ",
"BLINK_STATE_FILE": "ใส่ค่าของคุณ",
"BLINK_FFMPEG": "ใส่ค่าของคุณ"
}
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add blink-camera --env BLINK_USERNAME='ใส่ค่าของคุณ' --env BLINK_PASSWORD='ใส่ค่าของคุณ' --env BLINK_2FA_FILE='ใส่ค่าของคุณ' --env BLINK_CAMERA_NAME='ใส่ค่าของคุณ' --env BLINK_STATE_FILE='ใส่ค่าของคุณ' --env BLINK_FFMPEG='ใส่ค่าของคุณ' -- uvx blink-camera-mcpเติมค่าที่เว้นว่างไว้ก่อนรัน
วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"blink-camera": {
"command": "uvx",
"args": [
"blink-camera-mcp"
],
"env": {
"BLINK_USERNAME": "ใส่ค่าของคุณ",
"BLINK_PASSWORD": "ใส่ค่าของคุณ",
"BLINK_2FA_FILE": "ใส่ค่าของคุณ",
"BLINK_CAMERA_NAME": "ใส่ค่าของคุณ",
"BLINK_STATE_FILE": "ใส่ค่าของคุณ",
"BLINK_FFMPEG": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"blink-camera": {
"type": "stdio",
"command": "uvx",
"args": [
"blink-camera-mcp"
],
"env": {
"BLINK_USERNAME": "ใส่ค่าของคุณ",
"BLINK_PASSWORD": "ใส่ค่าของคุณ",
"BLINK_2FA_FILE": "ใส่ค่าของคุณ",
"BLINK_CAMERA_NAME": "ใส่ค่าของคุณ",
"BLINK_STATE_FILE": "ใส่ค่าของคุณ",
"BLINK_FFMPEG": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
BLINK_CAMERA_NAME envBLINK_STATE_FILE envBLINK_FFMPEG envค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 10 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub AbhijatSaxena ซึ่งเป็นเจ้าของ repo
มีการแก้โค้ดล่าสุด เดือนที่แล้ว
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 2 จาก 2 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
ต้องใส่ค่าเหล่านี้: BLINK_USERNAME, BLINK_PASSWORD, BLINK_2FA_FILE
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด เดือนที่แล้ว และส่งรุ่นล่าสุด (0.1.1) เข้า registry เดือนที่แล้ว
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Python (uv) ในเครื่องด้วย
ในหมวดเดียวกันมี Spree Commerce: open-source B2B and marketplace ecommerce, Stripe MCP, Sessy — Amazon SES observability
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:↓ ดาวน์โหลดต่อสัปดาห์i★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
Open-source B2B and marketplace ecommerce; new stores include an MCP server for AI agents.
server ทางการของ Stripe ให้ AI ดูและจัดการลูกค้า สินค้า การชำระเงิน และใบแจ้งหนี้ ต่อผ่านคลาวด์ของ Stripe และล็อกอินแบบ OAuth
Read-only Amazon SES observability: search events, inspect bounces, pull delivery stats.
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
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.
camera_status where it points, travel limits, session state, stream URL
pan_tilt aim at an absolute angle, wait until the hardware confirms pan_tilt_nudge turn relative to where it points now pan_tilt_stop stop the motors pan_tilt_home go to the saved home position pan_tilt_set_home save the current angle as home pan_tilt_overview 360° sweep snapshot one still frame, returned as image content
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:
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.
pip install blink-camera-mcp # or without installing: uvx blink-camera-mcp
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).
Credentials come from the environment, and only the first run needs them:
export BLINK_USERNAME="you@example.com"
export BLINK_PASSWORD="..." export BLINK_CAMERA_NAME="Front Door" # optional; defaults to the only camera
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:
export BLINK_2FA_FILE=/path/to/code.txt
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.
blink-mcp --print-config
{
"mcpServers": { "blink": { "command": "uvx", "args": ["blink-camera-mcp", "--stream-port", "9000"] } } }
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", …].
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.
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' 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:
mcp_servers:
blink: command: "uvx" args: ["blink-camera-mcp"] env: BLINK_USERNAME: "you@example.com" BLINK_PASSWORD: "…"
Restart the session (or /reload-mcp) and the eight tools show up like any other.
Standalone (default) — the server owns the camera's live session and publishes the video to a local TCP port (tcp://127.0.0.1: , or a fixed one with --stream-port 9000). Point OBS at it as a Media Source if you want the camera as a webcam as well.
Against a bridge — if something else already holds the session:
blink-mcp --control-url http://127.0.0.1:9100 --stream-url tcp://127.0.0.1:9000
This matters because Blink allows one live session per camera: a viewer and a controller have to share it or take turns. Running two things that each insist on their own session means one of them loses.
The mount reports its angle *while it is moving*. So pan_tilt does not sleep and hope: it sends the command and returns only when the hardware reports that its motors stopped at the requested angle — typically well under a second.
pan_tilt_nudge(+4) -> settled=True moved=True elapsed=0.67s -> pan=117 tilt=-75
pan_tilt_nudge(-4) -> settled=True moved=True -> pan=113 tilt=-75
Two deliberate behaviours, because a confident wrong answer is worse than a failure:
moved: false — success, not failure.snapshot decodes a frame of whatever the camera is pointed at. The tool description says so, and tells the agent to use it only when the user asks. Nothing here captures anything on its own.The accessory channel is undocumented. It was recovered from the official Android app — dex bytecode and the native library's symbol table — and then verified against hardware:
frame [flag:1][id:4 big-endian][length:4 big-endian][payload]
send flag 0x14 INLINE_COMMAND, id = commandId move=3 [0,0,0,0, , ,0] stop=4 home=5 set_home=6 overview=7 receive flag 0x15 ACCESSORY_MESSAGE, id = message id POSITION=2 / HOME_POSITION=3 [ , , , ] ROSIE_LIMITS=4 PAN_OVERVIEW_COMPLETE=5 lights/siren = 0/1/6/7
status is 0x00 idle and 0x10 moving. Angles are single signed bytes.
The same protocol knowledge is being contributed upstream to blinkpy so every Blink integration benefits, not just this server. blink_mcp/immi.py is byte-identical to the module submitted there, and switches to the upstream copy automatically once it ships.
Standing on the shoulders of blinkpy, which implements the Blink cloud API and the IMMI transport.
snapshot needs ffmpeg; it decodes one frame from the stream rather than opening a second session.pytest # 68 offline tests: protocol bytes, closed-loop logic, tool layer,
The suite is offline and needs no camera. For real hardware:
python tests/live_smoke.py --state-file ~/.blink-mcp/state.json
which logs in, moves the camera out and back, and captures a frame.
MIT