mcpField
R
reolink-mcp

reolink-mcp

ローカル
github.com/ed-dryhaセキュリティ316 週間前に更新

reolink-mcp について

reolink-mcpは、ローカルネットワーク上のReolinkカメラを監視・操作するオープンソースのMCPサーバーです。スナップショットや状態の取得に加え、照明、サイレン、ズーム、PTZを制御できます。

主な機能

  1. 01カメラ一覧とデバイス詳細の確認
  2. 02スナップショットとAI検知状態の取得
  3. 03サイレン、スポットライト、赤外線ライト、LEDの制御
  4. 04ズーム調整とPTZプリセットの管理
  5. 05読み取り専用モードでの起動

活用シーン

  1. 01MCPクライアントからカメラのライブスナップショットを表示
  2. 02カメラ状態と最近の検知状況を確認
  3. 03照明の調整やPTZプリセットへの移動

MCP 対応

MCPクライアントにReolinkカメラの監視・操作ツールを提供します。接続はローカルネットワーク内に限られ、起動時に操作ツールを除いて読み取り専用にできます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"ed-dryha-reolink": {
"command": "uvx",
"args": [
"reolink-mcp"
],
"env": {
"RMCP_CONFIG_FILE": "<RMCP_CONFIG_FILE>",
"RMCP_READ_ONLY": "<RMCP_READ_ONLY>"
}
}
}
}
起動コマンドuvx reolink-mcp
設定が必要な環境変数
RMCP_CONFIG_FILEPath to the camera config YAML (default: ~/.config/reolink-mcp/config.yaml)
RMCP_READ_ONLYSet to 'true' to strip all control tools and run observe-only

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypireolink-mcp1.0.0

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

reolink-mcp

Reolink カメラ向けのオープンソース MCP(Model Context Protocol)サーバーです。Claude — または任意の MCP クライアント — から、ローカルネットワーク上の Reolink カメラを確認・操作できます。スナップショット、デバイスの状態、AI 検知の状態、PTZ プリセット、威嚇機能(スポットライト、サイレン、IR/白色 LED)に対応しています。ローカルネットワークのみで動作し、クラウドは不要です。

市場の空白(2026-07-08 確認済み): GitHub、npm、PyPI のいずれにも、Reolink 専用の MCP サーバーはありません。最も近い先行事例も仲介システムが必要です。 dedsxc/mcp-frigate(Frigate NVR が必要)、homeassistant-mcp(Home Assistant が必要)。これは、単独で動作するニッチ分野における先駆けです。

Reolink カメラを使っているユーザーは、MCP クライアントの設定に reolink-mcp を追加して、「玄関のカメラを見せて」と頼むだけで、カメラから直接ライブスナップショットを取得できます。間に NVR やホームオートメーションのデーモンは不要です。

クイックスタート

ローカルネットワークからアクセスできる Reolink カメラと、その管理者のユーザー名/パスワードが必要です。

1. カメラの設定を作成する

config.example.yaml を ~/.config/reolink-mcp/config.yaml にコピーします(または、RMCP_CONFIG_FILE でディスク上の別の場所にあるコピーを指定します)。

cameras:
  front_door:
    host: 192.168.1.44
    username: admin

パスワードをこのファイルに記載しないでください。代わりに、カメラごとに RMCP_CAMERAS__<name>__PASSWORD 環境変数を設定します。<name> は、上記 YAML のカメラのキーと完全に一致する必要があります(小文字の snake_case)。

RMCP_CAMERAS__front_door__PASSWORD=<camera-password>

同時セッション数の上限: Reolink カメラで同時に保持できるセッション数には上限があります。reolink-mcp は、サーバーの実行中、設定済みのカメラごとに reolink-aio セッションを 1 つ保持します。同じカメラのセッションを保持する別のシステム(NVR、別の MCP サーバーなど)と併用すると、上限に達する可能性があります。以下のカメラの互換性とセッション数の上限を参照してください。

2. MCP クライアントに追加する

Claude Code:

claude mcp add reolink -- uvx reolink-mcp

Claude Desktop(claude_desktop_config.json — macOS: ~/Library/Application Support/Claude/claude_desktop_config.json、Windows: %APPDATA%\Claude\claude_desktop_config.json):

{
  "mcpServers": {
    "reolink": {
      "command": "uvx",
      "args": ["reolink-mcp"],
      "env": {
        "RMCP_CAMERAS__front_door__PASSWORD": "<camera-password>"
      }
    }
  }
}

その他の MCP クライアント(汎用 stdio):

{
  "command": "uvx",
  "args": ["reolink-mcp"]
}

