WorldEye
WorldEye MCP, AI ajanlarına WorldEye’ın canlı kamera kataloğunun yeniden dağıtım izni alınmış bölümüne (her kayıtta işletici kurumun belirtildiği on binlerce halka açık kamera) ve USGS deprem akışına salt okunur erişim sağlar. Beş araç sunar: kamera arama, kamera ayrıntıları, bir yerin yakınındaki kameralar, son depremler ve API anahtarı kullanımı. API yalnızca meta verileri, anlık görüntüleri ve izleme bağlantılarını sunar; canlı yayın URL’leri sunmaz. İzleme WorldEye’da yapılır.
Barındırılan MCP Sunucusu
npx add-mcp 'https://worldeye.app/api/v1/mcp'Claude Code, Codex, Cursor ve daha fazlasına kurulur
Dokümantasyon
The live camera catalogue, as an API
Search tens of thousands of public cameras — the ones cleared for redistribution, with the operating agency credited on every record — and the USGS earthquake feed, from your own code or from an AI agent over MCP. Read-only, key-authenticated, with a free tier you can start on in under a minute.
Quickstart
1. Sign in and create a key in Account Settings → API keys. The key (it starts wek_) is shown once — store it somewhere safe. 2. Send it on every request, either as a bearer token or in the X-Api-Key header:
curl "https://worldeye.app/api/v1/cameras?country=Japan&limit=5" \
-H "Authorization: Bearer wek_YOUR_KEY"
Every response carries X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset headers for your plan's daily quota.
Endpoints
GET /api/v1/cameras
Search the redistribution-cleared camera catalogue.
q— text match over name, city, country and sourcecountry— a full country name ("Japan") or ISO alpha-2 code ("JP")kind—video,snapshot,embedorlinknear=<lat>,<lng>orplace=<name>— radius search, nearest first;radius_kmdefaults to 50 (max 500)limit(default 20, max 100) andoffsetpaginate the filtered set
GET /api/v1/cameras/<id>
One camera by id. A camera outside the cleared catalogue is a 404, exactly as if it didn't exist.
GET /api/v1/cameras/<id>/snapshot
The camera's current still: a 302 redirect to the snapshot URL the detail payload carries. Stream-only cameras answer 404 with the reason.
GET /api/v1/earthquakes
The site's earthquake layer: USGS magnitude 2.5+ events from the last 24 hours (US federal public-domain data). limit caps the list (max 500).
GET /api/v1/usage
Your key's plan tier, limits and today's usage. Checking usage does not consume quota.
The camera object
{
"id": "…",
"name": "…",
"city": "…",
"country": "…",
"lat": 35.681,
"lng": 139.767,
"snapshotUrl": "https://worldeye.app/api/cctv/frame?id=…", // null for stream-only cameras
"watchUrl": "https://worldeye.app/?camera=…", // opens the camera on the globe
"attribution": "… via WorldEye", // credit this agency
"source": "…"
}
The API serves metadata, snapshots and deep links — watching a camera live happens on WorldEye, through its watchUrl. Every record carries the operating agency in attribution; keep that credit wherever you display the data.
Rate limits
Limits follow the key owner's WorldEye plan and reset at UTC midnight. One ladder, enforced identically on REST and MCP:
| Plan | Requests / day | Burst / minute |
|---|---|---|
| Free | 100 | 10 |
| Lite | 1,000 | 30 |
| Pro (incl. VIP Pro Annual) | 5,000 | 60 |
| Ultra & legacy VIP Pro Annual | 25,000 | 120 |
| Enterprise | 100,000 | 300 |
Over the daily quota the API answers 429 daily_quota_exceeded; over the burst limit, 429 rate_limited — both with a Retry-After header. Errors everywhere share one shape: { "error": { "code", "message" } }.
MCP — for AI agents
The same catalogue is a Model Context Protocol server (Streamable HTTP) at https://worldeye.app/api/v1/mcp. Configure your MCP client with that URL and your key as a header — the key never travels as a tool argument:
{
"mcpServers": {
"worldeye": {
"url": "https://worldeye.app/api/v1/mcp",
"headers": { "Authorization": "Bearer wek_YOUR_KEY" }
}
}
}
search_cameras— text, country and kind searchget_camera— one camera by idcameras_near— radius search around coordinates or a named placelatest_earthquakes— the USGS M2.5+ feed, last 24 hoursget_usage— the calling key's tier and remaining quota
Mistral Le Chat — connectable today
Le Chat takes custom MCP connectors, so WorldEye connects today:
- Open
Intelligence → Connectors, chooseAdd Connector, thenCustom MCP Connector. - Name it
WorldEyeand set the server URL tohttps://worldeye.app/api/v1/mcp. - Under Authentication choose
API Token: header nameAuthorization, valueBearer wek_YOUR_KEY, using a key from API keys. - Create the connector, then use
Enable Toolsto switch on the tools you want Le Chat to call.
Claude Code, Claude Desktop and other config-file clients
Any MCP client that reads a JSON config connects with the snippet above — Claude Code and Claude Desktop included. The key always travels in the Authorization header, never as a tool argument. The server is also published on the official MCP Registry as app.worldeye/worldeye v1.0.0.
ChatGPT and the Claude Directory — not listed yet
WorldEye is not yet listed in the ChatGPT app directory or the Claude Directory, so there is no in-app add button for it today. A ChatGPT listing needs a verified OpenAI developer account and OpenAI's review; a Claude Directory listing needs a paid Claude plan and Anthropic's review — both are publisher-side steps WorldEye has not completed. Developers building on the OpenAI API can still attach the server directly as a remote MCP server, with the same URL and Authorization header.
Fair use
The catalogue only contains cameras whose operators clear them for redistribution, and a source can be withdrawn — when it is, its cameras leave the API at once. Credit each camera's listed source, don't re-present snapshots as a live video feed, and cache politely: responses are cacheable for a minute and snapshots change on the operator's schedule, not yours. Keys are per-user; a revoked key stops working immediately.
Building something bigger?
The API is the self-serve route. If what you're building could be a partnership — a deeper integration, a co-branded experience, a data exchange — WorldEye is actively looking for strategic partners, and the application takes five minutes.