mcpField
O
open-eagle-eye

open-eagle-eye

ローカル
github.com/stuchapin909地図・旅行5今日更新

open-eagle-eye について

Open Eagle Eyeは、AIエージェントが公共カメラのライブ画像を取得するためのMCPサーバーです。通常のHTTP GETで取得できるJPEGまたはPNGを扱い、検索可能なカメラ一覧とローカルカメラ管理機能を備えています。

主な機能

  1. 01カメラのライブスナップショット取得
  2. 02名前・場所・カテゴリで検索
  3. 03都市などの条件で絞り込み
  4. 04ローカルカメラの管理
  5. 05不具合報告とカメラの登録

活用シーン

  1. 01都市の交通カメラ画像を確認
  2. 02気象観測所や公園のカメラを確認
  3. 03独自カメラをテストして保存
  4. 04特定地域の公共カメラを検索

MCP 対応

MCPサーバーは、カメラの検索、絞り込み、スナップショット取得、ローカルカメラ管理のツールを提供します。画像はファイルに保存され、パスが返されます。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"stuchapin909-open-eagle-eye": {
"command": "npx",
"args": [
"-y",
"openeagleeye"
]
}
}
}
起動コマンドnpx -y openeagleeye

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

パッケージ
npmopeneagleeye8.0.0

ツール

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

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

詳細

Open Eagle Eye

npm version License: MIT

世界中の公開カメラ映像にAIエージェントが即座にアクセスできるMCP サーバーです。HTTP GETを1回実行するだけで、1秒未満で画像を取得できます。ブラウザー操作の自動化も、ストリームのデコードも必要ありません。

その理由

多くのカメラAPIでは認証が必要だったり、動画ストリームが配信されたり、JavaScriptのレンダリングを経由しないと画像を取得できなかったりします。Open Eagle Eyeがインデックスするのは、通常のHTTP GETでJPEGまたはPNGを返すカメラだけです。これが最もシンプルな連携方法です。エージェントがページをレンダリングしたり、動画をデコードしたりする必要はありません。画像を取得するだけです。

レジストリは自動で修復されます。GitHub Actionが毎晩実行され、すべてのカメラを確認し、削除する前に失敗したカメラを再試行します。また、ビジョンAIを使って、ライブ映像の代わりにエラーページを返すカメラを検出します。停止したカメラには自動的にフラグが付けられます。

クイックスタート

{
  "mcpServers": {
    "openeagleeye": {
      "command": "npx",
      "args": ["-y", "openeagleeye"]
    }
  }
}

または、グローバルにインストールします。

npm install -g openeagleeye
openeagleeye

初回起動時、サーバーはGitHubから最新のカメラレジストリを取得し、~/.openeagleeye/にローカルキャッシュを保存します。2回目以降の起動では、キャッシュが自動的に更新されます。

仕組み

有効なカメラURLとは、通常のHTTP GETでJPEGまたはPNGを返すエンドポイントです。多くの都市の交通カメラ、気象観測所、公園のカメラが、まさにこの形式で公開されています。サーバーは画像を取得してディスクに保存し、ファイルパスを返します。

MCP ツール

ツール説明
get_snapshotカメラからライブ画像を取得します。ディスクに保存し、ファイルパスを返します
list_camerasフィルター(都市、場所、カテゴリ)を使ってレジストリを閲覧します
search_cameras名前、場所、カテゴリで検索します
add_local_cameraローカルコレクションにカメラを追加します
list_localローカルに追加したカメラを表示します
remove_localローカルに追加したカメラを削除します
submit_localGitHub issueを通じてローカルカメラを上流に共有します
report_camera故障中または品質の低いカメラを報告します
check_configAPIキーの設定状況を表示します
上流カメラとローカルカメラ

レジストリは2つの層で構成されています。

  • 上流 — サーバー起動時に毎回GitHubから取得するグローバルレジストリです。検証済みの公開カメラが約32,000台含まれています。
  • ローカル — add_local_cameraを使って自分で追加したカメラです。~/.openeagleeye/local-cameras.jsonに保存され、再起動後も保持されます。また、source: "local"を付けてlist_cameras/search_camerasの結果に表示されます。submit_localを使えば、いつでも上流に共有できます。
フィルタリング

すべてのカメラにはcityフィールドがあります。list_camerasでcity: "Sydney"を指定すると、すべてのカメラをコンテキストに大量に出力する代わりに、対象を絞った短いリストを取得できます。

出力形式

すべてのツールは構造化JSONを返します。スナップショットはディスクに保存され、ファイルパスが返されます。MCP サーバーはローカルのサブプロセスとして実行されるため、エージェントはファイルシステムにアクセスできます。

スナップショットのレスポンス:

