offnadir-delta-mcp 1.31.0 → 1.32.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 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
- `42` tools · MCP server version `1.31.0` · [full reference](https://offnadir-delta.com/docs/mcp)
19
+ `41` tools · MCP server version `1.32.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 42 tools cost nothing, so the first thing you run is free:
80
+ 23 of the 41 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.
@@ -116,7 +116,6 @@ Whether a satellite can resolve it, which one, and when it next passes.
116
116
  | `rank_imaging_priority` | 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. | 1 tok |
117
117
  | `survey_observable_events` | Which events a sensor can actually RESOLVE, over the FULL set. | 1 tok |
118
118
  | `predict_satellite_passes` | WHEN a place can next be imaged and by WHAT: 13 free-systematic and commercial-taskable families. | 2 tok |
119
- | `test_hypotheses` | Given competing statements, the observation that would REFUTE the most — and those that would refute none. | 3 tok |
120
119
  | `lookup_elevation` | Terrain height from the Copernicus DEM GLO-30 for a point, bbox or polygon, with relief — the number that governs SAR layover and shadow. | free |
121
120
  | `analyze_terrain` | Compute FROM the terrain. | free |
122
121
 
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.31.0.
16
+ // Generated for Off-Nadir Delta MCP 1.32.0.
17
17
  export const TOOLS = [
18
18
  {
19
19
  "name": "query_signals",
@@ -1457,93 +1457,6 @@ export const TOOLS = [
1457
1457
  "destructiveHint": false
1458
1458
  }
1459
1459
  },
1460
- {
1461
- "name": "test_hypotheses",
1462
- "description": "Given competing statements, the observation that would REFUTE the most — and those that would refute none. **The logic runs one way**: an ABSENT observable refutes every statement requiring it; a PRESENT one refutes nothing.",
1463
- "inputSchema": {
1464
- "type": "object",
1465
- "properties": {
1466
- "hypotheses": {
1467
- "type": "array",
1468
- "items": {
1469
- "type": "string"
1470
- },
1471
- "minItems": 2,
1472
- "maxItems": 8,
1473
- "description": "Two to eight competing statements, one assertion each (<=500 chars)."
1474
- },
1475
- "mode": {
1476
- "type": "string",
1477
- "enum": [
1478
- "competing",
1479
- "joint"
1480
- ],
1481
- "description": "`competing` (default): an observable required by ALL is useless. `joint`: one required by all is BEST."
1482
- },
1483
- "event_id": {
1484
- "type": "number",
1485
- "description": "Test the standing claims about this event; restated claims are excluded."
1486
- }
1487
- },
1488
- "required": []
1489
- },
1490
- "outputSchema": {
1491
- "type": "object",
1492
- "properties": {
1493
- "summary": {
1494
- "type": "string",
1495
- "description": "One-line natural-language summary of the result, ready to relay to a user."
1496
- },
1497
- "meta": {
1498
- "type": "object",
1499
- "description": "Query echo, token charge/balance (meta.tokens), and pagination where applicable."
1500
- },
1501
- "hypotheses": {
1502
- "type": "array",
1503
- "items": {
1504
- "type": "object"
1505
- }
1506
- },
1507
- "best": {
1508
- "type": "object"
1509
- },
1510
- "discriminators": {
1511
- "type": "array",
1512
- "items": {
1513
- "type": "object"
1514
- }
1515
- },
1516
- "no_diagnostic_value": {
1517
- "type": "array",
1518
- "items": {
1519
- "type": "object"
1520
- }
1521
- },
1522
- "undecomposable": {
1523
- "type": "array",
1524
- "items": {
1525
- "type": "string"
1526
- }
1527
- },
1528
- "no_discriminator_reason": {
1529
- "type": "string"
1530
- },
1531
- "note": {
1532
- "type": "string"
1533
- }
1534
- },
1535
- "required": [
1536
- "summary",
1537
- "discriminators",
1538
- "note"
1539
- ]
1540
- },
1541
- "annotations": {
1542
- "readOnlyHint": false,
1543
- "openWorldHint": false,
1544
- "destructiveHint": true
1545
- }
1546
- },
1547
1460
  {
1548
1461
  "name": "query_developments",
1549
1462
  "description": "What actually CHANGED about the events in an area, not which articles are new. Each change is labelled `world` (the event's own state moved) or `measurement` (what we can see moved).",
@@ -2266,27 +2179,6 @@ export const TOOLS = [
2266
2179
  "type": "object"
2267
2180
  }
2268
2181
  },
2269
- "discriminators": {
2270
- "type": "array",
2271
- "items": {
2272
- "type": "object"
2273
- }
2274
- },
2275
- "no_diagnostic_value": {
2276
- "type": "array",
2277
- "items": {
2278
- "type": "object"
2279
- }
2280
- },
2281
- "undecomposable": {
2282
- "type": "array",
2283
- "items": {
2284
- "type": "string"
2285
- }
2286
- },
2287
- "no_discriminator_reason": {
2288
- "type": "string"
2289
- },
2290
2182
  "collection_options": {
2291
2183
  "type": "object"
2292
2184
  },
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.31.0';
24
+ const VERSION = '1.32.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.31.0",
3
+ "version": "1.32.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": {