Off-Nadir Delta
Model Context Protocol

An MCP server for world event intelligence

Give your AI agent a live intelligence workflow: discover an event, verify the reporting, identify what evidence is missing, determine whether a satellite can resolve it, and produce a collection-ready plan. Sourced and geolocated, not a stale training snapshot.

42 tools over one endpoint — 23 of them free, so your first call costs nothing. Works with the Claude and ChatGPT apps, Claude Code, Cursor, and VS Code.

Quick answer — what Off-Nadir Delta is

The Off-Nadir Delta MCP server is a Model Context Protocol server that takes an AI agent from a first signal to satellite evidence. Over a Streamable HTTP endpoint at /api/v1/mcp, an agent can call 42 tools — discover, plan, analyze, watch, workspace, account — plus resources and prompts, authenticating with OAuth 2.1 or a bearer API key and metered on your token balance. Tools such as query_signals, query_stats, query_hotspots, get_world_brief are available on every plan including Free. It works with the Claude and ChatGPT apps, Claude Code, Cursor, VS Code, and any MCP client.

Tools (42)

Discover

What is happening, where it concentrates, and what today looks like.

  • query_signals3 tok

    Geolocated world events (geopolitical, security, disaster, infrastructure) from global news media, AI-enriched with severity/GEOINT scores and collection recommendations.

  • query_stats1 tok

    Roll-ups over the corpus: totals plus per-category and per-day breakdown.

  • query_hotspots1 tok

    Where activity concentrates: density grid-binned into ranked cells with peak severity, categories and representative event_ids.

  • get_world_brieffree

    The Daily World Brief — an AI digest of the previous UTC day.

  • query_developments3 tok

    What actually CHANGED about the events in an area, not which articles are new.

  • get_event_threadfree

    One event end to end: state plus every change in order — the "new event or update" distinction a feed cannot make.

  • search_entities1 tok

    Find a place in the location registry — ports, bases, airfields, power plants, chokepoints, named seas.

  • get_entity1 tok

    What has happened at one place: the registry record plus every linked event with HOW it was linked.

  • get_related_events3–8 tok

    What else connects to one event, and what came before and after.

Plan

Whether a satellite can resolve it, which one, and when it next passes.

  • search_imagery2 tok

    Search the imagery catalog (Sentinel-1, Sentinel-2, NISAR L-band) over an area and window.

  • plan_event_imagery4 tok

    The deterministic imagery plan for ONE event: checks BOTH sensors exactly once — sentinel-1-grd (SAR, the only look that survives cloud and night) and sentinel-2-l2a — against the event footprint and a pre/post window.

  • rank_imaging_priority1 tok

    WHERE, and with what class of satellite, observation is most worthwhile now: composite IMPORTANCE crossed with the SPEC CLASS the required resolution demands — coarse, hr (free Sentinel-class) or vhr.

  • survey_observable_events1 tok

    Which events a sensor can actually RESOLVE, over the FULL set.

  • predict_satellite_passes2 tok

    WHEN a place can next be imaged and by WHAT: SGP4 over day-cached elements for 13 free-systematic and commercial-taskable families.

  • test_hypotheses3 tok

    Given competing statements, the observation that would REFUTE the most — and those that would refute none.

  • lookup_elevationfree

    Terrain height from the Copernicus DEM GLO-30 for a point, bbox or polygon, with relief — the number that governs SAR layover and shadow.

  • analyze_terrainfree

    Compute FROM the terrain.

Analyze

Turn reporting into a cited assessment you can audit afterwards.

  • assess_signal5/15 tok

    AI remote-sensing deep-dive for one signal: what to observe, sensors, a collection window.

  • ask_analyst5–123 tok

    Ask the Delta Analyst an OSINT/GEOINT question; returns a structured brief.

  • get_analyst_jobfree

    Status and result of an ask_analyst run.

  • query_claimsfree

    The ledger of claims this key was given, each with its evidence class, independent source families and publishers.

  • refine_location3–29 tok

    Research one signal's location further and store a better coordinate if the sources genuinely narrow it.

  • measure_index_series0.5 tok

    Measure a spectral index over an area scene by scene through the Sentinel-2 archive.

  • detect_ships5 tok

    Count vessel-like targets in ONE Sentinel-1 SAR scene by CFAR detection — radar sees through cloud and at night.

Watch