これで完了です。MCP クライアントに「玄関のカメラを見せて」と頼んでみてください。

ツール

reolink-aio と公式の MCP Python SDK を基盤にしています。 すべてのツールには readOnlyHint/destructiveHint のアノテーションが付いているため、MCP クライアントは承認の要否を制御できます。Observe ツールは読み取り専用、Control ツールはカメラの状態を変更し、破壊的とマークされているのは set_siren のみです。

ツール種類目的破壊的
list_camerasObserve接続状態、モデル、ホストとともに、設定済みのすべてのカメラを一覧表示しますいいえ
get_device_infoObserveカメラのモデル、ファームウェア、ハードウェアの詳細を取得しますいいえ
get_capabilitiesObservePTZ、サイレン、スポットライト、IR/白色 LED、ズーム、AI 検知の種類など、カメラが対応する機能を中立的な機能用語で取得しますいいえ
get_statesObserve昼夜モード、白色 LED/スポットライト、IR ライト、サイレン機能、動体検知など、デバイスの現在の状態を取得しますいいえ
get_recent_eventsObserveオンデマンドのポーリングから、現在の AI 検知状態(人物/車両/ペットに加え、カメラが報告するその他の対象)と、単純な動体検知フラグを取得しますいいえ
get_snapshotObserveカメラのライブ静止画像を MCP 画像コンテンツブロックとして返しますいいえ
set_sirenControlカメラのサイレンを鳴らす、または停止します。安全なデフォルトは約 5 秒、上限は 60 秒で、上限を超える要求は制限値に丸めず拒否しますはい
set_audio_alarmControlカメラのサイレン/音声アラーム機能を有効または無効にします。ファームウェアが set_siren を受け付けても音が鳴らない場合に必要ですいいえ
set_spotlightControlカメラのスポットライトをオンまたはオフにしますいいえ
set_ir_lightsControlカメラの IR ライトを auto、on、off に設定しますいいえ
set_white_ledControlオプションで明るさを指定して、カメラの白色 LED をオンまたはオフにしますいいえ
set_zoomControlカメラのズームを絶対位置(0~100)または相対的な拡大/縮小ステップで設定しますいいえ
list_presetsControlカメラの名前付き PTZ プリセットを一覧表示しますいいえ
ptz_move_to_presetControlカメラを名前付き(または数値指定の)PTZ プリセットに移動しますいいえ
ptz_positionControlカメラの現在のパン/チルト/ズーム位置を取得し、近い位置に保存済みプリセットがあればその名前を表示しますいいえ
ptz_guardControlカメラの PTZ ガードポイントと自動復帰(set/goto/enable/disable)を設定しますいいえ

安全性

  • RMCP_READ_ONLY=true を設定してサーバーを起動すると、起動時に 10 個すべての Control ツールが取り除かれます。これらのツールは非表示になるのではなく、登録されません。stderr に 1 行の通知が出力され、クライアントには、Control ツールが一切登録されていない、監視専用のクリーンなサーバーが表示されます。
  • set_siren は、再生時間が指定されていない場合、デフォルトで約 5 秒間鳴らします。また、60 秒の上限を超える要求は、黙って上限値に丸めずに拒否し、より短い再生時間を指定するよう明確なエラーで求めます。
  • 機能の確認:各 Control ツールはコマンドを送信する前に対象カメラの実際の機能を確認し、サポートされていない機能からの生の API エラーをクライアントに返すのではなく、適切に拒否します(例:「カメラ 'front_door' にはサイレンがありません」)。

カメラの互換性とセッション制限

開発中に以下の環境で実機検証済みです。

カメラ検証済みの機能
P437サイレン、スポットライト、ズーム
P320赤外線ライト

PTZ ツール(list_presets、ptz_move_to_preset、ptz_position、 ptz_guard)はモックでのみ検証済みです。実際の PTZ ハードウェアでの検証は 未実施です。

同時セッション数の制限: reolink-aio は、サーバープロセスの稼働中、 カメラごとに長時間維持されるセッションを 1 つ保持します。 Reolink カメラには、受け付け可能な同時セッション数の上限があります。 同じカメラでセッションを独自に保持する別のシステム(NVR、Reolink の公式 アプリ、2 つ目の自動化スタックなど)と reolink-mcp を同時に実行すると、 上限に達することがあります。このプロジェクトの開発環境では、2 つ目の 独立したシステムと共有するカメラで動作させ、この共存条件での動作を 検証しています。ログインエラーやセッションエラーが発生した場合は、 まずカメラのセッションを現在保持している他のシステムがないか確認してください。

ライセンス

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。