offnadir-delta-mcp 1.4.0 → 1.6.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 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.4.0.
16
+ // Generated for Off-Nadir Delta MCP 1.6.0.
17
17
  export const TOOLS = [
18
18
  {
19
19
  "name": "query_signals",
@@ -1135,6 +1135,228 @@ export const TOOLS = [
1135
1135
  "openWorldHint": false,
1136
1136
  "destructiveHint": false
1137
1137
  }
1138
+ },
1139
+ {
1140
+ "name": "query_claims",
1141
+ "description": "Read the LEDGER of claims this key has been given — every factual assertion the Analyst made, with its evidence class (CONFIRMED / REPORTED / PARTY_CLAIM / ASSESSMENT), how many INDEPENDENT source families backed it, and the publishers. The point is the time axis: when a later answer restated the same assertion, the claim carries the link and says which way the evidence moved — restated_only surfaces those chains, and downgraded_only isolates the cases where a later answer was LESS sure than an earlier one, which is where this product contradicted itself. Use it to audit what you were told before acting on it, or to check whether an assertion has since weakened. Scoped to your own key; no other caller’s claims are visible. Free of token charges.",
1142
+ "inputSchema": {
1143
+ "type": "object",
1144
+ "properties": {
1145
+ "since": {
1146
+ "type": "string",
1147
+ "description": "Only claims asserted on or after this date (YYYY-MM-DD or ISO 8601)."
1148
+ },
1149
+ "evidence_class": {
1150
+ "type": "string",
1151
+ "enum": [
1152
+ "CONFIRMED",
1153
+ "REPORTED",
1154
+ "PARTY_CLAIM",
1155
+ "DISPUTED",
1156
+ "ASSESSMENT",
1157
+ "UNKNOWN"
1158
+ ],
1159
+ "description": "Restrict to one evidence class."
1160
+ },
1161
+ "restated_only": {
1162
+ "type": "boolean",
1163
+ "description": "Only claims that sit in a restatement chain."
1164
+ },
1165
+ "downgraded_only": {
1166
+ "type": "boolean",
1167
+ "description": "Only claims a later answer restated with WEAKER evidence — read these first."
1168
+ },
1169
+ "limit": {
1170
+ "type": "number",
1171
+ "minimum": 1,
1172
+ "maximum": 200,
1173
+ "description": "How many claims to return (default 50)."
1174
+ }
1175
+ },
1176
+ "required": []
1177
+ },
1178
+ "outputSchema": {
1179
+ "type": "object",
1180
+ "properties": {
1181
+ "summary": {
1182
+ "type": "string",
1183
+ "description": "One-line natural-language summary of the result, ready to relay to a user."
1184
+ },
1185
+ "claims": {
1186
+ "type": "array",
1187
+ "items": {
1188
+ "type": "object"
1189
+ }
1190
+ },
1191
+ "counts": {
1192
+ "type": "object"
1193
+ }
1194
+ },
1195
+ "required": [
1196
+ "claims"
1197
+ ]
1198
+ },
1199
+ "annotations": {
1200
+ "readOnlyHint": true,
1201
+ "openWorldHint": false,
1202
+ "destructiveHint": false
1203
+ }
1204
+ },
1205
+ {
1206
+ "name": "create_standing_order",
1207
+ "description": "Put an area under CONTINUOUS watch: save a question plus a bounding box and Delta re-answers it on a schedule, notifying only when the answer actually changed. Creating one is FREE. Each time it fires it runs ask_analyst and is metered like any Analyst question, so the cost is per CHANGE, not per check: a deterministic pass over the corpus decides whether anything new crossed the reporting bar, and quiet periods never invoke the model or charge anything. Returns projected_monthly_tokens_max — the ceiling if every single check fired — so the cost is visible before committing. Cadence and how many orders you may hold are set by your plan; the error says which limit you hit. Use it when the question is \"tell me when this changes\" rather than \"what is happening right now\".",
1208
+ "inputSchema": {
1209
+ "type": "object",
1210
+ "properties": {
1211
+ "bbox": {
1212
+ "type": "array",
1213
+ "items": {
1214
+ "type": "number"
1215
+ },
1216
+ "minItems": 4,
1217
+ "maxItems": 4,
1218
+ "description": "Area to watch, [west, south, east, north] in WGS84. Required — a global standing order would fire on everything."
1219
+ },
1220
+ "question": {
1221
+ "type": "string",
1222
+ "description": "The question to re-answer each time something changes. Omit for \"what changed in this area, and what does it mean?\"."
1223
+ },
1224
+ "name": {
1225
+ "type": "string",
1226
+ "description": "Label for the order (default \"Standing order\")."
1227
+ },
1228
+ "cadence": {
1229
+ "type": "string",
1230
+ "enum": [
1231
+ "daily",
1232
+ "weekly",
1233
+ "monthly"
1234
+ ],
1235
+ "description": "How often to CHECK (checking is free; only a fired check costs tokens). Default weekly. Faster cadences may require a higher plan."
1236
+ },
1237
+ "categories": {
1238
+ "type": "array",
1239
+ "items": {
1240
+ "type": "string"
1241
+ },
1242
+ "description": "Restrict the watch to these Delta categories (kinetic, armed_conflict, maritime, natural_disaster, infrastructure, aviation, humanitarian, protest, diplomacy)."
1243
+ },
1244
+ "min_geoint_score": {
1245
+ "type": "number",
1246
+ "description": "Reporting bar (0-10, default 6). Raise it to be told only about major developments."
1247
+ },
1248
+ "min_new_events": {
1249
+ "type": "number",
1250
+ "description": "How many new qualifying events must appear before a run is triggered (default 1)."
1251
+ },
1252
+ "notify_email": {
1253
+ "type": "boolean",
1254
+ "description": "Email the result when it fires (default true). Results are readable via list_standing_orders either way."
1255
+ }
1256
+ },
1257
+ "required": [
1258
+ "bbox"
1259
+ ]
1260
+ },
1261
+ "outputSchema": {
1262
+ "type": "object",
1263
+ "properties": {
1264
+ "summary": {
1265
+ "type": "string",
1266
+ "description": "One-line natural-language summary of the result, ready to relay to a user."
1267
+ },
1268
+ "order": {
1269
+ "type": "object"
1270
+ },
1271
+ "projected_monthly_tokens_max": {
1272
+ "type": "number"
1273
+ }
1274
+ },
1275
+ "required": [
1276
+ "order"
1277
+ ]
1278
+ },
1279
+ "annotations": {
1280
+ "readOnlyHint": false,
1281
+ "openWorldHint": false,
1282
+ "destructiveHint": false
1283
+ }
1284
+ },
1285
+ {
1286
+ "name": "list_standing_orders",
1287
+ "description": "List the standing orders on this key, with each one’s cadence, watched area, when it last checked, when it last actually fired, and how many consecutive checks found nothing (quiet_checks — a high number means the watch is not earning its place). Also returns how many orders the plan allows and how many remain. Free of token charges.",
1288
+ "inputSchema": {
1289
+ "type": "object",
1290
+ "properties": {},
1291
+ "required": []
1292
+ },
1293
+ "outputSchema": {
1294
+ "type": "object",
1295
+ "properties": {
1296
+ "summary": {
1297
+ "type": "string",
1298
+ "description": "One-line natural-language summary of the result, ready to relay to a user."
1299
+ },
1300
+ "orders": {
1301
+ "type": "array",
1302
+ "items": {
1303
+ "type": "object"
1304
+ }
1305
+ },
1306
+ "limits": {
1307
+ "type": "object"
1308
+ }
1309
+ },
1310
+ "required": [
1311
+ "orders"
1312
+ ]
1313
+ },
1314
+ "annotations": {
1315
+ "readOnlyHint": true,
1316
+ "openWorldHint": false,
1317
+ "destructiveHint": false
1318
+ }
1319
+ },
1320
+ {
1321
+ "name": "delete_standing_order",
1322
+ "description": "Delete a standing order by id, or pause/resume it instead by passing active=false/true. Pausing keeps the order and its history; deleting removes both. Neither costs tokens. A paused order still counts against the plan limit, so delete rather than pause when you want the slot back.",
1323
+ "inputSchema": {
1324
+ "type": "object",
1325
+ "properties": {
1326
+ "order_id": {
1327
+ "type": "string",
1328
+ "description": "The id returned by create_standing_order or list_standing_orders."
1329
+ },
1330
+ "active": {
1331
+ "type": "boolean",
1332
+ "description": "Omit to DELETE. Pass false to pause and true to resume, keeping the order."
1333
+ }
1334
+ },
1335
+ "required": [
1336
+ "order_id"
1337
+ ]
1338
+ },
1339
+ "outputSchema": {
1340
+ "type": "object",
1341
+ "properties": {
1342
+ "summary": {
1343
+ "type": "string",
1344
+ "description": "One-line natural-language summary of the result, ready to relay to a user."
1345
+ },
1346
+ "deleted": {
1347
+ "type": "string"
1348
+ },
1349
+ "order": {
1350
+ "type": "object"
1351
+ }
1352
+ }
1353
+ },
1354
+ "annotations": {
1355
+ "readOnlyHint": false,
1356
+ "openWorldHint": false,
1357
+ "destructiveHint": true,
1358
+ "idempotentHint": true
1359
+ }
1138
1360
  }
1139
1361
  ];
1140
1362
  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.4.0';
24
+ const VERSION = '1.6.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.4.0",
3
+ "version": "1.6.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": {