offnadir-delta-mcp 1.34.0 → 1.36.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -5
- package/dist/catalog.js +18 -87
- package/dist/index.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -16,7 +16,7 @@ satellite can actually resolve it, and produce a collection-ready plan.
|
|
|
16
16
|
Real-time event and geospatial intelligence for OSINT, geopolitical risk, and GEOINT work —
|
|
17
17
|
source-linked, geolocated, and current, not a training snapshot.
|
|
18
18
|
|
|
19
|
-
`
|
|
19
|
+
`40` tools · MCP server version `1.36.0` · [full reference](https://offnadir-delta.com/docs/mcp)
|
|
20
20
|
|
|
21
21
|
## What it does
|
|
22
22
|
|
|
@@ -77,7 +77,7 @@ locally from a generated catalog, so registries can introspect it without creden
|
|
|
77
77
|
|
|
78
78
|
### First call — free
|
|
79
79
|
|
|
80
|
-
23 of the
|
|
80
|
+
23 of the 40 tools cost nothing, so the first thing you run is free:
|
|
81
81
|
|
|
82
82
|
> Give me the latest Daily World Brief. Lead with the three most significant developments,
|
|
83
83
|
> explain why each matters, and cite the supporting signals.
|
|
@@ -102,8 +102,8 @@ What is happening, where it concentrates, and what today looks like.
|
|
|
102
102
|
| `query_developments` | What actually CHANGED about the events in an area, not which articles are new. | 3 tok |
|
|
103
103
|
| `get_event_thread` | One event end to end: state plus every change in order — the "new event or update" distinction a feed cannot make. | free |
|
|
104
104
|
| `search_entities` | Find a place in the location registry — ports, bases, airfields, power plants, chokepoints, named seas. | 1 tok |
|
|
105
|
-
| `get_entity` | What has happened at one place: the registry record plus
|
|
106
|
-
| `get_related_events` |
|
|
105
|
+
| `get_entity` | What has happened at one place: the registry record plus its most recent linked events, each with HOW it was linked. | 1 tok |
|
|
106
|
+
| `get_related_events` | The relations recorded for one event: others at the same registry facility, naming the same place, or stored as the same campaign, each saying what is shared; plus reports merged into it. | 1 tok |
|
|
107
107
|
|
|
108
108
|
### Plan
|
|
109
109
|
|
|
@@ -129,7 +129,6 @@ Turn reporting into a cited assessment you can audit afterwards.
|
|
|
129
129
|
| `ask_analyst` | Ask the Delta Analyst an OSINT/GEOINT question; returns a structured brief. | 5–123 tok |
|
|
130
130
|
| `get_analyst_job` | Status and result of an ask_analyst run. | free |
|
|
131
131
|
| `query_claims` | The ledger of claims this key was given, each with its evidence class, independent source families and publishers. | free |
|
|
132
|
-
| `refine_location` | Research one signal's location further and store a better coordinate if the sources genuinely narrow it. | 3–29 tok |
|
|
133
132
|
| `measure_index_series` | Measure a spectral index over an area scene by scene through the Sentinel-2 archive. | 0.5 tok |
|
|
134
133
|
| `detect_ships` | Count vessel-like targets in ONE Sentinel-1 SAR scene by CFAR detection — radar sees through cloud and at night. | 5 tok |
|
|
135
134
|
|
package/dist/catalog.js
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* Actual `tools/call` / `resources/read` / `prompts/get` requests are forwarded
|
|
14
14
|
* to the remote server with the caller's OFFNADIR_DELTA_API_KEY (see index.ts).
|
|
15
15
|
*/
|
|
16
|
-
// Generated for Off-Nadir Delta MCP 1.
|
|
16
|
+
// Generated for Off-Nadir Delta MCP 1.36.0.
|
|
17
17
|
export const TOOLS = [
|
|
18
18
|
{
|
|
19
19
|
"name": "query_signals",
|
|
@@ -32,7 +32,7 @@ export const TOOLS = [
|
|
|
32
32
|
},
|
|
33
33
|
"date": {
|
|
34
34
|
"type": "string",
|
|
35
|
-
"description": "Window end date, YYYY-MM-DD (UTC). Default today."
|
|
35
|
+
"description": "Window end date, YYYY-MM-DD (UTC). Default today. Records start 2026-09-23; before that, empty means unrecorded, not quiet."
|
|
36
36
|
},
|
|
37
37
|
"days": {
|
|
38
38
|
"type": "integer",
|
|
@@ -213,7 +213,7 @@ export const TOOLS = [
|
|
|
213
213
|
},
|
|
214
214
|
"date": {
|
|
215
215
|
"type": "string",
|
|
216
|
-
"description": "Window end date, YYYY-MM-DD (UTC). Defaults to today."
|
|
216
|
+
"description": "Window end date, YYYY-MM-DD (UTC). Defaults to today. Records start 2026-09-23; before that, empty means unrecorded, not quiet."
|
|
217
217
|
},
|
|
218
218
|
"days": {
|
|
219
219
|
"type": "integer",
|
|
@@ -285,7 +285,7 @@ export const TOOLS = [
|
|
|
285
285
|
},
|
|
286
286
|
"date": {
|
|
287
287
|
"type": "string",
|
|
288
|
-
"description": "Window end date, YYYY-MM-DD (UTC). Defaults to today."
|
|
288
|
+
"description": "Window end date, YYYY-MM-DD (UTC). Defaults to today. Records start 2026-09-23; before that, empty means unrecorded, not quiet."
|
|
289
289
|
},
|
|
290
290
|
"days": {
|
|
291
291
|
"type": "integer",
|
|
@@ -637,7 +637,7 @@ export const TOOLS = [
|
|
|
637
637
|
},
|
|
638
638
|
"start_date": {
|
|
639
639
|
"type": "string",
|
|
640
|
-
"description": "YYYY-MM-DD, inclusive. Default today; no plan history floor here."
|
|
640
|
+
"description": "YYYY-MM-DD, inclusive. Default today; no plan history floor here. Records start 2026-09-23; before that, empty means unrecorded, not quiet."
|
|
641
641
|
},
|
|
642
642
|
"end_date": {
|
|
643
643
|
"type": "string",
|
|
@@ -714,7 +714,7 @@ export const TOOLS = [
|
|
|
714
714
|
},
|
|
715
715
|
"start_date": {
|
|
716
716
|
"type": "string",
|
|
717
|
-
"description": "YYYY-MM-DD, inclusive. Default today; no plan history floor here."
|
|
717
|
+
"description": "YYYY-MM-DD, inclusive. Default today; no plan history floor here. Records start 2026-09-23; before that, empty means unrecorded, not quiet."
|
|
718
718
|
},
|
|
719
719
|
"end_date": {
|
|
720
720
|
"type": "string",
|
|
@@ -1476,7 +1476,7 @@ export const TOOLS = [
|
|
|
1476
1476
|
},
|
|
1477
1477
|
"date": {
|
|
1478
1478
|
"type": "string",
|
|
1479
|
-
"description": "End of the window (YYYY-MM-DD). Defaults to today."
|
|
1479
|
+
"description": "End of the window (YYYY-MM-DD). Defaults to today. Records start 2026-09-23; before that, empty means unrecorded, not quiet."
|
|
1480
1480
|
},
|
|
1481
1481
|
"days": {
|
|
1482
1482
|
"type": "number",
|
|
@@ -2585,7 +2585,7 @@ export const TOOLS = [
|
|
|
2585
2585
|
},
|
|
2586
2586
|
{
|
|
2587
2587
|
"name": "get_entity",
|
|
2588
|
-
"description": "What has happened at one place: the registry record plus
|
|
2588
|
+
"description": "What has happened at one place: the registry record plus its most recent linked events, each with HOW it was linked. **`link_kind: proximity` is an association, not a statement that the event happened there.**",
|
|
2589
2589
|
"inputSchema": {
|
|
2590
2590
|
"type": "object",
|
|
2591
2591
|
"properties": {
|
|
@@ -2614,17 +2614,14 @@ export const TOOLS = [
|
|
|
2614
2614
|
"type": "object"
|
|
2615
2615
|
}
|
|
2616
2616
|
},
|
|
2617
|
-
"link_basis_counts": {
|
|
2618
|
-
"type": "object"
|
|
2619
|
-
},
|
|
2620
2617
|
"event_count": {
|
|
2621
2618
|
"type": "number"
|
|
2622
2619
|
},
|
|
2623
|
-
"
|
|
2620
|
+
"events_24h": {
|
|
2624
2621
|
"type": "number"
|
|
2625
2622
|
},
|
|
2626
|
-
"
|
|
2627
|
-
"type": "
|
|
2623
|
+
"claim_count": {
|
|
2624
|
+
"type": "number"
|
|
2628
2625
|
}
|
|
2629
2626
|
},
|
|
2630
2627
|
"required": [
|
|
@@ -2639,23 +2636,13 @@ export const TOOLS = [
|
|
|
2639
2636
|
},
|
|
2640
2637
|
{
|
|
2641
2638
|
"name": "get_related_events",
|
|
2642
|
-
"description": "
|
|
2639
|
+
"description": "The relations recorded for one event: others at the same registry facility, naming the same place, or stored as the same campaign, each saying what is shared; plus reports merged into it. Merely-nearby events are not relations and are not returned.",
|
|
2643
2640
|
"inputSchema": {
|
|
2644
2641
|
"type": "object",
|
|
2645
2642
|
"properties": {
|
|
2646
2643
|
"event_id": {
|
|
2647
|
-
"type": "
|
|
2648
|
-
"description": "The
|
|
2649
|
-
},
|
|
2650
|
-
"max_hop": {
|
|
2651
|
-
"type": "number",
|
|
2652
|
-
"minimum": 1,
|
|
2653
|
-
"maximum": 10,
|
|
2654
|
-
"description": "Shared-name hops (default 5); 1 = direct only. Sets the charge CEILING (3 + max_hop - 1, capped 8), not the charge."
|
|
2655
|
-
},
|
|
2656
|
-
"include_hypotheses": {
|
|
2657
|
-
"type": "boolean",
|
|
2658
|
-
"description": "Ask what COULD connect the `context` events. ICD 203 word, never a number; each states what would REFUTE it. Empty is normal; omit = no model."
|
|
2644
|
+
"type": "string",
|
|
2645
|
+
"description": "The event id (a UUID) from query_signals."
|
|
2659
2646
|
}
|
|
2660
2647
|
},
|
|
2661
2648
|
"required": [
|
|
@@ -2672,51 +2659,32 @@ export const TOOLS = [
|
|
|
2672
2659
|
"anchor": {
|
|
2673
2660
|
"type": "object"
|
|
2674
2661
|
},
|
|
2675
|
-
"
|
|
2662
|
+
"facilities": {
|
|
2676
2663
|
"type": "array",
|
|
2677
2664
|
"items": {
|
|
2678
2665
|
"type": "object"
|
|
2679
2666
|
}
|
|
2680
2667
|
},
|
|
2681
|
-
"
|
|
2668
|
+
"places": {
|
|
2682
2669
|
"type": "array",
|
|
2683
2670
|
"items": {
|
|
2684
2671
|
"type": "object"
|
|
2685
2672
|
}
|
|
2686
2673
|
},
|
|
2687
|
-
"
|
|
2688
|
-
"type": "array",
|
|
2689
|
-
"items": {
|
|
2690
|
-
"type": "object"
|
|
2691
|
-
}
|
|
2692
|
-
},
|
|
2693
|
-
"hypotheses": {
|
|
2694
|
-
"type": "object"
|
|
2695
|
-
},
|
|
2696
|
-
"network": {
|
|
2674
|
+
"related": {
|
|
2697
2675
|
"type": "array",
|
|
2698
2676
|
"items": {
|
|
2699
2677
|
"type": "object"
|
|
2700
2678
|
}
|
|
2701
2679
|
},
|
|
2702
|
-
"
|
|
2680
|
+
"merged_in": {
|
|
2703
2681
|
"type": "array",
|
|
2704
2682
|
"items": {
|
|
2705
2683
|
"type": "object"
|
|
2706
2684
|
}
|
|
2707
2685
|
},
|
|
2708
|
-
"assessment": {
|
|
2709
|
-
"type": "object"
|
|
2710
|
-
},
|
|
2711
|
-
"insights": {
|
|
2712
|
-
"type": "object"
|
|
2713
|
-
},
|
|
2714
2686
|
"accounting": {
|
|
2715
2687
|
"type": "object"
|
|
2716
|
-
},
|
|
2717
|
-
"meta": {
|
|
2718
|
-
"type": "object",
|
|
2719
|
-
"description": "Query echo, token charge/balance (meta.tokens), and pagination where applicable."
|
|
2720
2688
|
}
|
|
2721
2689
|
},
|
|
2722
2690
|
"required": [
|
|
@@ -2889,43 +2857,6 @@ export const TOOLS = [
|
|
|
2889
2857
|
"destructiveHint": false
|
|
2890
2858
|
}
|
|
2891
2859
|
},
|
|
2892
|
-
{
|
|
2893
|
-
"name": "refine_location",
|
|
2894
|
-
"description": "Research one signal's location further and store a better coordinate if the sources genuinely narrow it. **Charged only if the precision improves.** `improved: false` is the common CORRECT outcome, not worth retrying.",
|
|
2895
|
-
"inputSchema": {
|
|
2896
|
-
"type": "object",
|
|
2897
|
-
"required": [
|
|
2898
|
-
"signal_id"
|
|
2899
|
-
],
|
|
2900
|
-
"properties": {
|
|
2901
|
-
"signal_id": {
|
|
2902
|
-
"type": "string",
|
|
2903
|
-
"description": "The signal id (UUID from query_signals) to research further."
|
|
2904
|
-
}
|
|
2905
|
-
}
|
|
2906
|
-
},
|
|
2907
|
-
"outputSchema": {
|
|
2908
|
-
"type": "object",
|
|
2909
|
-
"properties": {
|
|
2910
|
-
"summary": {
|
|
2911
|
-
"type": "string",
|
|
2912
|
-
"description": "One-line natural-language summary of the result, ready to relay to a user."
|
|
2913
|
-
},
|
|
2914
|
-
"result": {
|
|
2915
|
-
"type": "object"
|
|
2916
|
-
},
|
|
2917
|
-
"meta": {
|
|
2918
|
-
"type": "object",
|
|
2919
|
-
"description": "Query echo, token charge/balance (meta.tokens), and pagination where applicable."
|
|
2920
|
-
}
|
|
2921
|
-
}
|
|
2922
|
-
},
|
|
2923
|
-
"annotations": {
|
|
2924
|
-
"readOnlyHint": false,
|
|
2925
|
-
"openWorldHint": false,
|
|
2926
|
-
"destructiveHint": true
|
|
2927
|
-
}
|
|
2928
|
-
},
|
|
2929
2860
|
{
|
|
2930
2861
|
"name": "measure_index_series",
|
|
2931
2862
|
"description": "Measure a spectral index over an area scene by scene through the Sentinel-2 archive. **Call `estimate_only: true` first** — free, and returns the scene count, real date span and cost. At most 24 scenes, so a longer period is a SAMPLE. Cite the `attribution`.",
|
package/dist/index.js
CHANGED
|
@@ -21,7 +21,7 @@ import { Client } from '@modelcontextprotocol/sdk/client/index.js';
|
|
|
21
21
|
import { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/client/streamableHttp.js';
|
|
22
22
|
import { CallToolRequestSchema, GetPromptRequestSchema, ListPromptsRequestSchema, ListResourcesRequestSchema, ListResourceTemplatesRequestSchema, ListToolsRequestSchema, ReadResourceRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
|
|
23
23
|
import { PROMPTS, RESOURCES, RESOURCE_TEMPLATES, TOOLS } from './catalog.js';
|
|
24
|
-
const VERSION = '1.
|
|
24
|
+
const VERSION = '1.36.0';
|
|
25
25
|
const REMOTE_URL = new URL(process.env.OFFNADIR_DELTA_MCP_URL ?? 'https://offnadir-delta.com/api/v1/mcp');
|
|
26
26
|
/** Lazily-connected client to the hosted remote MCP server. */
|
|
27
27
|
let remote = null;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "offnadir-delta-mcp",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.36.0",
|
|
4
4
|
"description": "Local (stdio) MCP server for Off-Nadir Delta \u2014 live, geolocated world-event intelligence, a Daily World Brief, satellite-imagery search, and an OSINT/GEOINT analyst. Forwards to the hosted server with your API key.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|