offnadir-delta-mcp 1.22.0 → 1.25.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
- `37` tools · MCP server version `1.22.0` · [full reference](https://offnadir-delta.com/docs/mcp)
19
+ `38` tools · MCP server version `1.25.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
- 20 of the 37 tools cost nothing, so the first thing you run is free:
80
+ 21 of the 38 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.
@@ -148,6 +148,7 @@ Stand up continuous coverage and be told only when the answer changes. Creating
148
148
  | `list_watches` | The Watchlist: everything this account keeps watch on — areas under satellite measurement, areas under event watch (standing orders), and real-world events being tracked — aggregated as one list with a state bucket per watch: needs_attention (anomaly, error, or a notable development), changed_today (a meaningful change in the last 24 h), awaiting_data, or stable. | free |
149
149
  | `get_watch` | One watch end to end, in a single call: its target, current state, latest meaningful change, measurements with their recent series, standing-order questions, and — for an event watch — the event’s verification state, casualty/attribution fields, recent developments, imagery availability, and the full event thread (timeline + sources). | free |
150
150
  | `create_watch` | Add a target to the Watchlist. | free |
151
+ | `update_watch` | Rename a watch, or pause and resume it. | free |
151
152
  | `delete_watch` | Delete a watch by id. | free |
152
153
 
153
154
  ### Workspace
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.22.0.
16
+ // Generated for Off-Nadir Delta MCP 1.25.0.
17
17
  export const TOOLS = [
18
18
  {
19
19
  "name": "query_signals",
@@ -161,7 +161,7 @@ export const TOOLS = [
161
161
  "concise",
162
162
  "detailed"
163
163
  ],
164
- "description": "Per-signal field detail. \"concise\" (default) returns the key decision + GEOINT fields (id, date, category, title, location, lat/lng, severity/geoint scores, collection_priority, escalation, market, rs_level/rs_sensor, observability, observability_status, verification_status, geo_status, search_ready, article_count, independent_source_count, information_gain) — cheaper to scan. \"detailed\" returns the full Signal object (shape per the signals://schema resource)."
164
+ "description": "Per-signal field detail. \"concise\" (default) returns the key decision + GEOINT fields (id, date, category, title, location, lat/lng, severity/geoint scores, collection_priority, escalation, market, rs_level/rs_sensor, observability, observability_status, verification_status, the three verification axes (independence_status / event_verification_status / imagery_verification_status — one cannot stand for the others; signals return independence_status=not_assessed because outlet counts do not collapse syndication), geo_status, search_ready, article_count, independent_source_count, information_gain) — cheaper to scan. \"detailed\" returns the full Signal object (shape per the signals://schema resource)."
165
165
  }
166
166
  }
167
167
  },
@@ -635,7 +635,7 @@ export const TOOLS = [
635
635
  },
636
636
  "start_date": {
637
637
  "type": "string",
638
- "description": "Inclusive start date YYYY-MM-DD. Defaults to today; clamped to your plan history floor."
638
+ "description": "Inclusive start date YYYY-MM-DD. Defaults to today. Not clamped to a plan history floor on this surface — the corpus epoch is the only floor."
639
639
  },
640
640
  "end_date": {
641
641
  "type": "string",
@@ -712,7 +712,7 @@ export const TOOLS = [
712
712
  },
713
713
  "start_date": {
714
714
  "type": "string",
715
- "description": "Inclusive start date YYYY-MM-DD. Defaults to today; clamped to your plan history floor."
715
+ "description": "Inclusive start date YYYY-MM-DD. Defaults to today. Not clamped to a plan history floor on this surface — the corpus epoch is the only floor."
716
716
  },
717
717
  "end_date": {
718
718
  "type": "string",
@@ -1946,9 +1946,59 @@ export const TOOLS = [
1946
1946
  "destructiveHint": false
1947
1947
  }
1948
1948
  },
1949
+ {
1950
+ "name": "update_watch",
1951
+ "description": "Rename a watch, or pause and resume it. Pausing is not a display state over live billing: the bound resources actually stop — monitored areas stop being measured (and stop being charged), standing orders stop checking. Resuming restarts them, with standing orders due immediately, and counts again against the active-watch plan limit. Use this instead of delete_watch when the measurement history is worth keeping. Free of token charges.",
1952
+ "inputSchema": {
1953
+ "type": "object",
1954
+ "properties": {
1955
+ "watch_id": {
1956
+ "type": "string",
1957
+ "description": "The id from list_watches or create_watch."
1958
+ },
1959
+ "name": {
1960
+ "type": "string",
1961
+ "description": "New label for the watch."
1962
+ },
1963
+ "status": {
1964
+ "type": "string",
1965
+ "enum": [
1966
+ "active",
1967
+ "paused",
1968
+ "saved"
1969
+ ],
1970
+ "description": "\"paused\" stops the bound checks; \"active\" resumes them."
1971
+ },
1972
+ "notify_email": {
1973
+ "type": "boolean",
1974
+ "description": "Email on meaningful changes."
1975
+ }
1976
+ },
1977
+ "required": [
1978
+ "watch_id"
1979
+ ]
1980
+ },
1981
+ "outputSchema": {
1982
+ "type": "object",
1983
+ "properties": {
1984
+ "summary": {
1985
+ "type": "string",
1986
+ "description": "One-line natural-language summary of the result, ready to relay to a user."
1987
+ },
1988
+ "watch": {
1989
+ "type": "object"
1990
+ }
1991
+ }
1992
+ },
1993
+ "annotations": {
1994
+ "readOnlyHint": false,
1995
+ "openWorldHint": false,
1996
+ "destructiveHint": false
1997
+ }
1998
+ },
1949
1999
  {
1950
2000
  "name": "delete_watch",
1951
- "description": "Delete a watch by id. This deletes the watch AND its underlying resources — bound monitored areas (with their measurement history) and standing orders are removed, exactly as the in-app Watchlist does. An event watch has no underlying resource; only the watch is removed. To stop without losing anything, pause instead: PATCH /api/v1/watches/{watchId} with status \"paused\" (also resumable). Free of token charges.",
2001
+ "description": "Delete a watch by id. This deletes the watch AND its underlying resources — bound monitored areas (with their measurement history) and standing orders are removed, exactly as the in-app Watchlist does. An event watch has no underlying resource; only the watch is removed. To stop without losing anything, pause instead with update_watch (status \"paused\", also resumable). Free of token charges.",
1952
2002
  "inputSchema": {
1953
2003
  "type": "object",
1954
2004
  "properties": {
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.22.0';
24
+ const VERSION = '1.25.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.22.0",
3
+ "version": "1.25.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": {