You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Star967 (967)You must be signed in to star a repository
About
139-tool MCP server for real-time global intelligence from free public APIs: markets, SEC filings, conflict, military, aircraft-cohort early warning, refugee and migration flows, cyber, climate, news, and 30+ domains. Cited AI situation briefs, geofences with change detection, live SSE dashboard. MIT, no paid API keys.
Real-time global intelligence across 30+ domains with 139 MCP tools, a live ops-center dashboard, a CLI, and a Qdrant vector store for enterprise-grade semantic search across accumulated intelligence. All data comes from free, public APIs: no paid subscriptions required.
Built for AI agents that need world awareness: market conditions, geopolitical risk, military posture, aircraft-cohort early warning, refugee and migration flows, supply chain disruptions, cyber threats, and more — all queryable via the Model Context Protocol. The vector store enables natural language queries like "military activity near Taiwan" or "cyber threats targeting healthcare" across all historical data.
What You Get
Domain
Tools
Data Sources
Financial Markets
7
Yahoo Finance, CoinGecko, Alternative.me, Mempool
Forex & Currency
3
ECB/Frankfurter (8 major pairs, timeseries, cross rates)
Bonds & Yields
2
FRED, Yahoo Finance (yield curve, bond ETFs, spread analysis)
Earnings
2
Yahoo Finance (mega-cap calendar, surprise history)
SEC Filings
3
SEC EDGAR (full-text search, company filings, 8-K material events)
Cited markdown morning brief: top events, headlines, trends, and timeline
AOI Geofences
10
User-defined areas of interest in three shapes (circle, polygon, corridor): define/list/update/delete, a cited multi-domain brief, hotspot escalation scoring, and enter/leave change detection for a user's own area. News is scoped to the place the area sits in (OSM Nominatim reverse geocoding, no key), not to the area's name
Severe Weather
2
NWS active CAP alerts (US), Meteoalarm (39 EU countries)
Space Launches
1
Launch Library 2 upcoming launches
Volcanoes
1
Smithsonian GVP weekly activity report
Tropical Cyclones
2
NHC (Atlantic, E/C Pacific) + JTWC (NW Pacific, N Indian, S Hemisphere)
Situation Brief
1
Cited situational awareness brief over MCP: bounded server-side overview synthesized via local Ollama, with a mechanically-cited fallback
Fetcher: Centralized async HTTP client (httpx). Retries, per-source rate limiting, stale-data fallback. Auto-stores results in vector store on fresh fetches.
CircuitBreaker: Per-source tracking. 3 consecutive failures trips for 5 minutes. Each RSS feed gets its own breaker.
Cache: SQLite WAL-mode TTL cache. get() returns live data, get_stale() returns expired data for fallback.
VectorStore: Qdrant + FastEmbed (BAAI/bge-small-en-v1.5, 384-dim). Async background worker queue for non-blocking storage. Enables semantic search across all accumulated intelligence.
Collector: Standalone daemon that fetches all 55 sources in parallel and populates the vector store. Run once or as a daemon (default: 5-minute interval). Includes the AOI change sweep, so a running daemon continuously watches every defined geofence.
NASA FIRMS satellite fire hotspots (9 global regions)
Environmental (2)
Tool
Description
intel_environmental_events
NASA EONET natural events
intel_disaster_alerts
GDACS disaster alerts with severity scoring
Conflict & Security (4)
Tool
Description
intel_acled_events
ACLED armed conflict events
intel_ucdp_events
Uppsala Conflict Data Program events
intel_unrest_events
Social unrest with Haversine dedup
intel_humanitarian_summary
HDX humanitarian crisis datasets
Military & Defense (6)
Tool
Description
intel_military_flights
Military aircraft via adsb.lol (OpenSky fallback)
intel_theater_posture
Activity across 5 theaters (EU, Indo-Pacific, ME, Arctic, Korea)
intel_aircraft_details
Aircraft lookup by ICAO24 hex (hexdb.io)
intel_aircraft_batch
Batch aircraft lookup (multiple hex codes)
intel_military_surge
Foreign aircraft concentration anomaly detection
intel_usni_fleet
USNI News naval fleet tracker
Infrastructure (5)
Tool
Description
intel_internet_outages
Cloudflare Radar internet disruptions
intel_cable_health
Submarine cable corridor health
intel_cascade_analysis
Infrastructure cascade simulation
intel_service_status
Cloud platform health (AWS, Azure, GCP, Cloudflare, GitHub)
intel_bgp_status
RIPEstat BGP status for one prefix or ASN: RIS peer visibility, origin ASNs, RPKI validity (a per-resource health check, not global hijack detection)
Maritime (2)
Tool
Description
intel_nav_warnings
NGA maritime navigation warnings
intel_vessel_snapshot
Naval activity at 9 strategic waterways
Geospatial Datasets (10)
Tool
Description
intel_military_bases
70 military bases from 9 operators
intel_strategic_ports
40 strategic ports across 6 types
intel_pipelines
24 oil/gas/hydrogen pipelines
intel_nuclear_facilities
24 nuclear power/enrichment/research facilities
intel_undersea_cables
34 submarine communications cables
intel_ai_datacenters
48 AI/HPC datacenters worldwide
intel_spaceports
27 global spaceports
intel_critical_minerals
27 strategic mineral deposits
intel_stock_exchanges
82 stock exchanges worldwide
intel_trade_routes
Major trade routes and chokepoints
News & Media (3)
Tool
Description
intel_news_feed
119 global RSS feeds with 4-tier source ranking
intel_trending_keywords
Trending terms with spike detection
intel_gdelt_search
GDELT 2.0 global news search
Intelligence Analysis (8)
Tool
Description
intel_signal_convergence
Geographic convergence of multi-domain signals
intel_focal_points
Multi-signal focal point detection
intel_signal_summary
Country-level signal aggregation
intel_temporal_anomalies
Activity deviations from baselines
intel_instability_index
Country Instability Index v2 (0-100)
intel_risk_scores
ACLED-based conflict risk scoring
intel_hotspot_escalation
Escalation scores for 22 intel hotspots
intel_country_dossier
Comprehensive country intelligence dossier
NLP Intelligence (4)
Tool
Description
intel_extract_entities
Named entity extraction (countries, leaders, orgs, CVEs, APTs)
intel_classify_event
Event classification into 14 threat categories
intel_news_clusters
Topic clustering by Jaccard similarity
intel_keyword_spikes
Keyword spike detection with Welford's algorithm
Strategic Synthesis (4)
Tool
Description
intel_strategic_posture
Composite global risk from 9 weighted domains
intel_world_brief
Structured daily intelligence summary
intel_fleet_report
Naval fleet activity report with readiness scoring
intel_population_exposure
Population at risk near active events (105-city dataset)
Climate (1)
Tool
Description
intel_climate_anomalies
Open-Meteo temperature/precipitation anomalies
Prediction Markets (1)
Tool
Description
intel_prediction_markets
Polymarket prediction contracts
Elections (1)
Tool
Description
intel_election_calendar
Global election calendar with risk scoring
Displacement and migration (5)
Tool
Description
intel_displacement_summary
UNHCR refugee/IDP statistics, top 30 origins
intel_migration_flows
UNHCR origin -> destination corridors (country or region filters), with change vs the prior year
intel_migration_surges
Largest year-over-year increases and decreases by origin and corridor, plus IDPs, sized against population
intel_migration_history
One country's yearly series since 1951 as an origin or a host, with its peak and largest waves
intel_net_migration
World Bank net migration and migrant stock: latest ranking, regions, or one country since 1960
Aviation (5)
Tool
Description
intel_airport_delays
FAA airport delay status
intel_aviation_domestic
Global air traffic snapshot from OpenSky
intel_jet_cohort_snapshot
Live airborne business-jet (ICAO type designators) or military cohort from adsb.lol; learns cohort membership as a side effect
intel_jet_activity_anomaly
Peak concurrent airborne cohort aircraft in a UTC half-hour vs the same slot on prior same-weekday dates (holiday-adjacent dates swapped out); robust z, alert level 1-5, deficit flag
intel_jet_excess_origins
Infers takeoffs/landings from heatmap tracks, density-clusters endpoints, and reports clusters above their baseline median: departure/arrival anchor, regional, or diffuse
Cohort early warning. The three intel_jet_* tools watch a cohort of aircraft
(business jets by ICAO type designator, or military) for activity that departs
from its calendar baseline, and locate where an excess came from. Data:
adsb.lol's live API and its public half-hour globe_history heatmaps (readsb
format, ODbL 1.0, no key). Heatmaps are ~14 MB each and immutable once
published, so they are cached on disk next to the cache DB
(WORLD_INTEL_HEATMAP_CACHE_MB, default 1024) and fetched at most one at a
time with a 2 s floor. The cohort is learned from live snapshots (run
intel_jet_cohort_snapshot or the collector daemon, which now includes
bizjet_cohort and military_cohort); the analyses only use members first
seen min_learning_lead_hours (default 24) before the window, because a
cohort learned during a window inflates that window (measured: 1,002 vs a
206 baseline median when the gate is bypassed). Until the cohort has that
lead, the tools answer warming_up. The baseline is a handful of
same-weekday slots fetched on demand, not a year-long backfill, so there
are no learned holiday profiles or annual ratios.
Approach inspired by kylemcdonald/ews
(Early Warning System: business-jet cohorts against calendar baselines, and
the excess-origin detector). This is an independent implementation over a
different, openly licensed data source; no ews code is used.
Cyber Threats (1)
Tool
Description
intel_cyber_threats
Aggregated cyber intel (URLhaus, CISA KEV, SANS)
Space Weather (1)
Tool
Description
intel_space_weather
Solar activity (Kp index, X-ray flux, SWPC alerts)
AI & Technology (4)
Tool
Description
intel_ai_releases
arXiv AI papers, HuggingFace models
intel_hacker_news
Hacker News top stories
intel_trending_repos
GitHub trending repositories
intel_arxiv_papers
arXiv paper search
Health (1)
Tool
Description
intel_disease_outbreaks
WHO DON, ProMED, CIDRAP outbreaks
Social & Sanctions (3)
Tool
Description
intel_social_signals
Reddit geopolitical discussion velocity
intel_sanctions_search
OFAC SDN list search
intel_nuclear_monitor
Seismic monitoring near nuclear test sites
Shipping & Trade (1)
Tool
Description
intel_shipping_index
Dry bulk shipping stress index
Government (1)
Tool
Description
intel_usa_spending
USAspending.gov federal contracts
Country Intelligence (3)
Tool
Description
intel_country_brief
Quick country situation summary
intel_country_stocks
Stock exchanges and listings by country
intel_financial_centers
Global financial centers ranking
Extended Geospatial (1)
Tool
Description
intel_cloud_regions
Cloud provider regions worldwide
Traffic (2)
Tool
Description
intel_traffic_flow
Road traffic flow data
intel_traffic_incidents
Real-time traffic incidents
Cross-Domain Alerts (2)
Tool
Description
intel_alert_digest
Cross-domain alert aggregation
intel_weekly_trends
Weekly trend analysis
Monitoring (2)
Tool
Description
intel_webcams
Public webcam locations and live previews
intel_status
Server health, cache stats, circuit breaker status
Vector Search (5)
Tool
Description
intel_semantic_search
Natural language search across all accumulated intelligence
intel_similar_events
Find events similar to a given data point
intel_timeline
Chronological view of intelligence for a domain/category
intel_vector_stats
Vector store collection statistics
intel_collect
Trigger an on-demand collection cycle
Cross-Domain Analytics (3)
Tool
Description
intel_cross_correlate
Find correlated signals across all domains for a given topic
intel_domain_summary
Per-category summary of stored intelligence (counts, sources, recency)
intel_trend_detection
Detect activity surges/drops by comparing recent vs baseline periods
Reports (1)
Tool
Description
intel_generate_report
Generate a PDF or HTML intelligence report covering 18 domains in parallel
AOI Geofences (10)
Tool
Description
intel_aoi_define
Define a named area of interest: point + radius in km (1-2000)
intel_aoi_define_polygon
Define a polygon AOI from 3-64 [lat, lon] vertices (a border region, a strait, an EEZ)
intel_aoi_define_corridor
Define a corridor AOI: 2-64 waypoints plus a width in km (a shipping lane, supply road, cable run)
intel_aoi_update
Rename an AOI or change its center/radius in place (a rename keeps its change history)
intel_aoi_list
List all user-defined AOIs
intel_aoi_delete
Delete a user-defined AOI by name
intel_aoi_brief
Cited brief for an AOI: earthquakes, military flights, wildfires, conflict events, aviation, nearby infrastructure, and news mentions, all filtered to the AOI's radius
intel_aoi_escalation
Hotspot escalation scoring (same engine as the 22 built-in hotspots) applied to a user AOI
intel_aoi_changes
What entered or left an AOI since the last sweep (earthquakes, military flights, ACLED events, wildfire clusters, news); the first call sets a baseline
intel_aoi_digest
One change sweep across every AOI (or a named subset) with a combined markdown digest; a scheduler can call it on an interval
Daily Digest (1)
Tool
Description
intel_daily_digest
Cited markdown morning brief: top events by domain, recent headlines, and (with the vector store) trends and a 24h timeline; every item carries a [n] citation
Severe Weather (2)
Tool
Description
intel_weather_alerts
US National Weather Service active CAP alerts (US only)
intel_meteoalarm_alerts
Meteoalarm severe-weather warnings for 39 European countries (per-country feeds)
Tropical Cyclones (2)
Tool
Description
intel_cyclones
NHC active storms: Atlantic, Eastern and Central Pacific
intel_jtwc_cyclones
JTWC warnings: Northwest Pacific, North Indian Ocean, Southern Hemisphere
Space Launches (1)
Tool
Description
intel_launch_schedule
Upcoming rocket launches from Launch Library 2 (cached 1 h for the free tier)
Cited situational awareness brief, generated on demand over MCP: a bounded server-side overview (earthquakes, military flights, ACLED conflict events, wildfires, cyber threats, disease outbreaks, news, space weather, strategic posture, alert digest), synthesized via local Ollama or a mechanically-cited fallback when Ollama is unreachable
Watching your own area (geofences/AOIs)
Static infrastructure results (bases, ports, nuclear, cables, datacenters, spaceports) draw on this repo's curated strategic datasets, which are global and deliberately sparse, not exhaustive local registries. A quiet AOI brief means nothing from those curated sets is in range, not that your area has no infrastructure.
Before the AOI family, only intel_signal_convergence accepted a real
point-plus-radius, intel_military_flights took a bbox, and hotspot
escalation scoring was restricted to the 22 hardcoded INTEL_HOTSPOTS.
The intel_aoi_* tools let you name your own area (a city, a border
region, a facility) and get the same cited, multi-domain treatment.
Geofences survive the antimeridian (a Bering Strait or Fiji AOI queries
both sides of the dateline), and pipelines/undersea cables are matched
as line features via great-circle segment distance, not just by their
endpoints.
Define an AOI once, then brief, score, edit, and watch it. Three
shapes: a circle (point + radius), a polygon (3-64 vertices, for a
border region or strait a radius cannot express), or a corridor (a
waypoint route + width, for a shipping lane or supply road):
intel_aoi_define(name="Pittsburgh", lat=40.4406, lon=-79.9959, radius_km=50)
intel_aoi_define_polygon(name="Taiwan Strait", vertices=[[22.5, 118.0], [22.5, 121.5], [26.5, 122.0], [26.5, 118.5]])
intel_aoi_define_corridor(name="Suez Approach", waypoints=[[29.9, 32.55], [27.5, 34.0], [24.0, 36.0]], width_km=80)
intel_aoi_brief(name="Taiwan Strait")
intel_aoi_escalation(name="Pittsburgh")
intel_aoi_update(name="Pittsburgh", radius_km=100) # resize/rename in place
intel_aoi_changes(name="Suez Approach") # what entered/left since last sweep
intel_aoi_digest() # one-call sweep across ALL your areas
The same nine operations are available from the terminal: intel aoi define|define-polygon|define-corridor|list|update|delete|brief|escalation|changes.
Membership is exact for the shape (an event inside a polygon's
bounding circle but outside the polygon is excluded); corridor
distances are measured to the route. Line-feature infrastructure
(pipelines, undersea cables) matches the bounding circle for
non-circle shapes, disclosed in data_gaps.
intel_aoi_changes is the alerting primitive: the first call records a
baseline, and every later call reports what entered and left the fence
per domain, with failed fetches reported as data_gaps rather than
counted as departures.
intel_aoi_brief filters every geo-capable domain to the 50 km radius
around Pittsburgh: earthquakes, military flights (bbox derived from the
radius), wildfires (region-mapped, since NASA FIRMS has no point+radius
query), ACLED conflict events, a sample of nearby aviation traffic,
nearby static infrastructure (military bases, ports, pipelines, nuclear
facilities, undersea cables, datacenters, spaceports) with distances in
km, and news headline mentions of "Pittsburgh". Every item in the
response carries a [n] citation into a numbered sources list, and
data_gaps names any domain that couldn't be scoped to the AOI (for
example, wildfires when the AOI falls outside NASA FIRMS's coverage
regions, or conflict events when ACLED credentials aren't configured)
instead of silently omitting it.
intel_aoi_escalation runs the same baseline/military/conflict/social-
unrest scoring engine that powers intel_hotspot_escalation for the 22
built-in hotspots, but scoped to your AOI's own radius instead of a fixed
2-degree window.
AOIs persist in a dedicated table inside the same SQLite cache database
the server already uses (~/.cache/world-intel-mcp/cache.db by default,
or $WORLD_INTEL_CACHE_DB), so a scheduled agent can watch any named
area across restarts with intel_aoi_list / intel_aoi_delete to manage
them.
Vector Store
The optional Qdrant vector store accumulates intelligence over time for semantic retrieval. All data fetched through the Fetcher is automatically embedded and stored.
Setup
# Install Qdrant (Docker)
docker run -p 6333:6333 qdrant/qdrant
# Install vector dependencies
pip install -e ".[vector]"# Run the collector daemon (populates vector store 24/7)
intel-collector --daemon # every 5 minutes
intel-collector --daemon --interval 120 # every 2 minutes
intel-collector --sources markets,cyber # specific domains only
intel-collector # single collection cycle
intel-collector --daemon --sources aoi --interval 900 # AOI watch only: sweep every geofence every 15 min
The aoi group runs intel_aoi_digest as a sweep: each cycle diffs every
defined AOI against its stored snapshot and advances it, so the daemon
interval is your geofence watch cadence. Change digests are logged and
(when the vector store is enabled) stored for semantic search. Set
WORLD_INTEL_AOI_WEBHOOK to get a POST whenever a sweep finds something
entered or left a geofence (quiet sweeps never fire); with
WORLD_INTEL_AOI_WEBHOOK_FORMAT=text the body is raw markdown with a
Title header, which ntfy-style sinks render directly.
Running as a macOS launchd Service
scripts/collector-daemon.sh manages the collector as a launchd agent so it
survives reboots. It fills in com.agentic.intel-collector.plist.template
with this checkout's own path (resolved from the script's own location, so
it works from any clone) and installs the result to
~/Library/LaunchAgents/.
scripts/collector-daemon.sh start # install + load the launchd job
scripts/collector-daemon.sh status # check state and log info
scripts/collector-daemon.sh logs # tail stdout (logs err for stderr)
scripts/collector-daemon.sh stop # unload the launchd job
scripts/collector-daemon.sh restart
scripts/collector-daemon.sh render # print the filled-in plist without installing it
Semantic Search Examples
Once data accumulates, AI agents can query across all domains:
"military activity near Taiwan strait" — finds military flights, naval warnings, theater posture data
"cyber threats targeting healthcare" — finds URLhaus, CISA KEV entries related to healthcare
"economic indicators suggesting recession" — finds yield curve inversions, macro signals, FRED data
The vector store uses FastEmbed (ONNX-based, BAAI/bge-small-en-v1.5) for embeddings — no GPU required, ~3 second cold start.
Environment Variables
Variable
Required
Description
ACLED_ACCESS_TOKEN
No
ACLED conflict events
NASA_FIRMS_API_KEY
No
Satellite wildfire data
EIA_API_KEY
No
Energy price data
CLOUDFLARE_API_TOKEN
No
Internet outage data
FRED_API_KEY
No
Macro economic data (also used for yield curve)
OPENSKY_CLIENT_ID
No
Military flight fallback
OPENSKY_CLIENT_SECRET
No
Military flight fallback
OLLAMA_API_URL
No
Ollama server for AI-generated briefs (default: http://localhost:11434)
OLLAMA_MODEL
No
Ollama model for AI-generated briefs (default: llama3.2)
WORLD_INTEL_LOG_LEVEL
No
Logging level (default: INFO)
WORLD_INTEL_AOI_WEBHOOK
No
URL POSTed when an AOI sweep finds changes (collector daemon); quiet sweeps don't fire
WORLD_INTEL_AOI_WEBHOOK_FORMAT
No
json (default: title/totals/markdown payload) or text (raw markdown body + Title header, ntfy-style)
Everything else uses free, unauthenticated public APIs.
Development
pip install -e ".[dev]"
pytest # 973 tests (991 total, 18 live-network smoke tests deselected by default)
pytest --cov=world_intel_mcp # with coverage
pytest tests/test_forex.py -v # single module
Adding a New Source
Create sources/your_source.py with async def fetch_your_data(fetcher: Fetcher, **kwargs) -> dict
In server.py: add Tool(...) to TOOLS, add case to _dispatch() (use inline import)
Add tests using respx to mock HTTP (see tests/test_forex.py for pattern)
Optionally add to dashboard/app.py (SSE) and cli.py (Click)
License
MIT
About
139-tool MCP server for real-time global intelligence from free public APIs: markets, SEC filings, conflict, military, aircraft-cohort early warning, refugee and migration flows, cyber, climate, news, and 30+ domains. Cited AI situation briefs, geofences with change detection, live SSE dashboard. MIT, no paid API keys.