Data source: GDACS, GDELT
Overview
Crisis Intelligence searches across 2 data sources (GDACS, GDELT) in a single query. It deduplicates and normalizes results, saving you from building 2 separate integrations. This tutorial walks through all 4 tools with working code examples.
Prerequisites
- Sign up at https://context.gnist.ai/signup for a free API key (100 calls/day).
- Choose your integration method: MCP protocol or REST API.
Connect via MCP
Add to your MCP client config (Claude Desktop, Cursor, etc.):
{
"mcpServers": {
"gnist-crisis-intelligence": {
"url": "https://context.gnist.ai/mcp/crisis-intelligence/",
"headers": {
"Gnist-API-Key": "YOUR_API_KEY"
}
}
}
}
Tools (4)
search_crises
Search for crises combining GDACS disaster alerts, USGS earthquakes, NOAA weather alerts, and GDELT news. Returns structured disaster events, seismic data, active weather alerts, and related news articles from global media. All eight sources are queried in parallel for fast response. Sources: - GDACS: UN/EU disaster alerts (earthquakes, floods, cyclones, volcanoes, droughts, wildfires) - USGS: Real-time seismic events with magnitude, depth, and location - NOAA NWS: Active US weather alerts (severe storms, floods, fire weather) - NVE: Norwegian flood warnings with regional activity levels - SMHI: Swedish weather warnings (fire risk, storms, floods, extreme weather) - DMI: Danish weather warnings (storms, rain, wind, snow, fog, ice) - FMI: Finnish weather warnings via MeteoAlarm (fire risk, storms, wind, rain, flooding) - GDELT: Global news media coverage and sentiment Examples: search_crises(query="earthquake") search_crises(query="flood", country="Bangladesh", alert_levels="Orange,Red") search_crises(query="wildfire California", event_types="WF", news_timespan="24h")
| Parameter | Type | Required | Description |
|---|---|---|---|
query | string | required | Search term — crisis type, country, or topic (e.g. 'earthquake Turkey', 'flood Bangladesh'). |
from_date | string | optional | Start date (YYYY-MM-DD). Defaults to 90 days ago. (default: ) |
to_date | string | optional | End date (YYYY-MM-DD). Defaults to today. (default: ) |
event_types | string | optional | Comma-separated: EQ (earthquake), TC (tropical cyclone), FL (flood), VO (volcano), DR (drought), WF (wildfire). (default: ) |
alert_levels | string | optional | Comma-separated: Green, Orange, Red. (default: ) |
country | any | optional | Filter by country name. |
news_timespan | string | optional | GDELT news lookback: 24h, 7d, 1m. (default: 7d) |
max_events | integer | optional | Max disaster events. (default: 25) |
max_articles | integer | optional | Max news articles. (default: 10) |
min_magnitude | number | optional | Minimum earthquake magnitude for USGS data. (default: 4.5) |
max_earthquakes | integer | optional | Max USGS earthquake results. (default: 10) |
max_weather_alerts | integer | optional | Max NOAA weather alerts. (default: 10) |
max_flood_warnings | integer | optional | Max NVE flood warnings (Norway). (default: 10) |
max_smhi_warnings | integer | optional | Max SMHI weather warnings (Sweden). (default: 10) |
max_dmi_warnings | integer | optional | Max DMI weather warnings (Denmark). (default: 10) |
max_fmi_warnings | integer | optional | Max FMI weather warnings (Finland). (default: 10) |
curl -X POST "https://context.gnist.ai/mcp/crisis-intelligence/" \
-H "Content-Type: application/json" \
-H "Gnist-API-Key: YOUR_API_KEY" \
-d '{"jsonrpc": "2.0", "method": "tools/call", "id": 1, "params": {"name": "search_crises", "arguments": {"query": "'earthquake"}}}'
import httpx
resp = httpx.post(
"https://context.gnist.ai/mcp/crisis-intelligence/",
headers={"Gnist-API-Key": "YOUR_API_KEY"},
json={'id': 1,
'jsonrpc': '2.0',
'method': 'tools/call',
'params': {'arguments': {'query': "'earthquake"}, 'name': 'search_crises'}},
)
print(resp.json())
get_active_crises
Get currently active disaster events worldwide from GDACS. Returns ongoing crises from the last 90 days. Defaults to Orange and Red alert levels — the most significant events requiring attention. Event types: - EQ: Earthquake - TC: Tropical Cyclone - FL: Flood - VO: Volcano - DR: Drought - WF: Wildfire Examples: get_active_crises() get_active_crises(alert_levels="Red") get_active_crises(event_types="EQ,VO", country="Japan")
| Parameter | Type | Required | Description |
|---|---|---|---|
event_types | string | optional | Comma-separated: EQ, TC, FL, VO, DR, WF. Empty = all types. (default: ) |
alert_levels | string | optional | Comma-separated: Green, Orange, Red. Default: Orange,Red. (default: ) |
country | any | optional | Filter by country name. |
limit | integer | optional | Max events to return. (default: 50) |
curl -X POST "https://context.gnist.ai/mcp/crisis-intelligence/" \
-H "Content-Type: application/json" \
-H "Gnist-API-Key: YOUR_API_KEY" \
-d '{"jsonrpc": "2.0", "method": "tools/call", "id": 1, "params": {"name": "get_active_crises", "arguments": {"event_types": ""}}}'
import httpx
resp = httpx.post(
"https://context.gnist.ai/mcp/crisis-intelligence/",
headers={"Gnist-API-Key": "YOUR_API_KEY"},
json={'id': 1,
'jsonrpc': '2.0',
'method': 'tools/call',
'params': {'arguments': {'event_types': ''}, 'name': 'get_active_crises'}},
)
print(resp.json())
list_crisis_sources
List all crisis intelligence data sources and their coverage. Shows which disaster monitoring systems and news sources are queried during crisis searches. Examples: list_crisis_sources()
curl -X POST "https://context.gnist.ai/mcp/crisis-intelligence/" \
-H "Content-Type: application/json" \
-H "Gnist-API-Key: YOUR_API_KEY" \
-d '{"jsonrpc": "2.0", "method": "tools/call", "id": 1, "params": {"name": "list_crisis_sources", "arguments": {}}}'
import httpx
resp = httpx.post(
"https://context.gnist.ai/mcp/crisis-intelligence/",
headers={"Gnist-API-Key": "YOUR_API_KEY"},
json={'id': 1,
'jsonrpc': '2.0',
'method': 'tools/call',
'params': {'arguments': {}, 'name': 'list_crisis_sources'}},
)
print(resp.json())
report_feedback
Report a bug, feature request, or general feedback for this data source. Use this when something doesn't work as expected, when you'd like a new feature, or when you have suggestions for improvement. Args: feedback: Describe the issue or suggestion. feedback_type: One of 'bug', 'feature_request', or 'general'.
| Parameter | Type | Required | Description |
|---|---|---|---|
feedback | string | required | |
feedback_type | string | optional | (default: general) |
curl -X POST "https://context.gnist.ai/mcp/crisis-intelligence/" \
-H "Content-Type: application/json" \
-H "Gnist-API-Key: YOUR_API_KEY" \
-d '{"jsonrpc": "2.0", "method": "tools/call", "id": 1, "params": {"name": "report_feedback", "arguments": {"feedback": "example"}}}'
import httpx
resp = httpx.post(
"https://context.gnist.ai/mcp/crisis-intelligence/",
headers={"Gnist-API-Key": "YOUR_API_KEY"},
json={'id': 1,
'jsonrpc': '2.0',
'method': 'tools/call',
'params': {'arguments': {'feedback': 'example'}, 'name': 'report_feedback'}},
)
print(resp.json())
Common Patterns
Use
search_crises to find items, then get_active_crises to get full details. This two-step pattern is common for exploring data before drilling down.Several tools support
limit, offset, or page parameters. Start with small limits during development, then increase for production queries.Use date range parameters to narrow results to a specific time window. Dates are typically in
YYYY-MM-DD format.FAQ
What data does Crisis Intelligence provide?
Unified crisis monitoring combining GDACS disaster alerts (earthquakes, floods, cyclones, volcanoes, droughts, wildfires) with GDELT global news coverage. It exposes 4 tools: search_crises, get_active_crises, list_crisis_sources, report_feedback.
What do I need to get started?
A Gnist API key (free tier: 100 calls/day). Sign up at https://context.gnist.ai/signup.
What format does the Crisis Intelligence API return?
JSON, via either MCP protocol (JSON-RPC 2.0) or REST API.
Which data sources does Crisis Intelligence aggregate?
GDACS, GDELT. Results are deduplicated and normalized into a consistent format.