World Monitor
REMOTE · WORLDMONITOR.APP · SCANNED OCT 2
Live markets, conflicts, country risk, chokepoints, energy, and China decision signals. 86 tools.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security97
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- The endpoint enforces authorisation, advertised via RFC 9728 protected-resource metadata. View diagnostics → Pass
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
- DNSSEC is configured correctly; the domain's records validate against the full chain to the root. View diagnostics → Pass
- The authorisation server offers only Dynamic Client Registration (RFC 7591), which MCP 2026-07-28 deprecated in favour of Client ID Metadata Documents. View diagnostics → Partial
Transport & Reachability0
- Transport blocked by authentication: the endpoint requires auth we don't have to verify streamable-http. See how to fix → View diagnostics → Unverified
Schema Quality & AI Usability0
- Schema blocked by authentication: the endpoint requires auth we don't have to read it. See how to fix → Unverified
Stability & Change Management0
- Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage0
- Tool coverage blocked by authentication: the endpoint requires auth we don't have to read its tools.Unverified
Tool Safety0
- Tool safety blocked by authentication: the endpoint requires auth we don't have to read its tools.Unverified
Capabilities0
- Capabilities blocked by authentication: the endpoint requires auth we don't have to read them. See how to fix → Unverified
Unverified: 6 categories
Categories scored 0 because we could not verify them: authentication we do not have, an unreachable endpoint, or not enough scan history. We only credit what we can confirm. Claim this server and supply a read-only token to verify it and lift the score.
How do I install the World Monitor MCP server?
World Monitor is a hosted endpoint at https://worldmonitor.app/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · worldmonitor.app
claude mcp add --transport http app-worldmonitor-mcp 'https://worldmonitor.app/mcp'
{
"mcpServers": {
"app-worldmonitor-mcp": {
"url": "https://worldmonitor.app/mcp"
}
}
} {
"servers": {
"app-worldmonitor-mcp": {
"type": "http",
"url": "https://worldmonitor.app/mcp"
}
}
} [mcp_servers.app-worldmonitor-mcp] url = "https://worldmonitor.app/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"app-worldmonitor-mcp": {
"type": "remote",
"url": "https://worldmonitor.app/mcp",
"enabled": true
}
}
} openclaw mcp add app-worldmonitor-mcp --url 'https://worldmonitor.app/mcp' --transport streamable-http
mcp_servers:
app-worldmonitor-mcp:
url: "https://worldmonitor.app/mcp" {
"McpServers": {
"app-worldmonitor-mcp": {
"Transport": "http",
"Url": "https://worldmonitor.app/mcp"
}
}
} assistant mcp add app-worldmonitor-mcp -t streamable-http -u 'https://worldmonitor.app/mcp'
{
"mcpServers": {
"app-worldmonitor-mcp": {
"type": "http",
"url": "https://worldmonitor.app/mcp"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 28 Sept 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 25 Sept 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 18 Sept 26 −54
- Endpoint reachability: reachable → behind authorisation ▼ security
- Stability: pass → unverified ▼ security
- Tool safety: pass → unverified ▼ security
- Transport: pass → unverified ▼ security
- Authorization: The endpoint enforces authorisation, advertised via RFC 9728 protected-resource metadata. security
- Capabilities: fail → unverified ▼ functional
- Tool coverage: 100 → unverified ▼ functional
- Schema quality: 100 → unverified ▼ functional
- 16 Sept 26 0
- “get_cyber_threats” reworded the description of “min_severity” cosmetic
1 cosmetic change on this day. Switch on “Show cosmetic changes” to see it.
- 11 Sept 26 0
- “get_climate_data” reworded the description of “country” cosmetic
- “get_country_macro” reworded the description of “countries” cosmetic
- “get_cyber_threats” reworded the description of “country” cosmetic
- “get_displacement_data” reworded the description of “countries” cosmetic
- “get_economic_data” reworded the description of “country” cosmetic
- “get_energy_intelligence” reworded the description of “country” cosmetic
- “get_eu_housing_cycle” reworded the description of “countries” cosmetic
- “get_eu_industrial_production” reworded the description of “countries” cosmetic
- “get_eu_quarterly_gov_debt” reworded the description of “countries” cosmetic
- “get_focal_points” reworded the description of “country_code” cosmetic
- “get_health_signals” reworded the description of “country” cosmetic
- “get_news_intelligence” reworded the description of “country” cosmetic
- “get_sanctions_data” reworded the description of “country” cosmetic
- “get_tariff_trends” reworded the description of “country” cosmetic
14 cosmetic changes on this day. Switch on “Show cosmetic changes” to see them.
- 8 Sept 26 0
- Server version: 1.19.0 → 1.20.0 functional
- New tool “get_country_coverage” functional
- 5 Sept 26 0
- The server rewrote its instructions, which are the text every model session reads security
- Server version: 1.18.0 → 1.19.0 functional
- “get_chokepoint_dependencies” added an optional parameter “jmespath” cosmetic
- “get_resilience_indicators” added an optional parameter “jmespath” cosmetic
- “get_supply_vulnerabilities” added an optional parameter “jmespath” cosmetic
- 4 Sept 26 +6
- Judged manipulation: unverified → pass ▲ security
- Schema quality: unverified → good ▲ functional
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 2 Oct 2026 · Probed https://worldmonitor.app/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=worldmonitor.app | CN=WE1,O=Google Trust Services,C=US | 9 Aug 2026 | 7 Nov 2026 | ECDSA 256 | ECDSA-SHA256 | eb17c4c42f29cd991367f8d489d0b8b8 |
| SANs: worldmonitor.app, railway-reconcile-control.worldmonitor.app, *.railway-reconcile-control.worldmonitor.app | ||||||
| CN=WE1,O=Google Trust Services,C=US (CA) | CN=GTS Root R4,O=Google Trust Services LLC,C=US | 13 Dec 2023 | 20 Feb 2029 | ECDSA 256 | ECDSA-SHA384 | 7ff31977972c224a76155d13b6d685e3 |
| CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) | CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE | 15 Nov 2023 | 28 Jan 2028 | ECDSA 384 | SHA256-RSA | 7fe530bf331343bedd821610493d8a1b |
Background: What to check on a remote MCP endpoint →
DNSSEC secure
Validation of worldmonitor.app. — Secure
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| app. | present | 23684 | 8 | Verified |
| worldmonitor.app. | present | 2371 | 13 | Verified |
| worldmonitor.app. | Verified address RRset verified with the apex keys |
Authentication Enforced and verified
The endpoint asked for a token and published valid RFC 9728 metadata describing how to get one.
| Result | Enforced and verified |
|---|---|
| Enforced | On connection |
| HTTP status | 401 |
WWW-Authenticate challenge Bearer realm="worldmonitor", resource_metadata="https://worldmonitor.app/.well-known/oauth-protected-resource/mcp"
Bearer realm="worldmonitor", resource_metadata="https://worldmonitor.app/.well-known/oauth-protected-resource/mcp" | Header | Value |
|---|---|
| strict-transport-security | max-age=63072000; includeSubDomains; preload |
| content-security-policy | default-src 'self'; connect-src 'self' https: wss: blob: data: https://*.ingest.sentry.io https://*.ingest.us.sentry.io; img-src 'self' data: blob: https:; style-src 'self' 'unsafe-inline'; script-src 'self' 'strict-dynamic' 'nonce-wm-static-bootstrap' 'sha256-h0RiSjzitWmlVHuHxDHV1z/h7io4rveTmT0yR7CKaJ0=' 'sha256-5Z9IhMFGUf29PVDaWoiTpwEg7J7Q4r4F49rLS77PJm0=' 'sha256-Z5TaQuwFMHlxoFSQYuTWfxuPE5RUOpVsZOttUGCcRNE=' 'sha256-Jgh3W4Qj3HWZPVSti0C073yuiaz611LO8OZRUCsN0x8=' 'sha256-llBxZlyh3eu6gbNvZXaeD9oZE2jgTvnh72FEO/GDErQ=' 'sha256-qBy8dsjFg+wfik0vT6vqHdUfbfSdoK+3noanAXUt4mk=' 'sha256-sMkhxXs3qUW2IR01a4d3tL1e2XQV0XUwxXAeL31nDjM=' 'wasm-unsafe-eval'; worker-src 'self' blob:; font-src 'self' data:; media-src 'self' data: blob: https:; frame-src 'self' https://www.worldmonitor.app https://worldmonitor.app https://tech.worldmonitor.app https://finance.worldmonitor.app https://commodity.worldmonitor.app https://happy.worldmonitor.app https://energy.worldmonitor.app https://www.youtube.com https://www.youtube-nocookie.com |
| x-content-type-options | nosniff |
| x-frame-options | SAMEORIGIN |
| referrer-policy | strict-origin-when-cross-origin |
| permissions-policy | camera=(), microphone=(), geolocation=(self), accelerometer=(), autoplay=(self "https://www.youtube.com" "https://www.youtube-nocookie.com"), bluetooth=(), display-capture=(), encrypted-media=(self "https://www.youtube.com" "https://www.youtube-nocookie.com"), gyroscope=(), hid=(), idle-detection=(), magnetometer=(), midi=(), payment=(self "https://checkout.dodopayments.com" "https://test.checkout.dodopayments.com" "https://pay.google.com" "https://hooks.stripe.com" "https://js.stripe.com"), picture-in-picture=(self "https://www.youtube.com" "https://www.youtube-nocookie.com" "https://challenges.cloudflare.com"), unload=(*), screen-wake-lock=(), serial=(), usb=(), xr-spatial-tracking=("https://challenges.cloudflare.com"), tools=(self) |
| www-authenticate | Bearer realm="worldmonitor", resource_metadata="https://worldmonitor.app/.well-known/oauth-protected-resource/mcp" |
Protected resource metadata
| Document | https://worldmonitor.app/.well-known/oauth-protected-resource/mcp |
|---|---|
| Retrieved | Yes |
| Resource | https://worldmonitor.app/mcp |
| Authorisation server | https://worldmonitor.app |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://worldmonitor.app/mcp | Auth required | 401 | |
| http (plaintext) | http://worldmonitor.app/mcp | HTTPS enforced | 301 | https://worldmonitor.app/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
analyze_situation ~130
AI geopolitical situation analysis (DeductionPanel).
| Name | Type | Req | Description |
|---|---|---|---|
| context | string | – | Optional additional geo-political context to include in the analysis |
| framework | string | – | Optional analytical framework instructions to shape the analysis lens (e.g. Ray Dalio debt cycle, PMESII-PT, Porter's Five Forces) |
| jmespath | string | – | Optional JMESPath projection applied to the response. See initialize.instructions for grammar and examples. |
| query | string | yes | The question or situation to analyze, e.g. "What are the implications of the Taiwan strait escalation for semiconductor supply chains?" |
| Name | Type | Req | Description |
|---|---|---|---|
| analysis | string | – | Alternate naming for the body. |
| confidence | number|string|null | – | – |
| deduction | string | – | LLM-generated analytical deduction. |
| framework | string | – | – |
| generatedAt | string|number|null | – | – |
| model | string | – | – |
| provider | string | – | – |
| signals | array|object|null | – | – |
No examples provided.
classify_event ~84
Classify a supplied news headline or short text into a threat category and severity via the enum-validated WorldMonitor
| Name | Type | Req | Description |
|---|---|---|---|
| jmespath | string | – | Optional JMESPath projection applied to the response. See initialize.instructions for grammar and examples. |
| text | string | yes | Headline or short excerpt to classify (1-500 characters). Longer input is rejected, not truncated. |
| Name | Type | Req | Description |
|---|---|---|---|
| classification | object|null | yes | null when the classifier could not produce an enum-valid result for this text. |
| error | string | – | Present instead of a result when input validation fails. |
No examples provided.
describe_tool ~60
Return the full uncompressed definition of one tool by name.
| Name | Type | Req | Description |
|---|---|---|---|
| jmespath | string | – | Optional JMESPath projection applied to the response. See initialize.instructions for grammar and examples. |
| tool_name | string | yes | Exact tool name from tools/list. |
| Name | Type | Req | Description |
|---|---|---|---|
| annotations | object | – | – |
| available | array | – | – |
| description | string | – | – |
| error | string | – | Present only on user-input failure. |
| hint | string | – | – |
| inputSchema | object | – | – |
| name | string | – | – |
| outputSchema | object | – | – |
| requested | string | – | – |
No examples provided.
extract_entities ~272
Extract named entities deterministically — registry entities (companies, indices, commodities, crypto, sectors, countr
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | When text is omitted, Restrict to one category from the selected digest variant. full: politics, us, europe, middleeast, tech, ai, finance, commodities, gov, africa, latam, asia, energy, thinktanks,… |
| jmespath | string | – | Optional JMESPath projection applied to the response. See initialize.instructions for grammar and examples. |
| limit | integer | – | Maximum entities per list. Defaults to 20. |
| text | string | – | Optional text to extract from (max 2048 characters; longer input is rejected). When omitted, the tool aggregates entities across recent headlines. |
| variant | string | – | Headline digest variant used when text is omitted. Defaults to full; use tech for Tech dashboard categories. |
| Name | Type | Req | Description |
|---|---|---|---|
| category | string|null | – | Applied digest category filter in headlines mode; null when scanning every category. Omitted in text mode. |
| digestCoverage | object | – | – |
| entities | array | yes | Registry-matched entities. In text mode each match carries matchType/matchedText/confidence; in headlines mode entities aggregate to mentionCount/avgConfidence. |
| error | string | – | Present instead of a result when input validation fails. |
| generatedAt | string | – | Digest snapshot time (headlines mode only). |
| headlineCount | number | – | Headlines scanned (headlines mode only). |
| mode | string | yes | "text" when input text was supplied, "headlines" when aggregating the digest. |
| note | string | – | Present in headlines mode when category did not match any digest key (typo or missing bucket). |
| patternEntities | array | yes | – |
| variant | string | – | Applied digest variant in headlines mode. Omitted in text mode. |
No examples provided.
generate_forecasts ~103
Generate live AI geopolitical and economic forecasts.
| Name | Type | Req | Description |
|---|---|---|---|
| domain | string | – | Forecast domain: "geopolitical", "economic", "military", "climate", or empty for all domains |
| jmespath | string | – | Optional JMESPath projection applied to the response. See initialize.instructions for grammar and examples. |
| region | string | – | Geographic region filter, e.g. "Middle East", "Europe", "Asia Pacific", or empty for global |
| Name | Type | Req | Description |
|---|---|---|---|
| forecasts | array | – | – |
| generatedAt | string|number|null | – | – |
| model | string | – | – |
| provider | string | – | – |
No examples provided.
get_airspace ~102
Live ADS-B aircraft over a country.
| Name | Type | Req | Description |
|---|---|---|---|
| country_code | string | yes | ISO 3166-1 alpha-2 code (e.g. "IQ"), alpha-3 code ("IRQ"), or English country name ("Iraq") |
| jmespath | string | – | Optional JMESPath projection applied to the response. See initialize.instructions for grammar and examples. |
| type | string | – | Filter: all flights (default), civilian only, or military only |
| Name | Type | Req | Description |
|---|---|---|---|
| bounding_box | object | – | – |
| civilian_count | number | – | – |
| civilian_flights | array | – | – |
| country_code | string | – | – |
| error | string | – | Present only on unknown country_code. |
| military_count | number | – | – |
| military_flights | array | – | – |
| partial | boolean | – | True if one of the two upstream sources failed. |
| source | string | – | – |
| updated_at | string | – | – |
| warnings | array | – | – |
No examples provided.
get_alert_digest ~72
Cross-domain alert digest: everything that tripped a threshold today, in one rollup.
| Name | Type | Req | Description |
|---|---|---|---|
| jmespath | string | – | Optional JMESPath projection applied to the response. See initialize.instructions for grammar and examples. |
| view | string | – | today lists current threshold trips (default); weekly adds trend context. |
| Name | Type | Req | Description |
|---|---|---|---|
| cached_at | string|null | yes | Oldest fetch time across the contributing feeds. |
| data | object | yes | – |
| failed_inputs | array | – | Subset of unavailable_inputs whose Redis read failed rather than returning a genuine miss. |
| stale | boolean | yes | True when any contributing cache key fails its freshness contract: fetched longer ago than its per-key maxStaleMin budget, below a declared minRecordCount, or — for keys that declare a content-age co… |
| unavailable_inputs | array | – | Required cache keys that were missing or unreadable; their contribution is not treated as quiet. |
No examples provided.
get_aviation_status ~204
Airport delays, NOTAM airspace closures, and tracked military aircraft.
| Name | Type | Req | Description |
|---|---|---|---|
| country | string | – | Filter to one country by name (case-insensitive substring, e.g. "united states"). |
| disrupted_only | boolean | – | Drop airports with severity "normal" — keep only airports actually experiencing delays/closures. The bootstrap lists every monitored airport, so most rows are non-events without this. |
| iata | string | – | Filter to a single airport by IATA code (e.g. "JFK"). |
| jmespath | string | – | Optional JMESPath projection applied to the response. See initialize.instructions for grammar and examples. |
| limit | number | – | Cap the alert list to at most this many items (default 30, pass 0 for no cap). |
| summary | boolean | – | Return counts + 3-item samples instead of full lists. Useful when you only need shape/size or want to budget context before drilling in. |
| Name | Type | Req | Description |
|---|---|---|---|
| activationUnknown | boolean | – | Optional. True when an activation marker this tool consults could not be read, so `stale` was computed without knowing whether the producer has ever published. Distinguishes an unreadable marker from… |
| cached_at | string|null | yes | ISO-8601 timestamp of the OLDEST contributing cache key, or null when no valid seed-meta is present. |
| contentFreshnessPendingUntil | string | – | Optional ISO-8601 deadline while a cleanly absent content-freshness block is temporarily covered by deployment-order grace. |
| data | object | yes | – |
| stale | boolean | yes | True when any contributing cache key fails its freshness contract: fetched longer ago than its per-key maxStaleMin budget, below a declared minRecordCount, or — for keys that declare a content-age co… |
No examples provided.
get_china_decision_signals ~56
Return the bounded six-domain China decision-signal snapshot used by the public country summary.
| Name | Type | Req | Description |
|---|---|---|---|
| jmespath | string | – | Optional JMESPath projection applied to the response. See initialize.instructions for grammar and examples. |
| Name | Type | Req | Description |
|---|---|---|---|
| access | object | yes | – |
| generatedAt | string | yes | – |
| groups | array | yes | – |
| schemaVersion | integer | yes | – |
No examples provided.
get_chokepoint_dependencies ~92
An absent score means insufficient coverage, never zero risk.
| Name | Type | Req | Description |
|---|---|---|---|
| chokepoint_id | string | yes | Canonical chokepoint id, such as hormuz_strait or malacca_strait. |
| jmespath | string | – | Optional JMESPath projection applied to the response. See initialize.instructions for grammar and examples. |
| page_size | integer | – | Maximum dependencies. Defaults to 25. |
| Name | Type | Req | Description |
|---|---|---|---|
| chokepoint | string | yes | – |
| chokepointId | string | yes | – |
| dependencies | array | yes | – |
| generatedAt | string | yes | – |
| methodologyVersion | string | yes | – |
| upstreamUnavailable | boolean | yes | – |
No examples provided.
get_chokepoint_status ~258
Live maritime chokepoint status: per-chokepoint vessel transit counts (10-min cadence), rolling transit summaries, per-p
| Name | Type | Req | Description |
|---|---|---|---|
| chokepoint | string | – | Filter to one chokepoint — matches by case-insensitive substring across the differing identifiers used by each dataset (e.g. "hormuz" matches "hormuz_strait", "Strait of Hormuz"). |
| dataset | array | – | Restrict the response to one or more sub-datasets. Omit for the full bundle. |
| jmespath | string | – | Optional JMESPath projection applied to the response. See initialize.instructions for grammar and examples. |
| limit | number | – | Cap the chokepoint-baselines list and the _countries ISO2 index to at most this many items (default 30, pass 0 for no cap). Keyed-object maps (transit-summaries, chokepoint_transits, ref, chokepoint-… |
| summary | boolean | – | Return counts + 3-item samples instead of full lists. Useful when you only need shape/size or want to budget context before drilling in. |
| Name | Type | Req | Description |
|---|---|---|---|
| activationUnknown | boolean | – | Optional. True when an activation marker this tool consults could not be read, so `stale` was computed without knowing whether the producer has ever published. Distinguishes an unreadable marker from… |
| cached_at | string|null | yes | ISO-8601 timestamp of the OLDEST contributing cache key, or null when no valid seed-meta is present. |
| contentFreshnessPendingUntil | string | – | Optional ISO-8601 deadline while a cleanly absent content-freshness block is temporarily covered by deployment-order grace. |
| data | object | yes | – |
| stale | boolean | yes | True when any contributing cache key fails its freshness contract: fetched longer ago than its per-key maxStaleMin budget, below a declared minRecordCount, or — for keys that declare a content-age co… |
No examples provided.
get_climate_data ~214
Climate intelligence: temperature/precipitation anomalies (vs 30-year WMO normals), climate-relevant disaster alerts (Re
| Name | Type | Req | Description |
|---|---|---|---|
| country | string | – | Filter the country-tagged datasets (climate disasters, air-quality stations) to one ISO 3166-1 alpha-2 code. Country names and alpha-3 codes are accepted; unresolved inputs return Invalid params. |
| dataset | array | – | Restrict the response to one or more climate sub-datasets. Omit for the full bundle. |
| jmespath | string | – | Optional JMESPath projection applied to the response. See initialize.instructions for grammar and examples. |
| limit | number | – | Cap each list dataset (anomalies, disasters, stations, news, alerts) to at most this many items (default 30, pass 0 for no cap). |
| summary | boolean | – | Return counts + 3-item samples instead of full lists. Useful when you only need shape/size or want to budget context before drilling in. |
| Name | Type | Req | Description |
|---|---|---|---|
| activationUnknown | boolean | – | Optional. True when an activation marker this tool consults could not be read, so `stale` was computed without knowing whether the producer has ever published. Distinguishes an unreadable marker from… |
| cached_at | string|null | yes | ISO-8601 timestamp of the OLDEST contributing cache key, or null when no valid seed-meta is present. |
| contentFreshnessPendingUntil | string | – | Optional ISO-8601 deadline while a cleanly absent content-freshness block is temporarily covered by deployment-order grace. |
| data | object | yes | – |
| stale | boolean | yes | True when any contributing cache key fails its freshness contract: fetched longer ago than its per-key maxStaleMin budget, below a declared minRecordCount, or — for keys that declare a content-age co… |
No examples provided.
get_commodity_geo ~95
Global mining sites with coordinates, operator, mineral type, and production status.
| Name | Type | Req | Description |
|---|---|---|---|
| country | string | – | Filter by country name (e.g. "Australia", "Chile") |
| jmespath | string | – | Optional JMESPath projection applied to the response. See initialize.instructions for grammar and examples. |
| mineral | string | – | Filter by mineral type (e.g. "Gold", "Copper", "Lithium") |
| Name | Type | Req | Description |
|---|---|---|---|
| sites | array | yes | – |
| total | number | yes | – |
No examples provided.
get_company_intelligence ~285
Per-company corporate intelligence from SEC EDGAR and market data.
| Name | Type | Req | Description |
|---|---|---|---|
| end_date | string | – | filings-search only: latest filing date (YYYY-MM-DD). |
| forms | string | – | filings-search only: comma-separated form filter, such as "8-K" or "10-K,10-Q". |
| item_code | string | – | material-events only: filter to one 8-K item code, such as "5.02". |
| jmespath | string | – | Optional JMESPath projection applied to the response. See initialize.instructions for grammar and examples. |
| limit | integer | – | Result cap. Honored up to 25 for filings-search and up to 100 for material-events; a value above the view's own maximum is rejected rather than silently clamped. Ignored by the enrichment and signals… |
| name | string | – | Company name fallback when no ticker is known; case-insensitive exact SEC title match only, and only when that title maps to a single CIK. Prefer ticker. |
| query | string | – | filings-search only: full-text query. Required for that view. |
| start_date | string | – | filings-search only: earliest filing date (YYYY-MM-DD). |
| ticker | string | – | Exchange ticker symbol, such as AAPL. Preferred company key for enrichment and signals. |
| view | string | – | Defaults to enrichment. |
| Name | Type | Req | Description |
|---|---|---|---|
| enrichment | object | – | – |
| error | string | – | Present only on user-input failure. |
| events | object | – | – |
| search | object | – | – |
| signals | object | – | – |
| view | string | yes | – |
No examples provided.
get_conflict_events ~189
Active armed conflict events (UCDP, Iran), unrest events with geo-coordinates, and country risk scores.
| Name | Type | Req | Description |
|---|---|---|---|
| country | string | – | Filter to one country — matches the country name on conflict/unrest events and the ISO 3166-1 alpha-2 region code on risk scores (case-insensitive). |
| jmespath | string | – | Optional JMESPath projection applied to the response. See initialize.instructions for grammar and examples. |
| limit | number | – | Cap each event list to at most this many items (default 30, pass 0 for no cap). |
| min_fatalities | number | – | Drop events below this fatality count (UCDP deathsBest / unrest fatalities). |
| summary | boolean | – | Return counts + 3-item samples instead of full lists. Useful when you only need shape/size or want to budget context before drilling in. |
| Name | Type | Req | Description |
|---|---|---|---|
| activationUnknown | boolean | – | Optional. True when an activation marker this tool consults could not be read, so `stale` was computed without knowing whether the producer has ever published. Distinguishes an unreadable marker from… |
| cached_at | string|null | yes | ISO-8601 timestamp of the OLDEST contributing cache key, or null when no valid seed-meta is present. |
| contentFreshnessPendingUntil | string | – | Optional ISO-8601 deadline while a cleanly absent content-freshness block is temporarily covered by deployment-order grace. |
| data | object | yes | – |
| stale | boolean | yes | True when any contributing cache key fails its freshness contract: fetched longer ago than its per-key maxStaleMin budget, below a declared minRecordCount, or — for keys that declare a content-age co… |
No examples provided.
get_consumer_prices ~87
Per-country consumer-prices intelligence: 30-day overview, category-level inflation, retailer spread (essentials basket)
| Name | Type | Req | Description |
|---|---|---|---|
| country_code | string | yes | ISO 3166-1 alpha-2 country code. Currently supported: AE (case-insensitive). |
| jmespath | string | – | Optional JMESPath projection applied to the response. See initialize.instructions for grammar and examples. |
| Name | Type | Req | Description |
|---|---|---|---|
| cached_at | string|null | – | – |
| country_code | string | – | – |
| data | object | – | – |
| error | string | – | Present only on user-input failure (missing/unknown country_code). |
| stale | boolean | – | – |
No examples provided.
get_country_brief ~179
AI-generated per-country intelligence brief.
| Name | Type | Req | Description |
|---|---|---|---|
| allow_stale | boolean | – | Ground the brief on a retained (stale) news digest when the live rebuild has failed. Defaults to false, which drops the stale grounding and returns an ungrounded brief rather than failing; time-sensi… |
| country_code | string | yes | ISO 3166-1 alpha-2 code (e.g. "IQ"), alpha-3 code ("IRQ"), or English country name ("Iraq") |
| framework | string | – | Optional analytical framework instructions to shape the analysis lens (e.g. Ray Dalio debt cycle, PMESII-PT) |
| jmespath | string | – | Optional JMESPath projection applied to the response. See initialize.instructions for grammar and examples. |
| Name | Type | Req | Description |
|---|---|---|---|
| brief | string | – | LLM-synthesized country intelligence brief. |
| countryCode | string | – | ISO 3166-1 alpha-2 code, echoed back uppercased. |
| countryName | string | – | Resolved country name, or the ISO code when no name is known. |
| digestCoverage | object | – | Freshness metadata for the news digest used to ground this brief. Omitted when the digest fetch failed and the brief was generated without digest grounding. |
| generatedAt | string|number|null | – | – |
| groundingStories | array | – | Corroboration signals for the digest articles used to ground this brief, so an agent can weigh how well-reported the underlying claims are. Independent of sources, which may instead carry the server-… |
| model | string | – | – |
| sources | array | – | Original feed articles used as grounding inputs for this brief. |
No examples provided.
get_country_coverage ~181
The country panel's own coverage timeline: recent country-relevant headlines plus the clustered incident timeline the Wo
| Name | Type | Req | Description |
|---|---|---|---|
| country_code | string | yes | ISO 3166-1 alpha-2 code (e.g. "IQ"), alpha-3 code ("IRQ"), or English country name ("Iraq") |
| jmespath | string | – | Optional JMESPath projection applied to the response. See initialize.instructions for grammar and examples. |
| limit | integer | – | Maximum timeline events to return, keeping the most recent. 0 or omitted means the default 200. |
| window_hours | integer | – | Look-back window in hours. 0 or omitted means the default 168 (7 days), which is what the UI shows. The upstream coverage query is pinned to 7 days, so a larger value is rejected rather than silently… |
| Name | Type | Req | Description |
|---|---|---|---|
| containment | string | yes | How a structured event was tested for being inside the country: "bbox" on this surface. The browser panel tests the loaded country polygon first and falls back to the same box, so a structured event… |
| countryCode | string | yes | ISO 3166-1 alpha-2 code, echoed back uppercased. |
| countryName | string | yes | Resolved country name, or the ISO code when no name is known. |
| degraded | boolean | yes | True when any producer is "stale" or "failed" — something is wrong now. Never read an empty events list as "nothing happened" while this is true. Deliberately EXCLUDES "unavailable" and "unknown", wh… |
| events | array | yes | Timeline incidents, oldest first. One incident is ONE entry however many outlets carried it. |
| generatedAt | string | yes | When this response was assembled, ISO-8601 UTC. |
| headlines | array | yes | Country-relevant articles, newest first. A headline is kept only when this country is mentioned before any other tracked country, so "Israel strikes Iran" belongs to Israel. |
| sources | array | yes | Per-producer status, always populated for EVERY producer including the ones that contributed nothing. Read this before interpreting an empty events list. |
| windowHours | number | yes | Look-back window actually applied, in hours. |
No examples provided.
get_country_macro ~181
Per-country macroeconomic indicators from IMF WEO (~210 countries, monthly cadence).
| Name | Type | Req | Description |
|---|---|---|---|
| countries | array | – | ISO 3166-1 alpha-2 country codes to keep across all four IMF datasets (e.g. ["US","DE","CN"]). Omit for all ~210 countries. Country names and alpha-3 codes are accepted; unresolved inputs return Inva… |
| jmespath | string | – | Optional JMESPath projection applied to the response. See initialize.instructions for grammar and examples. |
| limit | integer | – | Cap each IMF dataset country map to at most this many entries when no countries filter is supplied (default 30, pass 0 for no cap). |
| summary | boolean | – | Return counts + 3-item samples instead of full lists. Useful when you only need shape/size or want to budget context before drilling in. |
| Name | Type | Req | Description |
|---|---|---|---|
| activationUnknown | boolean | – | Optional. True when an activation marker this tool consults could not be read, so `stale` was computed without knowing whether the producer has ever published. Distinguishes an unreadable marker from… |
| cached_at | string|null | yes | ISO-8601 timestamp of the OLDEST contributing cache key, or null when no valid seed-meta is present. |
| contentFreshnessPendingUntil | string | – | Optional ISO-8601 deadline while a cleanly absent content-freshness block is temporarily covered by deployment-order grace. |
| data | object | yes | – |
| stale | boolean | yes | True when any contributing cache key fails its freshness contract: fetched longer ago than its per-key maxStaleMin budget, below a declared minRecordCount, or — for keys that declare a content-age co… |
No examples provided.
get_country_risk ~102
Structured risk intelligence for a specific country: the Composite Instability Index at cii.combinedScore (0-100), its f
| Name | Type | Req | Description |
|---|---|---|---|
| country_code | string | yes | ISO 3166-1 alpha-2 code (e.g. "IQ"), alpha-3 code ("IRQ"), or English country name ("Iraq") |
| jmespath | string | – | Optional JMESPath projection applied to the response. See initialize.instructions for grammar and examples. |
| Name | Type | Req | Description |
|---|---|---|---|
| advisoryLevel | string | yes | Government travel-advisory level, e.g. "do-not-travel", "reconsider", "caution". Empty when none. |
| cii | object|null | – | Composite Instability Index score. Absent when the country is not tracked, and always absent when upstreamUnavailable is true. |
| countryCode | string | yes | ISO 3166-1 alpha-2 code, echoed back uppercased. |
| countryName | string | yes | Resolved country name, or the ISO code when no name is known. |
| fetchedAt | number | yes | Freshness stamp taken from cii.computedAt, Unix epoch milliseconds. 0 means unknown, including "no CII score for this country". |
| sanctionsActive | boolean | yes | True when this country has active OFAC designations. |
| sanctionsCount | number | yes | Count of sanctioned entities associated with this country. |
| upstreamUnavailable | boolean | yes | True when ANY required upstream read failed. The handler fails closed on the first missing key, so the whole response is withheld: cii is absent and every risk field is zeroed. Those zeros mean UNKNO… |
No examples provided.
get_cyber_threats ~239
Active cyber threat intelligence: malware IOCs (URLhaus, Feodotracker), CISA known exploited vulnerabilities, and active
| Name | Type | Req | Description |
|---|---|---|---|
| country | string | – | Filter to one ISO 3166-1 alpha-2 country code (many threats have no country and are dropped by this filter). Country names and alpha-3 codes are accepted; unresolved inputs return Invalid params. |
| jmespath | string | – | Optional JMESPath projection applied to the response. See initialize.instructions for grammar and examples. |
| limit | number | – | Cap the threat list to at most this many items (default 30, pass 0 for no cap). |
| min_severity | string | – | Keep only threats with a known severity at or above this level; exclude missing or unrecognized severities. |
| summary | boolean | – | Return counts + 3-item samples instead of full lists. Useful when you only need shape/size or want to budget context before drilling in. |
| threat_type | string | – | Filter to one threat type (case-insensitive substring, e.g. "malware", "vulnerability", "c2"). |
| Name | Type | Req | Description |
|---|---|---|---|
| activationUnknown | boolean | – | Optional. True when an activation marker this tool consults could not be read, so `stale` was computed without knowing whether the producer has ever published. Distinguishes an unreadable marker from… |
| cached_at | string|null | yes | ISO-8601 timestamp of the OLDEST contributing cache key, or null when no valid seed-meta is present. |
| contentFreshnessPendingUntil | string | – | Optional ISO-8601 deadline while a cleanly absent content-freshness block is temporarily covered by deployment-order grace. |
| data | object | yes | – |
| stale | boolean | yes | True when any contributing cache key fails its freshness contract: fetched longer ago than its per-key maxStaleMin budget, below a declared minRecordCount, or — for keys that declare a content-age co… |
No examples provided.
get_defense_industrial_base ~89
Return one country's latest World Bank military-capacity indicators and SIPRI-derived five-year arms-supplier shares and
| Name | Type | Req | Description |
|---|---|---|---|
| country_code | string | yes | ISO 3166-1 alpha-2 country code, such as UA, DE, or IN. |
| jmespath | string | – | Optional JMESPath projection applied to the response. See initialize.instructions for grammar and examples. |
| Name | Type | Req | Description |
|---|---|---|---|
| armsExportsTiv | object | yes | – |
| armsImportsTiv | object | yes | – |
| available | boolean | yes | – |
| countryCode | string | yes | – |
| expenditurePctGdp | object | yes | – |
| expenditureUsd | object | yes | – |
| fetchedAt | string | yes | Oldest source timestamp among values served. |
| industrialFetchedAt | string | yes | World Bank snapshot timestamp for the country metrics served. |
| personnel | object | yes | – |
| supplierFetchedAt | string | yes | SIPRI timestamp for this importer row, including its original timestamp when retained. |
| supplierHhi | number | yes | Herfindahl-Hirschman concentration from 0 to 1; higher means fewer dominant suppliers. |
| supplierMappingCoverage | number | yes | Share of positive supplier TIV mapped to ISO2 suppliers; HHI uses the full denominator. |
| supplierRetained | boolean | yes | True when the importer row was retained after its current SIPRI request failed. |
| supplierSource | string | yes | – |
| suppliers | array | yes | – |
| windowEndYear | integer | yes | – |
| windowStartYear | integer | yes | – |
No examples provided.
get_demographics_capability ~87
Country demographics capability observations from UN WPP, World Bank/UNESCO UIS, and ILOSTAT.
| Name | Type | Req | Description |
|---|---|---|---|
| country_code | string | yes | Required ISO 3166-1 alpha-2 country code (for example "DE"). Case-insensitive. |
| jmespath | string | – | Optional JMESPath projection applied to the response. See initialize.instructions for grammar and examples. |
| Name | Type | Req | Description |
|---|---|---|---|
| ageStructure | object | – | UN WPP age and working-age population observations. Read each metric available flag before value. |
| available | boolean | – | True when at least one validated observation is available. |
| countryCode | string | – | – |
| education | object | – | World Bank WDI and UNESCO UIS education observations. Read each metric available flag before value. |
| fetchedAt | string | – | ISO-8601 snapshot generation time. |
| industrialWorkforce | object | – | ILOSTAT workforce observations. The combined trained workforce is available only for a valid same-year ISCO 7+8 cohort. |
| stages | array | – | – |
No examples provided.
get_displacement_data ~175
Refugee and IDP counts by country (UNHCR annual data).
| Name | Type | Req | Description |
|---|---|---|---|
| countries | array | – | Country names, ISO alpha-2, or alpha-3 codes to keep (e.g. ["Syria","UA","AFG"]). Matches both per-country totals and origin/asylum flows. Omit for all. Unresolved inputs return Invalid params. |
| jmespath | string | – | Optional JMESPath projection applied to the response. See initialize.instructions for grammar and examples. |
| limit | number | – | Cap the per-country and top-flow lists to at most this many items (default 30, pass 0 for no cap). |
| summary | boolean | – | Return counts + 3-item samples instead of full lists. Useful when you only need shape/size or want to budget context before drilling in. |
| Name | Type | Req | Description |
|---|---|---|---|
| activationUnknown | boolean | – | Optional. True when an activation marker this tool consults could not be read, so `stale` was computed without knowing whether the producer has ever published. Distinguishes an unreadable marker from… |
| cached_at | string|null | yes | ISO-8601 timestamp of the OLDEST contributing cache key, or null when no valid seed-meta is present. |
| contentFreshnessPendingUntil | string | – | Optional ISO-8601 deadline while a cleanly absent content-freshness block is temporarily covered by deployment-order grace. |
| data | object | yes | – |
| stale | boolean | yes | True when any contributing cache key fails its freshness contract: fetched longer ago than its per-key maxStaleMin budget, below a declared minRecordCount, or — for keys that declare a content-age co… |
No examples provided.
get_economic_data ~219
China macro: official-only 12-series; 5 NBS/SAFE ingestible, PBoC/GACC unavailable, no proxies; see launchReady/status.
| Name | Type | Req | Description |
|---|---|---|---|
| country | string | – | Filter the country-keyed datasets (fuel-prices, BIS DSR/property, economic calendar) to one ISO 3166-1 alpha-2 code. Country names and alpha-3 codes are accepted; unresolved inputs return Invalid par… |
| dataset | array | – | Restrict the response to one or more sub-datasets. Omit for the full economic bundle. |
| jmespath | string | – | Optional JMESPath projection applied to the response. See initialize.instructions for grammar and examples. |
| limit | number | – | Cap each list dataset (calendar, spending, earnings) to at most this many items (default 30, pass 0 for no cap). |
| summary | boolean | – | Return counts + 3-item samples instead of full lists. Useful when you only need shape/size or want to budget context before drilling in. |
| Name | Type | Req | Description |
|---|---|---|---|
| activationUnknown | boolean | – | Optional. True when an activation marker this tool consults could not be read, so `stale` was computed without knowing whether the producer has ever published. Distinguishes an unreadable marker from… |
| cached_at | string|null | yes | ISO-8601 timestamp of the OLDEST contributing cache key, or null when no valid seed-meta is present. |
| contentFreshnessPendingUntil | string | – | Optional ISO-8601 deadline while a cleanly absent content-freshness block is temporarily covered by deployment-order grace. |
| data | object | yes | – |
| stale | boolean | yes | True when any contributing cache key fails its freshness contract: fetched longer ago than its per-key maxStaleMin budget, below a declared minRecordCount, or — for keys that declare a content-age co… |
No examples provided.
get_energy_intelligence ~232
Energy supply, prices, storage, disruptions, and policy: EIA petroleum stocks, electricity prices (Ember), gas storage (
| Name | Type | Req | Description |
|---|---|---|---|
| country | string | – | Filter the country-keyed datasets (Ember electricity mix, gas storage, fuel shortages, energy disruptions, fossil-share) to one ISO 3166-1 alpha-2 code. Country names and alpha-3 codes are accepted;… |
| dataset | array | – | Restrict the response to one or more energy sub-datasets. Omit for the full bundle. |
| jmespath | string | – | Optional JMESPath projection applied to the response. See initialize.instructions for grammar and examples. |
| limit | number | – | Cap each list-bearing energy slice (crisis-policies, electricity regions, gas-storage countries, World Bank renewable history/regions) to at most this many items (default 30, pass 0 for no cap). |
| summary | boolean | – | Return counts + 3-item samples instead of full lists. Useful when you only need shape/size or want to budget context before drilling in. |
| Name | Type | Req | Description |
|---|---|---|---|
| activationUnknown | boolean | – | Optional. True when an activation marker this tool consults could not be read, so `stale` was computed without knowing whether the producer has ever published. Distinguishes an unreadable marker from… |
| cached_at | string|null | yes | ISO-8601 timestamp of the OLDEST contributing cache key, or null when no valid seed-meta is present. |
| contentFreshnessPendingUntil | string | – | Optional ISO-8601 deadline while a cleanly absent content-freshness block is temporarily covered by deployment-order grace. |
| data | object | yes | – |
| stale | boolean | yes | True when any contributing cache key fails its freshness contract: fetched longer ago than its per-key maxStaleMin budget, below a declared minRecordCount, or — for keys that declare a content-age co… |
No examples provided.
get_eu_housing_cycle ~209
Eurostat annual house price index (prc_hpi_a, base 2015=100) for all 27 EU members plus EA20 and EU27_2020 aggregates.
| Name | Type | Req | Description |
|---|---|---|---|
| countries | array | – | Eurostat geo codes to keep — ISO 3166-1 alpha-2, but "EL" for Greece, plus aggregates "EA20" and "EU27_2020". Omit for all. Country names and alpha-3 codes are accepted; unresolved inputs return Inva… |
| jmespath | string | – | Optional JMESPath projection applied to the response. See initialize.instructions for grammar and examples. |
| limit | integer | – | Cap the country map to at most this many entries when no countries filter is supplied (default 30, pass 0 for no cap). |
| summary | boolean | – | Return counts + 3-item samples instead of full lists. Useful when you only need shape/size or want to budget context before drilling in. |
| Name | Type | Req | Description |
|---|---|---|---|
| activationUnknown | boolean | – | Optional. True when an activation marker this tool consults could not be read, so `stale` was computed without knowing whether the producer has ever published. Distinguishes an unreadable marker from… |
| cached_at | string|null | yes | ISO-8601 timestamp of the OLDEST contributing cache key, or null when no valid seed-meta is present. |
| contentFreshnessPendingUntil | string | – | Optional ISO-8601 deadline while a cleanly absent content-freshness block is temporarily covered by deployment-order grace. |
| data | object | yes | – |
| stale | boolean | yes | True when any contributing cache key fails its freshness contract: fetched longer ago than its per-key maxStaleMin budget, below a declared minRecordCount, or — for keys that declare a content-age co… |
No examples provided.
get_eu_industrial_production ~193
Eurostat monthly industrial production index (sts_inpr_m, NACE B-D industry excl.
| Name | Type | Req | Description |
|---|---|---|---|
| countries | array | – | Eurostat geo codes to keep — ISO 3166-1 alpha-2, but "EL" for Greece, plus aggregates "EA20" and "EU27_2020". Omit for all. Country names and alpha-3 codes are accepted; unresolved inputs return Inva… |
| jmespath | string | – | Optional JMESPath projection applied to the response. See initialize.instructions for grammar and examples. |
| limit | integer | – | Cap the country map to at most this many entries when no countries filter is supplied (default 30, pass 0 for no cap). |
| summary | boolean | – | Return counts + 3-item samples instead of full lists. Useful when you only need shape/size or want to budget context before drilling in. |
| Name | Type | Req | Description |
|---|---|---|---|
| activationUnknown | boolean | – | Optional. True when an activation marker this tool consults could not be read, so `stale` was computed without knowing whether the producer has ever published. Distinguishes an unreadable marker from… |
| cached_at | string|null | yes | ISO-8601 timestamp of the OLDEST contributing cache key, or null when no valid seed-meta is present. |
| contentFreshnessPendingUntil | string | – | Optional ISO-8601 deadline while a cleanly absent content-freshness block is temporarily covered by deployment-order grace. |
| data | object | yes | – |
| stale | boolean | yes | True when any contributing cache key fails its freshness contract: fetched longer ago than its per-key maxStaleMin budget, below a declared minRecordCount, or — for keys that declare a content-age co… |
No examples provided.
get_eu_quarterly_gov_debt ~213
Eurostat quarterly general government gross debt (gov_10q_ggdebt, %GDP) for all 27 EU members plus EA20 and EU27_2020 ag
| Name | Type | Req | Description |
|---|---|---|---|
| countries | array | – | Eurostat geo codes to keep — ISO 3166-1 alpha-2, but "EL" for Greece, plus aggregates "EA20" and "EU27_2020". Omit for all. Country names and alpha-3 codes are accepted; unresolved inputs return Inva… |
| jmespath | string | – | Optional JMESPath projection applied to the response. See initialize.instructions for grammar and examples. |
| limit | integer | – | Cap the country map to at most this many entries when no countries filter is supplied (default 30, pass 0 for no cap). |
| summary | boolean | – | Return counts + 3-item samples instead of full lists. Useful when you only need shape/size or want to budget context before drilling in. |
| Name | Type | Req | Description |
|---|---|---|---|
| activationUnknown | boolean | – | Optional. True when an activation marker this tool consults could not be read, so `stale` was computed without knowing whether the producer has ever published. Distinguishes an unreadable marker from… |
| cached_at | string|null | yes | ISO-8601 timestamp of the OLDEST contributing cache key, or null when no valid seed-meta is present. |
| contentFreshnessPendingUntil | string | – | Optional ISO-8601 deadline while a cleanly absent content-freshness block is temporarily covered by deployment-order grace. |
| data | object | yes | – |
| stale | boolean | yes | True when any contributing cache key fails its freshness contract: fetched longer ago than its per-key maxStaleMin budget, below a declared minRecordCount, or — for keys that declare a content-age co… |
No examples provided.
get_five_factor_scorecard ~138
Return the frozen v1 food, energy, demographics, technology, and defense scorecard for exactly one country or bloc.
| Name | Type | Req | Description |
|---|---|---|---|
| country_code | string | – | ISO 3166-1 alpha-2 country code. Mutually exclusive with preset and members. |
| jmespath | string | – | Optional JMESPath projection applied to the response. See initialize.instructions for grammar and examples. |
| members | array | – | Custom bloc of 2-30 unique uppercase ISO-2 member codes. Mutually exclusive with country_code and preset. |
| preset | string | – | Official bloc preset. Mutually exclusive with country_code and members. |
| Name | Type | Req | Description |
|---|---|---|---|
| scorecard | object | – | – |
| unavailable | boolean | yes | – |
| unavailableReason | string | yes | – |
No examples provided.
get_focal_points ~126
Focal-point detection: entities where news coverage and live map signals converge, ranked by multi-signal score.
| Name | Type | Req | Description |
|---|---|---|---|
| country_code | string | – | Filter focal points to one country (ISO-2, alpha-3, or English name) and entities the registry relates to it. Countries outside the entity registry return an explicit coverage error. |
| jmespath | string | – | Optional JMESPath projection applied to the response. See initialize.instructions for grammar and examples. |
| limit | number | – | Cap the focal point list (default 10, pass 0 for no cap). |
| Name | Type | Req | Description |
|---|---|---|---|
| cached_at | string|null | yes | Oldest fetch time across the contributing feeds. |
| data | object | yes | – |
| failed_inputs | array | – | Subset of unavailable_inputs whose Redis read failed rather than returning a genuine miss. |
| stale | boolean | yes | True when any contributing cache key fails its freshness contract: fetched longer ago than its per-key maxStaleMin budget, below a declared minRecordCount, or — for keys that declare a content-age co… |
| unavailable_inputs | array | – | Required cache keys that were missing or unreadable; their contribution is not treated as quiet. |
No examples provided.
get_food_stocks ~123
USDA PSD cereal stocks-to-use by marketing year.
| Name | Type | Req | Description |
|---|---|---|---|
| commodity | string | – | Optional commodity slug: wheat, corn, rice, soybeans, barley, palmOil. Note palmOil is camelCase; the rest are lowercase. Omit for all six. |
| country_code | string | yes | ISO 3166-1 alpha-2 country code (e.g. "EG") or "WORLD" for the global balance sheet. |
| jmespath | string | – | Optional JMESPath projection applied to the response. See initialize.instructions for grammar and examples. |
| Name | Type | Req | Description |
|---|---|---|---|
| calorieWeightedStocksToUse | number | – | – |
| fetchedAt | string | – | – |
| records | array | – | – |
| unavailable | boolean | – | – |
No examples provided.
get_forecast_predictions ~160
AI-generated geopolitical and economic forecasts from WorldMonitor's predictive models.
| Name | Type | Req | Description |
|---|---|---|---|
| domain | string | – | Filter to one forecast domain (exact, case-insensitive — e.g. "shipping", "energy", "macro"). |
| jmespath | string | – | Optional JMESPath projection applied to the response. See initialize.instructions for grammar and examples. |
| limit | number | – | Cap the forecast list to at most this many items (default 30, pass 0 for no cap). |
| region | string | – | Filter to one region/theater (case-insensitive substring). |
| summary | boolean | – | Return counts + 3-item samples instead of full lists. Useful when you only need shape/size or want to budget context before drilling in. |
| Name | Type | Req | Description |
|---|---|---|---|
| activationUnknown | boolean | – | Optional. True when an activation marker this tool consults could not be read, so `stale` was computed without knowing whether the producer has ever published. Distinguishes an unreadable marker from… |
| cached_at | string|null | yes | ISO-8601 timestamp of the OLDEST contributing cache key, or null when no valid seed-meta is present. |
| contentFreshnessPendingUntil | string | – | Optional ISO-8601 deadline while a cleanly absent content-freshness block is temporarily covered by deployment-order grace. |
| data | object | yes | – |
| stale | boolean | yes | True when any contributing cache key fails its freshness contract: fetched longer ago than its per-key maxStaleMin budget, below a declared minRecordCount, or — for keys that declare a content-age co… |
No examples provided.
get_forecast_scorecard ~96
Forecast resolution scorecard with calibration, Brier/log score, domain and generation-origin breakdowns, and pending/ju
| Name | Type | Req | Description |
|---|---|---|---|
| jmespath | string | – | Optional JMESPath projection applied to the response. See initialize.instructions for grammar and examples. |
| summary | boolean | – | Return counts + 3-item samples instead of full lists. Useful when you only need shape/size or want to budget context before drilling in. |
| Name | Type | Req | Description |
|---|---|---|---|
| activationUnknown | boolean | – | Optional. True when an activation marker this tool consults could not be read, so `stale` was computed without knowing whether the producer has ever published. Distinguishes an unreadable marker from… |
| cached_at | string|null | yes | ISO-8601 timestamp of the OLDEST contributing cache key, or null when no valid seed-meta is present. |
| contentFreshnessPendingUntil | string | – | Optional ISO-8601 deadline while a cleanly absent content-freshness block is temporarily covered by deployment-order grace. |
| data | object | yes | – |
| stale | boolean | yes | True when any contributing cache key fails its freshness contract: fetched longer ago than its per-key maxStaleMin budget, below a declared minRecordCount, or — for keys that declare a content-age co… |
No examples provided.
get_health_signals ~232
Active disease outbreaks (WHO/ECDC etc.) and global air-quality station readings (OpenAQ/WAQI PM2.5).
| Name | Type | Req | Description |
|---|---|---|---|
| country | string | – | Filter outbreaks and air-quality stations to one ISO 3166-1 alpha-2 country code. Country names and alpha-3 codes are accepted; unresolved inputs return Invalid params. |
| disease | string | – | Keep only outbreaks whose disease name contains this text (case-insensitive). |
| jmespath | string | – | Optional JMESPath projection applied to the response. See initialize.instructions for grammar and examples. |
| limit | number | – | Cap the outbreak and station lists to at most this many items (default 30, pass 0 for no cap). |
| min_aqi | number | – | Drop air-quality stations below this AQI value. |
| signal_type | array | – | Restrict to disease outbreaks, air-quality stations, or both. Omit for both. |
| summary | boolean | – | Return counts + 3-item samples instead of full lists. Useful when you only need shape/size or want to budget context before drilling in. |
| Name | Type | Req | Description |
|---|---|---|---|
| activationUnknown | boolean | – | Optional. True when an activation marker this tool consults could not be read, so `stale` was computed without knowing whether the producer has ever published. Distinguishes an unreadable marker from… |
| cached_at | string|null | yes | ISO-8601 timestamp of the OLDEST contributing cache key, or null when no valid seed-meta is present. |
| contentFreshnessPendingUntil | string | – | Optional ISO-8601 deadline while a cleanly absent content-freshness block is temporarily covered by deployment-order grace. |
| data | object | yes | – |
| stale | boolean | yes | True when any contributing cache key fails its freshness contract: fetched longer ago than its per-key maxStaleMin budget, below a declared minRecordCount, or — for keys that declare a content-age co… |
No examples provided.
get_hotspot_escalation ~112
Hotspot escalation scores: the 29 curated intelligence hotspots ranked by dynamic escalation on a 1-5 scale.
| Name | Type | Req | Description |
|---|---|---|---|
| hotspot_id | string | – | Return only this curated hotspot id (see any full response for the id list). |
| jmespath | string | – | Optional JMESPath projection applied to the response. See initialize.instructions for grammar and examples. |
| limit | number | – | Cap the ranked hotspot list (default 29, the full curated set; pass 0 for no cap). |
| Name | Type | Req | Description |
|---|---|---|---|
| cached_at | string|null | yes | Oldest fetch time across the contributing feeds. |
| data | object | yes | – |
| error | string | – | Present only on a user-input failure; the envelope keys are still returned. |
| failed_inputs | array | – | Subset of unavailable_inputs whose Redis read failed rather than returning a genuine miss. |
| known_ids | array | – | All curated hotspot ids; present only alongside an unknown-hotspot_id error. |
| stale | boolean | yes | True when any contributing cache key fails its freshness contract: fetched longer ago than its per-key maxStaleMin budget, below a declared minRecordCount, or — for keys that declare a content-age co… |
| unavailable_inputs | array | – | Required cache keys that were missing or unreadable; their contribution is not treated as quiet. |
No examples provided.
get_imd_cyclone_marine ~171
Bounded India Meteorological Department cyclone tracks, forecast wind radii, cones of uncertainty, and official port / s
| Name | Type | Req | Description |
|---|---|---|---|
| dataset | array | – | Restrict to cyclone tracks/wind/cones, port warnings, or sea-area/coastal bulletins. Omit for the full snapshot. coverageState and per-product health are always returned. |
| jmespath | string | – | Optional JMESPath projection applied to the response. See initialize.instructions for grammar and examples. |
| limit | number | – | Cap each product list to at most this many items (default 30, pass 0 for no cap). |
| summary | boolean | – | Return counts + 3-item samples instead of full lists. Useful when you only need shape/size or want to budget context before drilling in. |
| Name | Type | Req | Description |
|---|---|---|---|
| activationUnknown | boolean | – | Optional. True when an activation marker this tool consults could not be read, so `stale` was computed without knowing whether the producer has ever published. Distinguishes an unreadable marker from… |
| cached_at | string|null | yes | ISO-8601 timestamp of the OLDEST contributing cache key, or null when no valid seed-meta is present. |
| contentFreshnessPendingUntil | string | – | Optional ISO-8601 deadline while a cleanly absent content-freshness block is temporarily covered by deployment-order grace. |
| data | object | yes | – |
| stale | boolean | yes | True when any contributing cache key fails its freshness contract: fetched longer ago than its per-key maxStaleMin budget, below a declared minRecordCount, or — for keys that declare a content-age co… |
No examples provided.
get_infrastructure_status ~153
Internet infrastructure health: Cloudflare Radar outages and service status for major cloud providers and internet servi
| Name | Type | Req | Description |
|---|---|---|---|
| country | string | – | Filter to one country by name (case-insensitive substring). |
| jmespath | string | – | Optional JMESPath projection applied to the response. See initialize.instructions for grammar and examples. |
| limit | number | – | Cap the outage list to at most this many items (default 30, pass 0 for no cap). |
| severity | string | – | Filter to one outage severity (case-insensitive substring). |
| summary | boolean | – | Return counts + 3-item samples instead of full lists. Useful when you only need shape/size or want to budget context before drilling in. |
| Name | Type | Req | Description |
|---|---|---|---|
| activationUnknown | boolean | – | Optional. True when an activation marker this tool consults could not be read, so `stale` was computed without knowing whether the producer has ever published. Distinguishes an unreadable marker from… |
| cached_at | string|null | yes | ISO-8601 timestamp of the OLDEST contributing cache key, or null when no valid seed-meta is present. |
| contentFreshnessPendingUntil | string | – | Optional ISO-8601 deadline while a cleanly absent content-freshness block is temporarily covered by deployment-order grace. |
| data | object | yes | – |
| stale | boolean | yes | True when any contributing cache key fails its freshness contract: fetched longer ago than its per-key maxStaleMin budget, below a declared minRecordCount, or — for keys that declare a content-age co… |
No examples provided.
get_intel_timeline ~203
Reverse-chronological read of WorldMonitor's accumulating intelligence-event history for one domain or country (Pro).
| Name | Type | Req | Description |
|---|---|---|---|
| country | string | – | ISO 3166-1 alpha-2 country code, uppercase, e.g. "UA". Required unless domain is set. Supplying both narrows to their intersection. |
| domain | string | – | Restrict to one producing domain. Required unless country is set. |
| from | number | – | Earliest occurredAt to return, Unix epoch milliseconds, inclusive. Omit for no lower bound. |
| jmespath | string | – | Optional JMESPath projection applied to the response. See initialize.instructions for grammar and examples. |
| limit | integer | – | Maximum events to return. The route returns 40 when this is omitted and caps MCP responses at 40 to stay within the output budget. |
| to | number | – | Latest occurredAt to return, Unix epoch milliseconds, inclusive. Omit for no upper bound. |
| Name | Type | Req | Description |
|---|---|---|---|
| partial | boolean | yes | True when the bounded post-filter window may omit older matching events. |
| records | array | yes | Scoped history, newest first. |
| upstreamUnavailable | boolean | yes | True when the history store could not be reached. `records` is then empty because the read failed — never read that as "nothing happened in this window". |
No examples provided.
get_keyword_spikes ~114
Keyword/CVE/APT spikes vs baseline, each with sourceNames and {title, source, link}.
| Name | Type | Req | Description |
|---|---|---|---|
| jmespath | string | – | Optional JMESPath projection applied to the response. See initialize.instructions for grammar and examples. |
| limit | integer | – | Maximum spikes returned. Defaults to 10. |
| min_count | integer | – | Minimum recent-window story count for a term to spike. Defaults to 5. |
| window_hours | integer | – | Recent window to test for spikes. Defaults to 2. |
| Name | Type | Req | Description |
|---|---|---|---|
| baseline_hours | number | yes | Exact hours in the sampled pre-window baseline cohort. 0 means no baseline was available and spikes is empty. |
| generatedAt | string | yes | – |
| note | string | – | Present when the accumulator was unavailable/empty or the story store was only partially readable. |
| sample_truncated | boolean | yes | True when either bounded cohort hit its 800-story cap. |
| spikes | array | yes | – |
| story_count | number | yes | Stories this computation saw across the separately bounded recent and baseline cohorts. |
| window_hours | number | yes | – |
No examples provided.
What is the World Monitor MCP server?
World Monitor is an MCP server listed in the public MCP registry as app.worldmonitor/mcp. Live markets, conflicts, country risk, chokepoints, energy, and China decision signals. 86 tools. This page covers its hosted endpoint (https://worldmonitor.app/mcp).
Is the World Monitor MCP server safe to use?
World Monitor scores 39 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the World Monitor MCP server expose?
World Monitor exposes 75 tools: get_toronto_reported_occurrences, get_toronto_calls_attended, get_market_data, get_conflict_events, get_aviation_status, and 70 more. Their descriptions and schemas cost roughly 12,524 tokens of context every time the server is loaded.
Does the World Monitor MCP server require authentication?
Yes. World Monitor asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.
Is the World Monitor MCP server still maintained?
World Monitor is still listed as active in the MCP registry. We last reached this channel on 2 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.