Atlas / MCP servers / ed-dryha / ed-dryha-reolink

ed-dryha-reolinkSAFE

mcp/ed-dryha/reolink-mcp

An open-source MCP (Model Context Protocol) server for Reolink cameras: lets Claude — or any MCP client — see and control Reolink cameras on the local network.

Verdict
SAFE
Grade
B
Trust score
89 /100
Exposed tools
—
Transport
stdio
License
MIT
Stars
2
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

An open-source MCP (Model Context Protocol) server for Reolink cameras: lets Claude — or any MCP client — see and control Reolink cameras on the local network. Snapshots, device state, AI detection states, PTZ presets, and deterrence controls (spotlight, siren, IR/white LED). Local network only, no cloud.

Market gap (verified 2026-07-08): no dedicated Reolink MCP server exists on GitHub, npm, or PyPI. Closest prior art requires a middleman: dedsxc/mcp-frigate (needs Frigate NVR), homeassistant-mcp (needs Home Assistant). This is a first-mover standalone niche.

A user with a Reolink camera adds reolink-mcp to their MCP client config, asks "show me the front door camera," and gets a live snapshot — direct to camera, no NVR or home-automation daemon in between.

Quickstart

Requires a Reolink camera reachable on the local network and its admin username/password.

1. Create your camera config

Copy config.example.yaml to ~/.config/reolink-mcp/config.yaml (or point RMCP_CONFIG_FILE at a copy anywhere else on disk):

cameras:
front_door:
host: 192.168.1.44
username: admin

Passwords never go in this file. Set one RMCP_CAMERAS____PASSWORD environment variable per camera instead — `` must exactly match the camera's key in the YAML above (lowercase snake_case):

RMCP_CAMERAS__front_door__PASSWORD=
Concurrent-session limit: Reolink cameras allow only a limited number of simultaneous sessions. reolink-mcp holds one reolink-aio session per configured camera for as long as the server runs — running it alongside another system that also holds sessions on the same cameras (an NVR, another MCP server, etc.) can exhaust that limit. See Camera compatibility & session limits below.

2. Add it to your MCP client

Claude Code:

clau
Read from source at commit 3c89829296bcOBSERVED · 2026-10-14
02

Connect

Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control.

claude-code (pypi)
claude mcp add reolink-mcp -- None reolink-mcp==1.0.0
03

Trust audit

SAFEgrade B · trust 89/100 Nothing in the source contradicts what it says it does. Grade A is reserved for packages that have also passed the behavioural sandbox.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codePASS
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfacePASS
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
none-observed
Network
none-observed
Shell
none-observed
Dependencies
pinned
Secrets in source
none-found

Findings (4)

LOWObfuscation / stealth · obf.decode_call · CWE-506, CWE-94
scripts/qa_phase1.py:184
data = base64.b64decode(image.data)
LOWObfuscation / stealth · obf.decode_call · CWE-506, CWE-94
tests/tools/test_observe.py:322
decoded = base64.b64decode(image_block.data)
LOWPrompt injection · prompt.transfer_instruction · CWE-94, CWE-1427
.planning/phases/03-safe-controls-safety-rails/03-03-SUMMARY.md:155
**Also merged during this phase** (wave 1 post-merge fix, commit `d6756ae`, belongs to 03-01 context but noted here for completeness): `tests/conftest.py`'s collection-time stub was extended to pre-im
Why it matters. an instruction to move sensitive data to an outside destination
Fix. remove; a skill never needs the user's secrets off the machine
LOWInventory / provenance · mcp.no_tools_extracted · CWE-1104
server.json
Why it matters. the tool list is enumerated at runtime by tools/list, not declared in source
Fix. the page says so rather than showing an empty table

Gates applied: no_behavioural_pass.

Audited 2026-10-14 · audit v0.4.1 · source sha 3c89829296bcfull audit observations/trust-audit/mcp-server/ed-dryha__reolink-mcp.json · Report an issue / request a re-scan
04

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-143c89829296bcSAFEB89first audit
05

Questions

What is the ed-dryha-reolink MCP server?

An open-source MCP (Model Context Protocol) server for Reolink cameras: lets Claude — or any MCP client — see and control Reolink cameras on the local network.

Is ed-dryha-reolink safe to connect to an agent?

The audit found nothing in the source that contradicts what it says it does, and graded it B (89/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean server reads B.

What credentials does ed-dryha-reolink need?

No credential environment variables were found in its source, so it appears to need none.

How does ed-dryha-reolink run?

It speaks stdio, so it runs as a local process your client starts. It is published on PyPI as reolink-mcp.

How current is this page?

The grade is for one exact copy of the source (3c89829296bc), read on 2026-10-14. The repository is watched and re-audited when it changes.

Advertisement