offnadir-delta-mcp 1.7.0 → 1.8.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/dist/catalog.js +151 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
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.8.0.
|
|
17
17
|
export const TOOLS = [
|
|
18
18
|
{
|
|
19
19
|
"name": "query_signals",
|
|
@@ -942,6 +942,14 @@ export const TOOLS = [
|
|
|
942
942
|
"idempotencyKey": {
|
|
943
943
|
"type": "string",
|
|
944
944
|
"description": "Optional at-most-once key. Re-sending the SAME key resolves to the SAME run: if it finished you get the brief with NO second charge; if it is still running you get its processing status. Strongly recommended — it makes a timeout recoverable. Use a fresh key to ask again."
|
|
945
|
+
},
|
|
946
|
+
"response_format": {
|
|
947
|
+
"type": "string",
|
|
948
|
+
"enum": [
|
|
949
|
+
"full",
|
|
950
|
+
"compact"
|
|
951
|
+
],
|
|
952
|
+
"description": "\"full\" (default) returns the prose brief alongside the structured result. \"compact\" omits the prose brief and returns only the structured result — which still carries the assembled structured_summary — so a completed run costs materially fewer context tokens."
|
|
945
953
|
}
|
|
946
954
|
},
|
|
947
955
|
"required": [
|
|
@@ -1048,6 +1056,14 @@ export const TOOLS = [
|
|
|
1048
1056
|
"job_id": {
|
|
1049
1057
|
"type": "string",
|
|
1050
1058
|
"description": "The job_id returned by ask_analyst."
|
|
1059
|
+
},
|
|
1060
|
+
"response_format": {
|
|
1061
|
+
"type": "string",
|
|
1062
|
+
"enum": [
|
|
1063
|
+
"full",
|
|
1064
|
+
"compact"
|
|
1065
|
+
],
|
|
1066
|
+
"description": "\"full\" (default) returns the prose brief alongside the structured result. \"compact\" omits the prose brief and returns only the structured result — which still carries the assembled structured_summary — so a re-fetch costs materially fewer context tokens."
|
|
1051
1067
|
}
|
|
1052
1068
|
},
|
|
1053
1069
|
"required": [
|
|
@@ -1357,6 +1373,140 @@ export const TOOLS = [
|
|
|
1357
1373
|
"destructiveHint": true,
|
|
1358
1374
|
"idempotentHint": true
|
|
1359
1375
|
}
|
|
1376
|
+
},
|
|
1377
|
+
{
|
|
1378
|
+
"name": "list_monitored_areas",
|
|
1379
|
+
"description": "List the places under continuous satellite measurement on this key (Delta Monitor), with each area’s metric, most recent value, change since the previous measurement, whether that value was flagged anomalous, and coverage — how many acquisitions were measured versus how many exist. Coverage window_total is null when the catalog total is UNKNOWN; null never means zero. Also returns how many areas the plan allows and how many remain. Free of token charges.",
|
|
1380
|
+
"inputSchema": {
|
|
1381
|
+
"type": "object",
|
|
1382
|
+
"properties": {},
|
|
1383
|
+
"required": []
|
|
1384
|
+
},
|
|
1385
|
+
"outputSchema": {
|
|
1386
|
+
"type": "object",
|
|
1387
|
+
"properties": {
|
|
1388
|
+
"summary": {
|
|
1389
|
+
"type": "string",
|
|
1390
|
+
"description": "One-line natural-language summary of the result, ready to relay to a user."
|
|
1391
|
+
},
|
|
1392
|
+
"areas": {
|
|
1393
|
+
"type": "array",
|
|
1394
|
+
"items": {
|
|
1395
|
+
"type": "object"
|
|
1396
|
+
}
|
|
1397
|
+
},
|
|
1398
|
+
"limits": {
|
|
1399
|
+
"type": "object"
|
|
1400
|
+
},
|
|
1401
|
+
"metering": {
|
|
1402
|
+
"type": "object"
|
|
1403
|
+
}
|
|
1404
|
+
},
|
|
1405
|
+
"required": [
|
|
1406
|
+
"areas"
|
|
1407
|
+
]
|
|
1408
|
+
},
|
|
1409
|
+
"annotations": {
|
|
1410
|
+
"readOnlyHint": true,
|
|
1411
|
+
"openWorldHint": false,
|
|
1412
|
+
"destructiveHint": false
|
|
1413
|
+
}
|
|
1414
|
+
},
|
|
1415
|
+
{
|
|
1416
|
+
"name": "get_monitored_area",
|
|
1417
|
+
"description": "Fetch one monitored area with its full measurement history — every acquisition that was measured, its value, and whether it was flagged anomalous. This is the time series behind the number that list_monitored_areas reports, so use it to answer \"is it going up\", \"when did it change\", or \"how unusual is today\". Anomaly flags come from a median-absolute-deviation test on the series, not a fixed threshold. Free of token charges.",
|
|
1418
|
+
"inputSchema": {
|
|
1419
|
+
"type": "object",
|
|
1420
|
+
"properties": {
|
|
1421
|
+
"area_id": {
|
|
1422
|
+
"type": "string",
|
|
1423
|
+
"description": "The area_id from list_monitored_areas. A metric’s polygon_id is also accepted and resolves to the same area."
|
|
1424
|
+
}
|
|
1425
|
+
},
|
|
1426
|
+
"required": [
|
|
1427
|
+
"area_id"
|
|
1428
|
+
]
|
|
1429
|
+
},
|
|
1430
|
+
"outputSchema": {
|
|
1431
|
+
"type": "object",
|
|
1432
|
+
"properties": {
|
|
1433
|
+
"summary": {
|
|
1434
|
+
"type": "string",
|
|
1435
|
+
"description": "One-line natural-language summary of the result, ready to relay to a user."
|
|
1436
|
+
},
|
|
1437
|
+
"area": {
|
|
1438
|
+
"type": "object"
|
|
1439
|
+
},
|
|
1440
|
+
"metering": {
|
|
1441
|
+
"type": "object"
|
|
1442
|
+
}
|
|
1443
|
+
},
|
|
1444
|
+
"required": [
|
|
1445
|
+
"area"
|
|
1446
|
+
]
|
|
1447
|
+
},
|
|
1448
|
+
"annotations": {
|
|
1449
|
+
"readOnlyHint": true,
|
|
1450
|
+
"openWorldHint": false,
|
|
1451
|
+
"destructiveHint": false
|
|
1452
|
+
}
|
|
1453
|
+
},
|
|
1454
|
+
{
|
|
1455
|
+
"name": "create_monitored_area",
|
|
1456
|
+
"description": "Put a place under continuous satellite measurement: pick an area and what to count, and every new Sentinel-1 / Sentinel-2 / VIIRS acquisition over it is measured automatically from then on. Use this when the question is about a quantity at a fixed place over time (\"how many ships are alongside\", \"how much has burned\", \"is the water receding\") rather than about events, which is create_standing_order. Creating is free; each automatic check costs a small number of tokens only when it finds new imagery.",
|
|
1457
|
+
"inputSchema": {
|
|
1458
|
+
"type": "object",
|
|
1459
|
+
"properties": {
|
|
1460
|
+
"bbox": {
|
|
1461
|
+
"type": "array",
|
|
1462
|
+
"items": {
|
|
1463
|
+
"type": "number"
|
|
1464
|
+
},
|
|
1465
|
+
"minItems": 4,
|
|
1466
|
+
"maxItems": 4,
|
|
1467
|
+
"description": "The area to measure, [west, south, east, north] in WGS84. Must be under 5,000 km² — measurement is per-pixel over the area, so a country-sized box is rejected rather than silently sampled."
|
|
1468
|
+
},
|
|
1469
|
+
"metric": {
|
|
1470
|
+
"type": "string",
|
|
1471
|
+
"description": "What to count. Plain words work: ships, fires, vegetation, water, burn, snow, built_up, moisture, night_lights. Index names are also accepted: ship_detection, fire_count, ndvi, evi, savi, ndmi, ndwi, mndwi, ndbi, ndsi, nbr, dnb, vv, vh, rvi, rfdi, cr. The sensor is chosen from the metric."
|
|
1472
|
+
},
|
|
1473
|
+
"name": {
|
|
1474
|
+
"type": "string",
|
|
1475
|
+
"description": "Label for the area (default \"Monitored area\")."
|
|
1476
|
+
},
|
|
1477
|
+
"start_date": {
|
|
1478
|
+
"type": "string",
|
|
1479
|
+
"description": "YYYY-MM-DD to begin the history from. Defaults to 30 days ago — a longer backfill measures more scenes and therefore costs more on the first check."
|
|
1480
|
+
}
|
|
1481
|
+
},
|
|
1482
|
+
"required": [
|
|
1483
|
+
"bbox",
|
|
1484
|
+
"metric"
|
|
1485
|
+
]
|
|
1486
|
+
},
|
|
1487
|
+
"outputSchema": {
|
|
1488
|
+
"type": "object",
|
|
1489
|
+
"properties": {
|
|
1490
|
+
"summary": {
|
|
1491
|
+
"type": "string",
|
|
1492
|
+
"description": "One-line natural-language summary of the result, ready to relay to a user."
|
|
1493
|
+
},
|
|
1494
|
+
"area": {
|
|
1495
|
+
"type": "object"
|
|
1496
|
+
},
|
|
1497
|
+
"metering": {
|
|
1498
|
+
"type": "object"
|
|
1499
|
+
}
|
|
1500
|
+
},
|
|
1501
|
+
"required": [
|
|
1502
|
+
"area"
|
|
1503
|
+
]
|
|
1504
|
+
},
|
|
1505
|
+
"annotations": {
|
|
1506
|
+
"readOnlyHint": false,
|
|
1507
|
+
"openWorldHint": false,
|
|
1508
|
+
"destructiveHint": false
|
|
1509
|
+
}
|
|
1360
1510
|
}
|
|
1361
1511
|
];
|
|
1362
1512
|
export const RESOURCES = [
|
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.8.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.8.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": {
|