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 →
get_maritime_activity ~86
Live vessel traffic and maritime disruptions for a country's waters.
| 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 |
|---|---|---|---|
| bounding_box | object | – | – |
| country_code | string | – | – |
| density_zones | array | – | – |
| disruptions | array | – | – |
| error | string | – | Present only on unknown country_code. |
| snapshot_at | string | – | – |
| total_disruptions | number | – | – |
| total_zones | number | – | – |
No examples provided.
get_market_data ~243
Real-time equity quotes, commodity prices, SGE physical-vs-COMEX premiums, physical-divergence regimes and trends, crypt
| Name | Type | Req | Description |
|---|---|---|---|
| asset_class | array | – | Restrict the response to one or more asset classes. Omit for all. |
| jmespath | string | – | Optional JMESPath projection applied to the response. See initialize.instructions for grammar and examples. |
| limit | number | – | Cap each per-class quote list (stocks/commodities/crypto/gulf/sectors/ETF flows) 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. |
| symbols | array | – | Tickers to keep, e.g. ["AAPL","GC=F","BTC"]. Case-insensitive; matches equity/commodity/crypto/gulf quotes, physical-premium and divergence aliases (gold/XAU/GC=F, silver/XAG/SI=F), sector ETFs, and… |
| 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_military_posture ~159
Theater posture assessment and military risk scores.
| Name | Type | Req | Description |
|---|---|---|---|
| jmespath | string | – | Optional JMESPath projection applied to the response. See initialize.instructions for grammar and examples. |
| limit | number | – | Cap the theaters list to at most this many items (default 30, pass 0 for no cap). |
| posture_level | string | – | Filter to a single posture level. |
| 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. |
| theater | string | – | Filter to one theater by id (case-insensitive substring, e.g. "iran", "taiwan", "baltic", "korea"). |
| 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_military_surge ~80
Military surge watch: theater aircraft postures, foreign-presence detections, and seeder-computed surge alerts.
| Name | Type | Req | Description |
|---|---|---|---|
| jmespath | string | – | Optional JMESPath projection applied to the response. See initialize.instructions for grammar and examples. |
| theater | string | – | Filter to one theater by id or name substring (case-insensitive). |
| 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_mineral_production ~124
Who mines and who refines a commodity, with country shares and HHI.
| Name | Type | Req | Description |
|---|---|---|---|
| commodity | string | – | Commodity id or label, e.g. "cobalt", "lithium", "ree" |
| iso2 | string | – | ISO 3166-1 alpha-2 producer filter, e.g. "CL" |
| jmespath | string | – | Optional JMESPath projection applied to the response. See initialize.instructions for grammar and examples. |
| stage | string | – | Mine or refinery/smelter stage. Omit for both. |
| Name | Type | Req | Description |
|---|---|---|---|
| commodities | array | – | – |
| countries | array | – | – |
| dataYear | number | – | – |
| fetchedAt | string | – | – |
| upstreamUnavailable | boolean | – | – |
No examples provided.
get_natural_disasters ~199
Recent M4.5+ earthquakes (USGS and Earthquakes Canada / NRCan), active wildfires (NASA FIRMS), and natural hazard events
| Name | Type | Req | Description |
|---|---|---|---|
| active_only | boolean | – | Keep only natural events that are still active (not closed). |
| dataset | array | – | Restrict to one or more hazard datasets (earthquakes / wildfires / other natural events). Omit for all. |
| jmespath | string | – | Optional JMESPath projection applied to the response. See initialize.instructions for grammar and examples. |
| limit | number | – | Cap each hazard list to at most this many items (default 30, pass 0 for no cap). |
| min_magnitude | number | – | Drop earthquakes and natural events below this magnitude. |
| 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_news_clusters ~311
Current topic clusters over the live headline digest, computed with the same Jaccard clustering the dashboard uses.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | Restrict to one category from the selected digest variant. full: politics, us, europe, middleeast, tech, ai, finance, commodities, gov, africa, latam, asia, energy, thinktanks, crisis, layoffs, intel… |
| jmespath | string | – | Optional JMESPath projection applied to the response. See initialize.instructions for grammar and examples. |
| limit | integer | – | Maximum clusters returned. Defaults to 10. |
| min_sources | integer | – | Only return clusters carrying at least this many DISTINCT sources (outlets), not merely this many member headlines. Defaults to 1. |
| query | string | – | Keep only clusters whose primary headline or any member headline contains this text (case-insensitive substring). Filters the LIVE digest window only — not a historical index. Applied before limit, s… |
| variant | string | – | Headline digest variant. Defaults to full; use tech for Tech dashboard categories. |
| Name | Type | Req | Description |
|---|---|---|---|
| category | string|null | yes | Applied digest category filter; null when clustering every category. |
| clusters | array | yes | – |
| digestCoverage | object | – | – |
| error | string | – | Present when variant validation fails. |
| generatedAt | string | yes | – |
| headlineCount | number | yes | – |
| note | string | – | Present when category did not match any digest key (typo or missing bucket). |
| totalClusters | number | yes | Cluster count before limit/min_sources filtering. |
| variant | string | – | Applied digest variant. |
No examples provided.
get_news_intelligence ~375
AI-classified geopolitical threat news summaries, GDELT intelligence signals, cross-source signals including physical-pr
| Name | Type | Req | Description |
|---|---|---|---|
| alerts_only | boolean | – | Keep only top stories flagged as alerts. |
| category | string | – | Filter top news stories to one category (e.g. "conflict", "economy"; fallback is "general"). |
| country | string | – | Filter top stories and travel advisories to one ISO 3166-1 alpha-2 country code (case-insensitive). 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 each list (top stories, signals, advisories) to at most this many items (default 30, pass 0 for no cap). Applied AFTER query and min_importance, so a capped list is drawn from the matches. |
| min_importance | number | – | Keep only top stories whose effectiveImportanceScore is at least this value. 0 is honoured as a real floor rather than treated as absent; a story carrying no score is excluded when this is set, never… |
| query | string | – | Keep only top stories whose headline, primary source, or any clustered member headline contains this text (case-insensitive substring). This filters the LIVE news window only — it is not a historical… |
| 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. |
| topic | string | – | Filter GDELT intelligence to a single topic. |
| 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_population_exposure ~175
Population exposure: estimated people within the impact radius of active earthquakes, wildfires, and conflict events.
| Name | Type | Req | Description |
|---|---|---|---|
| event_source | string | – | Which event feeds to enrich in events mode (default all). |
| jmespath | string | – | Optional JMESPath projection applied to the response. See initialize.instructions for grammar and examples. |
| lat | number | – | Latitude for point mode. |
| limit | number | – | Cap the enriched event list in events mode (default 20, pass 0 for no cap). |
| lon | number | – | Longitude for point mode. |
| mode | string | – | events enriches live feeds (default); point takes lat/lon; countries lists the population table. |
| radius_km | number | – | Radius in km for point mode (default 50, clamped to 1000). |
| Name | Type | Req | Description |
|---|---|---|---|
| cached_at | string|null | yes | Oldest fetch time across the feeds read; null in point and countries modes. |
| 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. |
| 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_positive_events ~129
Positive geopolitical events: diplomatic agreements, humanitarian aid, development milestones, and peace initiatives wor
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | Filter to one positive-event category. |
| jmespath | string | – | Optional JMESPath projection applied to the response. See initialize.instructions for grammar and examples. |
| limit | number | – | Cap the event 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_prediction_markets ~210
Prediction markets: geopolitical/elections, tagged tech (AI/crypto/science), finance/economics or untagged fallback.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | Restrict to one market category bucket. Omit for all three. Finance also owns untagged non-geopolitical records. |
| jmespath | string | – | Optional JMESPath projection applied to the response. See initialize.instructions for grammar and examples. |
| limit | number | – | Cap each category bucket to at most this many markets (default 30, pass 0 for no cap). |
| query | string | – | Keep only markets whose title contains this text (case-insensitive). |
| source | string | – | Filter to one prediction-market source. Kalshi currently provides no classifier tags, so source=kalshi with category=tech returns no records. |
| 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_procurement_opportunities ~301
Search open global public-procurement opportunities through the canonical Pro route.
| Name | Type | Req | Description |
|---|---|---|---|
| buyer | string | – | Case-insensitive buyer or contracting-authority text. |
| countries | array | – | Additional ISO 3166-1 alpha-2 country codes. Combined with country. |
| country | string | – | One ISO 3166-1 alpha-2 country code. |
| cursor | string | – | Opaque nextCursor from the prior result; keep the same filters and sort when continuing. |
| deadline_from | string | – | Include deadlines on or after this ISO-8601 timestamp. |
| deadline_to | string | – | Include deadlines on or before this ISO-8601 timestamp. |
| jmespath | string | – | Optional JMESPath projection applied to the response. See initialize.instructions for grammar and examples. |
| min_automation_score | integer | – | Optional positive keyword-relevance threshold. Non-integer or non-positive values are ignored; the canonical route clamps values above 100. This is not bidding-eligibility evidence. |
| page_size | integer | – | Records per call. Defaults to 10; capped at 25 to protect agent context. |
| query | string | – | Case-insensitive text search across procurement titles and descriptions. |
| sort | string | – | Result ordering. Defaults to newest. |
| source | string | – | Official source adapter, such as sam, ted, contracts-finder, canada-buys, gets, or world-bank. |
| Name | Type | Req | Description |
|---|---|---|---|
| appliedFilters | array | yes | – |
| availability | string | yes | – |
| countryCoverage | string | yes | unknown means the requested country has not been observed in this snapshot, not that there are confirmed zero results. |
| dataAvailable | boolean | yes | – |
| fetchedAt | string | yes | – |
| nextCursor | string | yes | Opaque pagination cursor. An empty string means no further pages are available. |
| opportunities | array | yes | – |
| sourceStatuses | array | yes | – |
| total | number | yes | – |
No examples provided.
get_radiation_data ~149
Radiation observation levels from global monitoring stations.
| Name | Type | Req | Description |
|---|---|---|---|
| anomalous_only | boolean | – | Drop observations with severity "normal" — keep only elevated/spike readings. |
| 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 observation 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_research_signals ~157
Tech and research event signals: emerging technology events bootstrap data from curated research feeds.
| Name | Type | Req | Description |
|---|---|---|---|
| jmespath | string | – | Optional JMESPath projection applied to the response. See initialize.instructions for grammar and examples. |
| limit | number | – | Cap the event list to at most this many items (default 30, pass 0 for no cap). |
| source | string | – | Filter to one source feed (e.g. "techmeme", "dev.events", "curated"). |
| 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. |
| type | string | – | Filter to one tech-event type. |
| 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_resilience_indicators ~78
Explain one country's resilience score across all 72 registered indicators.
| 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 |
|---|---|---|---|
| constructVersions | object | – | – |
| countryCode | string | – | – |
| dataVersion | string | – | Source snapshot version used for the score. |
| dimensions | array | – | – |
| formula | string | – | Active score formula tag, for example d6 or pc. |
| indicators | array | – | – |
| methodology | string | – | Stable contribution-reconciliation method identifier. |
| schemaVersion | string | – | Public resilience score schema version. |
No examples provided.
get_sanctions_data ~215
OFAC SDN sanctioned entities list and sanctions pressure scores by country.
| Name | Type | Req | Description |
|---|---|---|---|
| country | string | – | Filter sanctioned entities and pressure scores to one ISO 3166-1 alpha-2 country code. Country names and alpha-3 codes are accepted; unresolved inputs return Invalid params. |
| entity_type | string | – | Filter to one entity type (case-insensitive substring, e.g. "vessel", "aircraft", "person", "entity"). |
| jmespath | string | – | Optional JMESPath projection applied to the response. See initialize.instructions for grammar and examples. |
| limit | number | – | Cap the entity list and recent pressure entries to at most this many items (default 30, pass 0 for no cap). |
| query | string | – | Keep only sanctioned entities whose name contains this text (case-insensitive). |
| 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_signal_convergence ~175
Geographic signal convergence: grid cells where protests, military activity, naval movements, and earthquakes co-occur.
| Name | Type | Req | Description |
|---|---|---|---|
| jmespath | string | – | Optional JMESPath projection applied to the response. See initialize.instructions for grammar and examples. |
| lat | number | – | Latitude of the area of interest; requires lon and radius_km as well. |
| lon | number | – | Longitude of the area of interest; requires lat and radius_km as well. |
| min_domains | number | – | Distinct signal domains required per cell, 2-5 (default 3); 5 is a compatibility safety threshold that yields no alerts while four domains are ingested. |
| radius_km | number | – | Positive radius in km around lat/lon to keep alerts for; requires lat and lon (maximum 20,000). |
| 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. |
| 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_similar_events ~205
Historical precedents for a situation you describe, drawn from WorldMonitor's accumulating event store (Pro).
| Name | Type | Req | Description |
|---|---|---|---|
| country | string | – | ISO 3166-1 alpha-2 country code, uppercase, e.g. "EG". Omit to search every country — usually the right choice, since a precedent elsewhere is still a precedent. |
| domain | string | – | Restrict precedents to one producing domain. Omit to search every domain. |
| jmespath | string | – | Optional JMESPath projection applied to the response. See initialize.instructions for grammar and examples. |
| limit | integer | – | Maximum precedents to return. The route returns 8 when this is omitted and caps MCP responses at 8 to stay within the output budget. |
| situation | string | yes | Description of the situation to find precedents for, e.g. "a naval blockade closes a major grain export corridor for weeks". Longer than a search phrase on purpose — more context ranks better. |
| Name | Type | Req | Description |
|---|---|---|---|
| partial | boolean | yes | True when the bounded candidate window may omit further precedents; do not treat an empty result as proof of novelty. |
| records | array | yes | Precedents, most similar first. |
| situation | string | yes | Echo of the submitted situation text, so a caller running several lookups can pair each response back to its input. |
| upstreamUnavailable | boolean | yes | True when the embedding provider or the history store could not be reached. `records` is then empty because the lookup failed — never read that as "no precedent exists". |
No examples provided.
get_social_velocity ~146
Reddit geopolitical social velocity: top posts from worldnews, geopolitics, and related subreddits with engagement score
| Name | Type | Req | Description |
|---|---|---|---|
| jmespath | string | – | Optional JMESPath projection applied to the response. See initialize.instructions for grammar and examples. |
| limit | number | – | Cap the post list to at most this many items (default 30, pass 0 for no cap). |
| subreddit | string | – | Filter to one subreddit (e.g. "worldnews", "geopolitics"). |
| 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_sources ~318
WorldMonitor's live source inventory, for deciding whether and how far to trust what the other tools return.
| Name | Type | Req | Description |
|---|---|---|---|
| country | string | – | providers view only: restrict by publisher origin using a two-letter country code or intl for international sources. Case-insensitive. |
| jmespath | string | – | Optional JMESPath projection applied to the response. See initialize.instructions for grammar and examples. |
| kind | string | – | providers view only: restrict to one kind — feed, structured, feed+structured, or operational-status. |
| limit | integer | – | Maximum rows in an enumerated view. Defaults to 50, capped at 200. Ignored by the summary view. The full provider inventory does not fit one response, so a truncated result sets returned < matched. |
| platform | string | – | outlets view only: restrict to source identities configured on a platform such as telegram. |
| query | string | – | Case-insensitive substring match — against host and provider in the providers view, against outlet name in the outlets view. Applied before limit. |
| risk | string | – | outlets view only: restrict to one declared propaganda-risk band. |
| tier | integer | – | outlets view only: restrict to one editorial tier. 1 is a wire or primary outlet. Outlets with no declared tier are never returned by this filter, because their tier is unknown rather than 4. |
| view | string | – | summary (default) returns counts only and is small. providers enumerates upstream hosts; outlets enumerates named public source identities with tier and provenance. |
| Name | Type | Req | Description |
|---|---|---|---|
| error | string | – | Present when input validation fails. Required summary counts remain available. |
| matched | number | – | Rows matching the filters before the limit was applied. Present in enumerated views. |
| outlets | array | – | Present only in the outlets view. |
| providers | array | – | Present only in the providers view. |
| returned | number | – | Rows actually returned. Less than matched means the limit truncated the result. |
| summary | object | yes | Always present, in every view, so counts are available without a second call. |
| view | string | yes | – |
No examples provided.
get_supply_chain_data ~233
Dry bulk shipping stress index, customs revenue flows, and COMTRADE bilateral trade data.
| Name | Type | Req | Description |
|---|---|---|---|
| commodity | string | – | Filter COMTRADE flows to one commodity — matches the HS code exactly or the commodity description by substring (e.g. "2709" or "crude"). |
| dataset | array | – | Restrict the response to one or more sub-datasets (dry-bulk shipping stress / customs revenue / COMTRADE flows). Omit for all. |
| jmespath | string | – | Optional JMESPath projection applied to the response. See initialize.instructions for grammar and examples. |
| limit | number | – | Cap each list dataset (carriers, months, flows) to at most this many items (default 30, pass 0 for no cap). |
| reporter | string | – | Filter COMTRADE flows to one reporter by numeric reporter code or reporter name (e.g. "156" or "China"). |
| 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_supply_vulnerabilities ~76
An absent score means insufficient evidence, never zero risk.
| Name | Type | Req | Description |
|---|---|---|---|
| country_code | string | yes | ISO 3166-1 alpha-2 country code, such as AE, JP, or DE. |
| jmespath | string | – | Optional JMESPath projection applied to the response. See initialize.instructions for grammar and examples. |
| Name | Type | Req | Description |
|---|---|---|---|
| country | string | yes | – |
| generatedAt | string | yes | – |
| iso2 | string | yes | – |
| methodologyVersion | string | yes | – |
| upstreamUnavailable | boolean | yes | – |
| vulnerabilities | array | yes | – |
No examples provided.
get_tariff_trends ~239
Global trade and pricing indicators: US tariff trends (HTS-coded), BigMac index, FAO Food Price Index, and per-country n
| Name | Type | Req | Description |
|---|---|---|---|
| country | string | – | Filter the per-country datasets to one ISO 3166-1 alpha-2 country code (e.g. "US"). It is translated to alpha-3 internally for the national-debt dataset; passing an alpha-3 code directly also works.… |
| 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 each list dataset (tariff datapoints, BigMac countries, debt entries) 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_temporal_anomalies ~195
Temporal anomaly watch: current event counts vs day-of-week and seasonal baselines, scored by z-score severity.
| Name | Type | Req | Description |
|---|---|---|---|
| jmespath | string | – | Optional JMESPath projection applied to the response. See initialize.instructions for grammar and examples. |
| limit | number | – | Cap the anomaly list to at most this many items (default 30, pass 0 for no cap). |
| min_severity | string | – | Drop anomalies below this severity band. |
| region | string | – | Filter to one region label (case-insensitive exact match). |
| 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. |
| type | string | – | Filter to one tracked stream type (e.g. "news", "satellite_fires"); see trackedTypes in the response for what is currently baselined. |
| 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_test_site_seismicity ~166
Nuclear test-site seismic monitor: USGS earthquakes near known test sites scored for proliferation concern.
| Name | Type | Req | Description |
|---|---|---|---|
| jmespath | string | – | Optional JMESPath projection applied to the response. See initialize.instructions for grammar and examples. |
| limit | number | – | Cap the event list to at most this many items (default 30, pass 0 for no cap). |
| min_concern | string | – | Drop events below this concern band. |
| site | string | – | Filter to one test site by name substring (e.g. "Punggye", "Lop Nur", case-insensitive). |
| 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_toronto_calls_attended ~147
Bounded Toronto Police Service Calls for Service Attended annual aggregates.
| Name | Type | Req | Description |
|---|---|---|---|
| division | string | – | Case-insensitive original or final TPS division filter. |
| jmespath | string | – | Optional JMESPath projection applied to the response. See initialize.instructions for grammar and examples. |
| limit | number | – | Maximum rows to return, from 1 to 100 (default 50). |
| neighbourhood | string | – | Case-insensitive neighbourhood filter. |
| 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. |
| year | number | – | Exact event year. |
| 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_toronto_reported_occurrences ~144
Bounded Toronto Police Service Major Crime Indicators rows.
| Name | Type | Req | Description |
|---|---|---|---|
| division | string | – | Case-insensitive TPS division filter. |
| jmespath | string | – | Optional JMESPath projection applied to the response. See initialize.instructions for grammar and examples. |
| limit | number | – | Maximum rows to return, from 1 to 100 (default 50). |
| neighbourhood | string | – | Case-insensitive neighbourhood filter. |
| offence | string | – | Case-insensitive offence filter. |
| 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_world_brief ~84
Citation-grounded world intelligence brief from the same precomputed news:insights:v1 snapshot used by the dashboard.
| Name | Type | Req | Description |
|---|---|---|---|
| geo_context | string | – | Deprecated compatibility field; the precomputed global snapshot is not regenerated or refocused per request. |
| jmespath | string | – | Optional JMESPath projection applied to the response. See initialize.instructions for grammar and examples. |
| Name | Type | Req | Description |
|---|---|---|---|
| ageMinutes | number | – | Whole minutes between generatedAt and the response. Always present. Capped at 3h: past that the tool reports the source unavailable rather than serving it. The cap is enforced against generatedAt, NO… |
| brief | string | – | Citation-grounded brief from the dashboard insights snapshot. |
| generatedAt | string|number|null | – | – |
| headlines | array | – | – |
| model | string | – | LLM model used by the insights seeder. |
| provider | string | – | LLM provider used by the insights seeder. |
| sources | array | – | Producer citation records in original order; empty URLs are retained as fallbacks so citation indexes cannot shift. |
| stale | boolean | – | True when the snapshot is older than the 60-minute freshness gate and is being served as last-known-good because the seeder has not published since. Always present, on fresh responses too. The conten… |
| summary | string | – | Alternate naming used by some upstream variants. |
| topStories | array | – | Corroboration evidence for each entry in headlines, index-aligned: topStories[i] describes headlines[i]. Published by the insights seeder, so no request-time computation is involved. Fields unavailab… |
No examples provided.
get_wto_trade_flows ~152
WTO merchandise trade flows for one reporting country versus the World, over a configurable year window.
| Name | Type | Req | Description |
|---|---|---|---|
| jmespath | string | – | Optional JMESPath projection applied to the response. See initialize.instructions for grammar and examples. |
| reporter | string | – | WTO reporting country as a 3-digit UN M49 code (e.g. "840" = United States). Defaults to "840". The only partner served is the World ("000"); any other partner answers not_covered. |
| years | integer | – | Number of years to look back from the most recent published year, inclusive of both endpoints (10 returns 11 calendar years). Defaults to 10; 30 is the full seeded window. |
| Name | Type | Req | Description |
|---|---|---|---|
| coverageEndYear | integer | – | Most recent calendar year in the served window; 0 when no flows are served. |
| coverageStartYear | integer | – | First calendar year in the served window; 0 when no flows are served. |
| fetchedAt | string | – | ISO timestamp when WTO was read by the seeder. Empty when no flows are served. |
| flows | array | yes | – |
| unavailableReason | string | yes | TRADE_FLOW_UNAVAILABLE_REASON_UNSPECIFIED when flows are served; otherwise WHY no rows returned. NOT_COVERED is a contract answer (a retry cannot help); the rest name faults. |
| upstreamUnavailable | boolean | yes | True when a fault prevented serving flows; false both when served and when the combination is simply not covered. |
No examples provided.
list_five_factor_scorecards ~59
List compact v1 scorecards; read hasScore first because false makes numeric zero an insufficient-data placeholder.
| Name | Type | Req | Description |
|---|---|---|---|
| jmespath | string | – | Optional JMESPath projection applied to the response. See initialize.instructions for grammar and examples. |
| Name | Type | Req | Description |
|---|---|---|---|
| computedAt | string | yes | – |
| methodologyVersion | string | yes | – |
| scorecards | array | yes | – |
| unavailable | boolean | yes | – |
| unavailableReason | string | yes | – |
No examples provided.
list_x_feed ~98
Curated public news-account posts from monitored X accounts.
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | – | Optional account handle without @ |
| jmespath | string | – | Optional JMESPath projection applied to the response. See initialize.instructions for grammar and examples. |
| limit | number | – | Maximum posts to return (1-200, default 50) |
| topic | string | – | Optional topic filter such as breaking, conflict, geopolitics, cyber |
| Name | Type | Req | Description |
|---|---|---|---|
| count | number | – | – |
| enabled | boolean | – | Whether the ais-relay X poller currently has credentials. |
| error | string | – | – |
| posts | array | – | – |
No examples provided.
search_flight_prices_by_date ~254
Search Google Flights date-grid pricing across a date range.
| Name | Type | Req | Description |
|---|---|---|---|
| cabin_class | string | – | Cabin class: "economy", "premium_economy", "business", or "first" (optional, default economy) |
| destination | string | yes | IATA code for the arrival airport, e.g. "LHR" |
| end_date | string | yes | End of the date range in YYYY-MM-DD format |
| is_round_trip | boolean | – | Whether to search round-trip prices (default false). Requires trip_duration when true. |
| jmespath | string | – | Optional JMESPath projection applied to the response. See initialize.instructions for grammar and examples. |
| origin | string | yes | IATA code for the departure airport, e.g. "JFK" |
| passengers | number | – | Number of passengers (1-9, default 1) |
| sort_by_price | boolean | – | Sort results by price ascending (default false, sorts by date) |
| start_date | string | yes | Start of the date range in YYYY-MM-DD format |
| trip_duration | number | – | Trip duration in days — required when is_round_trip is true (e.g. 7 for a one-week trip) |
| Name | Type | Req | Description |
|---|---|---|---|
| degraded | boolean | – | True when the upstream search failed or returned partial results. |
| error | string | – | – |
| prices | array | – | – |
| search_metadata | object|null | – | – |
No examples provided.
search_flights ~251
Search Google Flights for real-time flight options between two airports on a specific date.
| Name | Type | Req | Description |
|---|---|---|---|
| cabin_class | string | – | Cabin class: "economy", "premium_economy", "business", or "first" (optional, default economy) |
| departure_date | string | yes | Departure date in YYYY-MM-DD format |
| destination | string | yes | IATA code for the arrival airport, e.g. "LHR" |
| jmespath | string | – | Optional JMESPath projection applied to the response. See initialize.instructions for grammar and examples. |
| max_stops | string | – | Max stops: "0" or "non_stop" for nonstop, "1" or "one_stop" for max one stop, or omit for any (optional) |
| origin | string | yes | IATA code for the departure airport, e.g. "JFK" |
| passengers | number | – | Number of passengers (1-9, default 1) |
| return_date | string | – | Return date in YYYY-MM-DD format for round trips (optional) |
| sort_by | string | – | Sort order: "price" (cheapest), "duration", "departure", or "arrival" (optional) |
| Name | Type | Req | Description |
|---|---|---|---|
| degraded | boolean | – | True when the upstream search failed or returned no usable results. |
| error | string | – | Present when upstream returned a usable error message. |
| flights | array | – | – |
| search_metadata | object|null | – | – |
No examples provided.
search_intel_history ~257
Semantic search over WorldMonitor's accumulating store of past intelligence events (Pro), ranked by similarity.
| Name | Type | Req | Description |
|---|---|---|---|
| country | string | – | ISO 3166-1 alpha-2 country code, uppercase, e.g. "UA". Omit to search every country. Events not attributable to a single country are excluded when this is set. |
| domain | string | – | Restrict to one producing domain. Omit to search every domain. |
| from | number | – | Earliest occurredAt to consider, 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 matches to return. The route returns 16 when this is omitted and caps MCP responses at 16 to stay within the output budget. |
| query | string | yes | Free-text search phrase, e.g. "artillery strikes near Kharkiv". Embedded with the same model the stored vectors were written under, so phrasing close to how an analyst would describe the event ranks… |
| to | number | – | Latest occurredAt to consider, Unix epoch milliseconds, inclusive. Omit for no upper bound. |
| Name | Type | Req | Description |
|---|---|---|---|
| partial | boolean | yes | True when the bounded candidate window may omit further matches; do not treat the result as exhaustive. |
| query | string | yes | Echo of the submitted query, so a caller running several searches can pair each response back to its input. |
| records | array | yes | Matching events, most similar first. |
| upstreamUnavailable | boolean | yes | True when the embedding provider or the history store could not be reached. `records` is then empty because the lookup failed — never read that as "no event matched". |
No examples provided.
simulate_infrastructure_cascade ~104
Infrastructure cascade simulation: what fails downstream when a cable, chokepoint, pipeline, or port is disrupted.
| Name | Type | Req | Description |
|---|---|---|---|
| disruption_level | number | – | Initial failure severity between 0.1 and 1 (default 1). |
| jmespath | string | – | Optional JMESPath projection applied to the response. See initialize.instructions for grammar and examples. |
| source_id | string | – | Node id to disrupt (see the no-argument catalog for valid ids). |
| Name | Type | Req | Description |
|---|---|---|---|
| cached_at | string|null | yes | Fetch time of the seeded cable table. |
| 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_id_sample | array | – | Sample of valid node ids; present only alongside an unknown-source_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.
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.