{
  "success": true,
  "file_path": "/home/user/.openeagleeye/snapshots/a1b2c3d4e5f6a7b8.jpg",
  "size_bytes": 14579,
  "content_type": "image/jpeg",
  "camera": {
    "id": "nyc-bb-21-north-rdwy-at-above-south-st",
    "name": "BB-21 North Rdwy @ Above South St",
    "city": "New York",
    "location": "Manhattan, New York, USA",
    "coordinates": { "lat": 40.708, "lng": -73.999 }
  }
}

レジストリ

11か国に約32,000台のカメラがあります(32,096台を確認済み)。

世界のカバー範囲

国件数ソース
US27,184NYC DOT、NY 511、WSDOT、Caltrans CWWP2、CDOT CoTrip、VDOT 511、FDOT FL511、NCDOT、PennDOT 511PA、Arizona ADOT、Oregon ODOT、Nevada NDOT、Utah UDOT、Wisconsin WisDOT、New England 511、Louisiana LADOTD、Alaska DOT&PF、Missouri MoDOT
FI1,309Digitrafficの気象カメラ(Fintraffic)
CA1,292Ontario MTO、Alberta 511
HK995Hong Kong Transport Department
GB424London TfL JamCams
NZ248NZTA全国高速道路
AU247Queensland DOTの交通・洪水カメラ
BR160CET São Pauloの都市交通
JP98NEXCO東日本の高速道路
SG90Singapore LTA
IE49TIIの高速道路カメラ(ダブリンM50)

すべてのカメラにcountry、city、location、timezone、coordinates(緯度/経度)があります。

自己修復

GitHub Action が毎晩 3 AM UTC に実行されます。

  • 過去 7 日間に検証されていないカメラと、不審としてフラグが付けられたカメラを確認します
  • 最初の失敗で不審としてマークし、2 回連続で失敗すると削除して GitHub の Issue を作成します
  • Vision AI(GitHub Models 経由の GPT-4o-mini)が、エラーページを返すカメラを検出します
  • 復旧した不審なカメラは自動的に解除されます
セキュリティ
  • SSRF 対策 — プライベート IP、クラウドのメタデータエンドポイント、HTTP 以外のプロトコル、DNS リバインディングをブロックします
  • コンテンツタイプの許可リスト — image/jpeg と image/png のみを受け付けます
  • マジックバイト検出 — CDN が誤ったコンテンツタイプを返した場合、ファイルヘッダーで JPEG/PNG を検証します
  • Push/PR の上限 — サイズの大きすぎる PR を介した DoS を防ぐため、1 回の push あたりのカメラ数を最大 500 台に制限します
  • ランダムなファイル名 — スナップショットにはランダムな 16 進数のファイル名を使用し、パスにカメラ ID を含めません

API キー(任意)

ほとんどのカメラはそのまま利用できます。一部のカメラでは無料の API キーが必要です。キーのエラーでスナップショットの取得に失敗した場合、応答に登録先と設定方法が表示されます。

~/.openeagleeye/config.json を作成します。

{
  "api_keys": {
    "PROVIDER_API_KEY": "your-key-here"
  }
}

check_config を使うと、キーが必要なカメラと、キーが設定済みかどうかを確認できます。

カメラの追加

  1. 画像への直接 URL を探します(通常の GET リクエストで image/jpeg または image/png を返す必要があります)
  2. URL、都市、場所、タイムゾーン、任意の座標を指定して add_local_camera を実行します
  3. get_snapshot でテストします
  4. submit_local で上流リポジトリに共有します — gh CLI が必要です(gh auth login)

ローカルカメラはすぐに使用でき、役立てるために上流で承認を得る必要はありません。

おすすめのソース:市の運輸局、気象観測所、スキーリゾート、国立公園、港、空港。

ファイル構成

すべての実行時データは ~/.openeagleeye/ に保存されます。

~/.openeagleeye/
  cameras.json          # Upstream registry (fetched from GitHub on boot)
  local-cameras.json    # Your locally-added cameras
  .registry-state.json  # Validation state (active/suspect/offline)
  snapshots/            # Downloaded camera images
  config.json           # API keys

コントリビューション

プルリクエストを歓迎します。カメラのソースを追加する際のガイドラインについては、CONTRIBUTING.md をご覧ください。

このプロジェクトの目的

プロジェクトの設計上の判断の背景、他のカメラサービスとの比較、エージェントネイティブと自己修復が重要である理由については、WHY.md をご覧ください。

プライバシーとセキュリティ

監視、データ収集、プライベートカメラ、セキュリティアーキテクチャに関するよくある質問への回答については、SECURITY.md をご覧ください。

ライセンス

MIT

コメント

MCP は初めてですか?

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

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