Stand up continuous coverage and be told only when the answer changes. Creating and listing cost nothing — you are metered only when a check actually fires, or a new acquisition is actually measured.

  • create_standing_orderfree

    Put an area under CONTINUOUS watch: a question plus a bbox, re-answered on a schedule, notifying only when the answer changed.

  • list_standing_ordersfree

    The standing orders on this key: cadence, area, last check, last actual fire, and quiet_checks — a high quiet_checks means the watch is not earning its place.

  • delete_standing_orderfree

    Delete a standing order, or pause/resume with active=false/true.

  • list_monitored_areasfree

    Places under continuous satellite measurement: metric, latest value, change, anomaly flag, coverage.

  • get_monitored_areafree

    One monitored area with its full measurement history.

  • create_monitored_areafree

    Put a place under continuous satellite measurement — every new Sentinel-1/2 or VIIRS acquisition is measured.

  • list_watchesfree

    The Watchlist as one list, each entry with a state bucket.

  • get_watchfree

    One watch end to end: target, state, latest change, measurements with recent series, standing-order questions, and for an event watch its verification state, developments and thread, plus this account's notes.

  • get_decision_package5 tok

    Everything needed to decide what to collect next about one watch, in one object.

  • create_watchfree

    Add a target to the Watchlist.

  • update_watchfree

    Rename, pause or resume a watch.

  • delete_watchfree

    Delete a watch and its underlying resources — bound monitored areas with their history, and standing orders.

  • add_notefree

    Add a note to a watch, start a thread, or reply.

  • delete_notefree

    Delete one note from a watch.

Workspace

The map assets you own — saved layer sets and your own uploaded data.

  • list_layer_setsfree

    The layer sets saved on this account.

  • get_layer_setfree

    One saved layer set by id.

  • list_uploaded_layersfree

    The data this account uploaded to the map, plus the formats the uploader accepts.

Account

Pre-flight your token balance before a metered call.

  • get_usagefree

    The calling key's remaining token balance and plan capabilities.

Resources

  • brief://latest

    The most recent AI-synthesized Daily World Brief (JSON). Free.

  • signals://schema

    JSON Schema of the public Signal shape returned by query_signals / /api/v1/signals.

  • usage://current

    Remaining token balance and plan capabilities for the calling key. Free.

  • imagery://collections

    The satellite catalog collections searchable via search_imagery — Sentinel-1 C-band SAR, Sentinel-2 optical, and NISAR L-band SAR (provisional calibration). Free.

  • status://current

    How current the data is (ingestion/enrichment frontier), the Daily World Brief status, and an Operational/Delayed/Degraded roll-up. Free.

  • brief://{date}

    The Daily World Brief for a specific UTC date (YYYY-MM-DD). Free.

  • watch://{watch_id}

    A Watchlist entry with its current state, latest meaningful change, measurements, (for event watches) the full event thread, and the notes kept against it. The same body get_watch returns. Free.

Prompts

  • daily-situation-briefing

    Summarize the current world situation from the Daily World Brief.

  • assess-top-signal

    Find the highest-severity recent signal in an area/category and run an RS assessment.

  • aoi-watch

    Scan an area of interest for recent escalations and recommend collection.

  • market-exposure-check

    Find recent events that could plausibly move a given market (oil, grain, shipping, ...) and explain each transmission channel. Informational only — not investment advice.

Connect it in one command

Issue a key from Account → Developer API, then add the server with your key. In Claude Code:

claude mcp add --transport http off-nadir-delta \
  https://offnadir-delta.com/api/v1/mcp \
  --header "Authorization: Bearer ond_..."

Any MCP client that supports HTTP transports works the same way — point it at https://offnadir-delta.com/api/v1/mcp and pass the Authorization header. The API & MCP reference has a ready-to-paste config block.

Add it to your Claude or ChatGPT app

No API key to paste — approve once over OAuth. In claude.ai or ChatGPT (Developer Mode), open Settings → Connectors → Add custom connector and paste this endpoint:

text
https://offnadir-delta.com/api/v1/mcp

The buttons open step-by-step setup for each app. Custom-connector limits differ by Claude plan, and ChatGPT's Developer Mode is not exposed on every plan — check yours. The connection is metered on your token balance and revocable anytime.

One-click install for developer editors

Cursor and VS Code install the server directly. You'll complete OAuth (or add your ond_… key) on first use.

Keys are shown once and can be revoked anytime. Usage is metered on your token balance, so you stay in control of what an agent can spend.

Building an agent?

Every workflow in Delta Recipes has an MCP version (prompts and tool calls), and the same operations can be exercised over REST in the API Playground — one executor serves both surfaces, so what you test is what your agent gets.

Try it — three demo prompts

Once the connector is added to Claude or ChatGPT (or the server is added to your editor), paste one of these to see the tools chain together. The first is free — get_world_brief and get_usage cost zero tokens.

1 · Daily situation briefing (start free)

prompt
Using the Off-Nadir Delta connector, read the latest Daily World Brief (get_world_brief), then list the five highest-severity world-event signals from the last 24 hours (query_signals), each with its coordinates, category, and a source link. Group them by category and flag anything that is escalating.

