
Open Eagle Eye
io.github.stuchapin909由 GitHub 账号 stuchapin909 发布v8.0.0更新于 Oct 27, 2026
Live snapshots from ~29,000 public cameras across 11 countries — traffic, weather, webcams
概览
让助手浏览约 2.9 万个公共交通、天气与网络摄像头,并抓取实时 JPEG/PNG 快照保存到本地磁盘。
- 可以做什么
- 按城市、地点、类别或名称浏览和搜索摄像头注册表
- 抓取摄像头实时快照,保存到磁盘并返回文件路径
- 管理本地摄像头集合:添加、列出、删除并向上游提交
- 报告损坏或画质差的摄像头,查看 API 密钥配置状态
- 适用场景
- 适合需要助手获取公共交通、天气、高速或城市摄像头当前画面,或想维护自己的直连图片摄像头清单以便反复抓图的场景。
- 运行要求
- 以 npm 包形式通过 stdio 在本地运行(npx 或全局安装),需要 Node.js 和网络访问:启动时从 GitHub 拉取注册表,并需能访问各摄像头主机。部分摄像头需要可选 API 密钥,放在用户主目录下的配置文件中。向上游提交本地摄像头需要已登录的 gh CLI。
安装
在 SourceWeft 中
- 打开 控制台中的 Open Eagle Eye,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
Open Eagle Eye
MCP server that gives AI agents instant access to public camera feeds worldwide. One HTTP GET, sub-second captures, no browser automation, no stream decoding.
Why
Most camera APIs require authentication, serve video streams, or hide images behind JavaScript rendering. Open Eagle Eye only indexes cameras that return a JPEG or PNG on a plain HTTP GET — the simplest possible integration. Agents don't need to render pages or decode video. They just fetch an image.
The registry is self-healing. A GitHub Action runs nightly, checks every camera, retries failures before removing them, and uses vision AI to catch cameras that return error pages instead of live feeds. Dead cameras get flagged automatically.
Quick start
Or install globally:
On first run, the server fetches the latest camera registry from GitHub and caches it locally in ~/.openeagleeye/. Subsequent starts refresh the cache automatically.
How it works
A valid camera URL is any endpoint that returns a JPEG or PNG on a plain HTTP GET. Most city traffic cameras, weather stations, and park cams expose exactly this. The server fetches the image, saves it to disk, and returns the file path.
MCP Tools
Upstream vs local cameras
The registry has two layers:
- Upstream — the global registry fetched from GitHub on every server start. These are the ~32,000 validated public cameras.
- Local — cameras you add yourself via
add_local_camera. They persist in~/.openeagleeye/local-cameras.json, survive restarts, and appear inlist_cameras/search_cameraswithsource: "local". Share them upstream anytime withsubmit_local.
Filtering
Every camera has a city field. Use list_cameras with city: "Sydney" to get a short, focused list instead of dumping all cameras into context.
Output format
Every tool returns structured JSON. Snapshots save to disk and return the file path — the MCP server runs as a local subprocess, so the agent has filesystem access.
Snapshot response:
Registry
~32,000 cameras across eleven countries (32,096 verified):
Every camera has country, city, location, timezone, and coordinates (lat/lng).
Self-healing
A GitHub Action runs nightly at 3 AM UTC:
- Checks cameras not validated in the last 7 days, plus any flagged as suspect
- First failure marks as suspect, second consecutive failure removes and opens a GitHub issue
- Vision AI (GPT-4o-mini via GitHub Models) catches cameras returning error pages
- Suspect cameras that recover are cleared automatically
Security
- SSRF protection — blocks private IPs, cloud metadata endpoints, non-HTTP protocols, and DNS rebinding
- Content-type whitelist — only
image/jpegandimage/pngaccepted - Magic byte detection — validates JPEG/PNG by file header when CDN returns wrong content-type
- Push/PR cap — max 500 cameras per push to prevent DoS via oversized PRs
- Random filenames — snapshots use random hex filenames, no camera ID in the path
API Keys (optional)
Most cameras work out of the box. Some require a free API key. If a snapshot fails with a key error, the response tells you where to sign up and how to configure it.
Create ~/.openeagleeye/config.json:
Use check_config to see which cameras need keys and whether yours are set.
Adding cameras
- Find a direct-image URL (must return
image/jpegorimage/pngon plain GET) add_local_camerawith the URL, city, location, timezone, and optional coordinatesget_snapshotto test itsubmit_localto share upstream — requires theghCLI (gh auth login)
Local cameras work immediately and don't need upstream approval to be useful.
Good sources: city DOTs, weather stations, ski resorts, national parks, ports, airports.
File layout
All runtime data lives in ~/.openeagleeye/:
Contributing
Pull requests welcome. See CONTRIBUTING.md for guidelines on adding camera sources.
Why this exists
See WHY.md for the reasoning behind the project's design decisions, how it compares to other camera services, and why agent-native and self-healing matter.
Privacy & security
See SECURITY.md for answers to common questions about surveillance, data collection, private cameras, and the security architecture.
License
MIT
来源:README.md,提交 62654d5
工具
0版本历史
1- v8.0.0最新Sep 16, 2026
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分