Give AI agents machine-readable external world state.
Connect agents to queryable Events, Stories, Entities, summaries, and geographic discovery so they can reason over changing world state instead of searching raw news from scratch.
Ask an agent to monitor Lebanon conflict events with fatalities, summarize the most significant Events and linked Stories, and flag changes that matter for regional exposure.
Your job can call REST directly, and your agent can call the same product data through MCP.
You know the Event card shape and the MCP tools the agent should use.
The monitor returns structured conflict records sorted by significance.
The agent has Story clusters, linked Events, Entities, and top article evidence.
A working Hello World path from query to product surface.
Each step shows the deterministic REST call and the agent-native MCP equivalent using the current progressive discovery wrapper.
- Step 1
Connect the API and MCP surfaces
Set up the same credential for deterministic REST calls and agent-native MCP calls.
Your job can call REST directly, and your agent can call the same product data through MCP.pythonREST client setupimport os import httpx API_KEY = os.environ["GDELT_API_KEY"] client = httpx.Client( base_url="https://gdeltcloud.com", timeout=30, headers={ "Authorization": f"Bearer {API_KEY}", "Accept": "application/json", }, )textExpected setup resultNo product query runs in this step. The credential is now available to both REST and MCP calls. - Step 2
Probe the Event shape or inspect MCP schemas
Before asking an agent to monitor anything, check the returned fields and the exact tool contract.
You know the Event card shape and the MCP tools the agent should use.pythonREST shape probeparams = { "country": "Lebanon", "event_family": "conflict", "sort": "significance", "limit": 1, } r = client.get("/api/v2/events", params=params) r.raise_for_status() event_probe = r.json()jsonRepresentative list response{ "success": true, "data": [ { "id": "conflict_lebanon_001", "url": "https://gdeltcloud.com/events/border-area-conflict-event-with-linked-story-evidence--conflict_lebanon_001", "primary_story_url": "https://gdeltcloud.com/stories/cross-border-escalation-story-cluster-storyleb", "family": "conflict", "title": "Border-area conflict event with linked story evidence", "summary": "Structured conflict event card with linked Story evidence and source articles.", "event_date": "2026-05-07", "category": "Explosions/Remote violence", "subcategory": "Shelling/artillery/missile attack", "domain": "CONFLICT", "event_code": "conflict_source_001", "geo": { "country": "Lebanon", "region": "Middle East", "continent": "Asia", "admin1": "South Governorate", "location": "southern border area", "latitude": 33.2721, "longitude": 35.2033 }, "geo_context": { "location_country": "Lebanon", "actor_origin_countries": [ "Lebanon", "Israel" ] }, "actors": [ { "name": "Armed group", "country": "Lebanon", "role": "actor1" }, { "name": "Military forces", "country": "Israel", "role": "actor2" } ], "metrics": { "significance": 0.84, "goldstein_scale": null, "magnitude": null, "systemic_importance": null, "propagation_potential": null, "market_sensitivity": null, "confidence": 0.91, "article_count": 18 }, "has_fatalities": false, "fatalities": 0, "story_refs": [ { "id": "story_lebanon_border_001", "url": "https://gdeltcloud.com/stories/cross-border-escalation-story-cluster-storyleb", "title": "Cross-border escalation story cluster", "story_date": "2026-05-07", "article_count": 18 } ], "entity_refs": [ { "id": "https://en.wikipedia.org/wiki/Hezbollah", "name": "Hezbollah", "type": "organization", "wikipedia_url": "https://en.wikipedia.org/wiki/Hezbollah", "image_url": null, "avatar_url": null } ], "top_articles": [ { "url": "https://example.org/source-article", "title": "Representative source article", "domain": "example.org", "domain_avatar_url": "https://www.google.com/s2/favicons?domain=example.org&sz=64", "rank": 1, "image_url": null } ], "image_url": null } ], "pagination": { "limit": 1, "cursor": null, "next_cursor": null }, "sort": "significance" } - Step 3
Monitor Lebanon conflict Events
Pull a small, high-signal Event set that an agent can reason over without reading raw news.
The monitor returns structured conflict records sorted by significance.pythonREST Event monitorparams = { "country": "Lebanon", "event_family": "conflict", "has_fatalities": True, "sort": "significance", "limit": 10, } r = client.get("/api/v2/events", params=params) r.raise_for_status() events = r.json()["data"]jsonRepresentative Event monitor output{ "success": true, "data": [ { "id": "conflict_lebanon_002", "url": "https://gdeltcloud.com/events/high-significance-conflict-event-with-reported-fatalities--conflict_lebanon_002", "primary_story_url": "https://gdeltcloud.com/stories/cross-border-escalation-story-cluster-storyleb", "family": "conflict", "title": "High-significance conflict event with reported fatalities", "summary": "A high-significance conflict Event linked to a Story cluster and source evidence.", "event_date": "2026-05-07", "category": "Explosions/Remote violence", "subcategory": "Shelling/artillery/missile attack", "domain": "CONFLICT", "event_code": "conflict_source_002", "geo": { "country": "Lebanon", "region": "Middle East", "continent": "Asia", "admin1": "South Governorate", "location": "southern border area", "latitude": 33.2721, "longitude": 35.2033 }, "geo_context": { "location_country": "Lebanon", "actor_origin_countries": [ "Lebanon", "Israel" ] }, "actors": [ { "name": "Armed group", "country": "Lebanon", "role": "actor1" }, { "name": "Military forces", "country": "Israel", "role": "actor2" } ], "metrics": { "significance": 0.88, "goldstein_scale": null, "magnitude": null, "systemic_importance": null, "propagation_potential": null, "market_sensitivity": null, "confidence": 0.92, "article_count": 21 }, "has_fatalities": true, "fatalities": 2, "story_refs": [ { "id": "story_lebanon_border_002", "url": "https://gdeltcloud.com/stories/cross-border-escalation-story-cluster-storyleb", "title": "Cross-border escalation story cluster", "story_date": "2026-05-07", "article_count": 21 } ], "entity_refs": [ { "id": "https://en.wikipedia.org/wiki/Hezbollah", "name": "Hezbollah", "type": "organization", "wikipedia_url": "https://en.wikipedia.org/wiki/Hezbollah", "image_url": null, "avatar_url": null } ], "top_articles": [ { "url": "https://example.org/source-article", "title": "Representative source article", "domain": "example.org", "domain_avatar_url": "https://www.google.com/s2/favicons?domain=example.org&sz=64", "rank": 1, "image_url": null } ], "image_url": null } ], "pagination": { "limit": 10, "cursor": null, "next_cursor": null }, "sort": "significance" } - Step 4
Pull linked Story evidence
Move from structured incidents to narrative clusters and source articles the agent can cite.
The agent has Story clusters, linked Events, Entities, and top article evidence.pythonREST Story evidenceparams = { "country": "Lebanon", "has_events": True, "has_fatalities": True, "sort": "significance", "limit": 5, } r = client.get("/api/v2/stories", params=params) r.raise_for_status() stories = r.json()["data"]jsonRepresentative Story evidence output{ "success": true, "data": [ { "id": "story_lebanon_border_002", "url": "https://gdeltcloud.com/stories/cross-border-escalation-story-cluster-storyleb", "title": "Cross-border escalation story cluster", "story_date": "2026-05-07", "category": "conflict_security", "subcategory": null, "geo": { "country": "Lebanon", "region": "Middle East", "continent": "Asia", "admin1": "South Governorate", "location": "southern border area", "latitude": 33.2721, "longitude": 35.2033 }, "geo_context": { "location_country": "Lebanon", "actor_origin_countries": [ "Lebanon", "Israel" ] }, "metrics": { "significance": 0.79, "article_count": 21, "linked_event_count": 3, "max_linked_event_significance": 0.88 }, "has_events": true, "has_fatalities": true, "fatalities": 2, "linked_events": [ { "id": "conflict_lebanon_002", "title": "High-significance conflict event with reported fatalities" } ], "entity_refs": [ { "id": "https://en.wikipedia.org/wiki/Hezbollah", "name": "Hezbollah", "type": "organization", "wikipedia_url": "https://en.wikipedia.org/wiki/Hezbollah", "image_url": null, "avatar_url": null } ], "top_articles": [ { "url": "https://example.org/source-article", "title": "Representative source article", "domain": "example.org", "domain_avatar_url": "https://www.google.com/s2/favicons?domain=example.org&sz=64", "rank": 1, "image_url": null } ], "image_url": null } ], "pagination": { "limit": 5, "cursor": null, "next_cursor": null }, "sort": "significance" }
Workflow fit
Agents that monitor a country, actor, sector, or issue domain.
Research copilots that cite structured Events and linked Story evidence.
Automated briefs that combine GDELT Cloud signals with your internal workflow.
Output widgets
Highest-significance conflict Events returned for the current Lebanon monitor window.
Linked story clusters retained so agent conclusions stay source-backed.
The same product data can be called through a tool-aware agent runtime.