2 · Watch an area of interest

prompt
Watch the Black Sea region (bbox 22, 44, 40, 53) with Off-Nadir Delta. Query the last 7 days of signals (query_signals) and show where activity is concentrating (query_hotspots). Summarize what changed this week, which categories are driving it, and why it matters — cite the sources.

3 · Signal → satellite scene → assessment

prompt
Find the top security hotspot in Ukraine over the last 3 days using Off-Nadir Delta (query_hotspots), pick the highest-severity signal there (query_signals), search recent Sentinel-1/2 scenes over its location (search_imagery), and give me a remote-sensing assessment (assess_signal) of what to observe and which scene to examine next.

Metered tools spend from your token balance; check it first with get_usage (free). Full tool list and costs in the MCP docs.

From training snapshot to live awareness

A language model’s knowledge stops at its training cutoff. With this MCP server, an agent can ground its answers in what happened today — sourced, geolocated events and an analyst that cites its evidence — turning “I don’t have real-time information” into a specific, current assessment.

Frequently Asked Questions

What is the Off-Nadir Delta MCP server?
It is a Model Context Protocol (MCP) server that gives AI agents live, geolocated world event intelligence. Over a single Streamable HTTP endpoint (/api/v1/mcp), an MCP-capable agent can call tools to query events, read the Daily World Brief, assess an event, and ask an analyst — grounded in sourced, geolocated signals distilled from global news media rather than a static training snapshot. It also exposes resources and prompts so the agent has schema and ready-made workflows on hand.
Which tools, resources, and prompts does it expose?
Tools (42): query_signals, query_stats, query_hotspots, get_world_brief, get_usage, search_imagery, plan_event_imagery, rank_imaging_priority, survey_observable_events, predict_satellite_passes, assess_signal, ask_analyst, get_analyst_job, query_claims, test_hypotheses, query_developments, get_event_thread, create_standing_order, list_layer_sets, get_layer_set, list_uploaded_layers, list_standing_orders, delete_standing_order, list_monitored_areas, get_monitored_area, create_monitored_area, list_watches, get_watch, get_decision_package, create_watch, update_watch, delete_watch, add_note, delete_note, search_entities, get_entity, get_related_events, lookup_elevation, analyze_terrain, refine_location, measure_index_series, detect_ships — available on every plan including Free, metered by your token balance (get_world_brief, get_usage, get_analyst_job, query_claims, get_event_thread, create_standing_order, list_layer_sets, get_layer_set, list_uploaded_layers, list_standing_orders, delete_standing_order, list_monitored_areas, get_monitored_area, create_monitored_area, list_watches, get_watch, create_watch, update_watch, delete_watch, add_note, delete_note, lookup_elevation, analyze_terrain are free). Resources: brief://latest, signals://schema, usage://current, imagery://collections, status://current, brief://{date}, watch://{watch_id}. Prompts: daily-situation-briefing, assess-top-signal, aoi-watch, market-exposure-check. Together they let an agent go from "what is happening in the world today" to where it is concentrating, the satellite scenes over it, and a specific, sourced assessment — without any custom integration code.
How do I connect it to Claude Code or another MCP client?
Issue an API key from Account → Developer API, then add the server as an HTTP transport with your key as a bearer header. In Claude Code: claude mcp add --transport http off-nadir-delta https://offnadir-delta.com/api/v1/mcp --header "Authorization: Bearer ond_…". Any MCP client that supports HTTP transports works the same way — point it at /api/v1/mcp and pass the Authorization header. The MCP page and /docs/api show a ready-to-paste config block.
Is it authenticated and metered?
Yes. The MCP server uses the same bearer API key as the REST API and is metered on your token balance: reading the brief is free, querying signals is billed per query, and the assessment and analyst tools are billed per call — all available on every plan, including Free, gated only by your token balance. Keys are issued and revoked from Account → Developer API, so you stay in control of what an agent can spend.
How is this different from just calling the REST API?
The REST API is for your own code; the MCP server is for AI agents. MCP standardizes how an agent discovers and calls tools, reads resources, and uses prompts — so instead of writing an integration, you register the server once and the agent can use the intelligence conversationally. Under the hood both hit the same data and the same token wallet. If you are wiring a dashboard or backend, use the REST API; if you are giving an assistant situational awareness, use MCP.

Give your agent situational awareness

Add the MCP server from the Claude or ChatGPT app, or with an API key from a CLI, and let your agent query events, read the brief, and ask an analyst — grounded in live, sourced intelligence.

From headline to satellite evidence

One connected intelligence workflow across four surfaces — free to start, no GIS software or remote-sensing background required.