Real-time global intelligence across 27 domains with 68 MCP tools, a live ops-center dashboard, CLI reports, and per-source circuit breakers. All data comes from free, public APIs — no paid subscriptions required.
Successor to threat-intel-mcp. This project evolved from a focused threat intelligence server into a comprehensive world intelligence platform covering markets, geopolitics, climate, military, space weather, AI research, and more.
| Domain | Tools | Data Sources |
|---|---|---|
| Financial Markets | 7 | Yahoo Finance, CoinGecko, Polymarket |
| Economic Indicators | 3 | EIA energy, FRED macro, World Bank |
| Seismology | 1 | USGS earthquake feeds |
| Wildfires | 1 | NASA FIRMS satellite hotspots |
| Conflict & Security | 4 | ACLED events, UCDP armed conflict, unrest detection |
| Military & Defense | 5 | adsb.lol, OpenSky Network, hexdb.io, surge detection |
| Infrastructure | 4 | Cloudflare Radar, submarine cables, cascade analysis, cloud service status |
| Maritime | 2 | NGA navigation warnings, vessel snapshots |
| Geospatial Datasets | 4 | 70 military bases, 40 ports, 24 pipelines, 24 nuclear facilities |
| Climate | 1 | Open-Meteo climate anomalies |
| News & Media | 3 | 80+ RSS feeds (4-tier), GDELT, trending keywords |
| Intelligence Analysis | 8 | Signal convergence, focal points, instability index, risk scores, escalation, surge detection |
| Prediction Markets | 1 | Polymarket event contracts |
| Displacement | 1 | UNHCR refugee/IDP data |
| Aviation | 1 | FAA airport delays |
| Cyber Threats | 1 | URLhaus, Feodotracker, CISA KEV, SANS |
| Space Weather | 1 | NOAA SWPC (Kp index, solar flares, alerts) |
| AI/AGI Watch | 1 | arXiv cs.AI/LG/CL, HuggingFace, newsletters |
| Health | 1 | WHO DON, ProMED, CIDRAP disease outbreaks |
| Sanctions | 1 | US Treasury OFAC SDN list |
| Elections | 1 | Global election calendar with risk scoring |
| Shipping | 1 | Dry bulk ETFs, shipping stress index |
| Social | 1 | Reddit geopolitical discussion velocity |
| Nuclear | 1 | USGS seismics near 5 nuclear test sites |
| Reports | 3 | Daily brief, country dossier, threat landscape |
| Cross-Domain Analysis | 2 | Alert digest, weekly trends |
| NLP Intelligence | 4 | Entity extraction, event classification, news clustering, keyword spikes |
| Strategic Synthesis | 4 | Strategic posture, world brief, fleet report, population exposure |
Total: 68 tools across 27 intelligence domains.
# Clone
git clone https://github.com/marc-shade/world-intel-mcp.git
cd world-intel-mcp
# Install (Python 3.11+)
pip install -e .
# With dashboard support
pip install -e ".[dashboard]"
# With dev/test tools
pip install -e ".[dev]"# stdio mode (for Claude Code, Cursor, etc.)
world-intel-mcpAdd to your ~/.claude.json:
{
"mcpServers": {
"world-intel-mcp": {
"command": "world-intel-mcp",
"env": {}
}
}
}Or if installed in a virtualenv:
{
"mcpServers": {
"world-intel-mcp": {
"command": "/path/to/venv/bin/world-intel-mcp",
"env": {}
}
}
}# Start the ops-center dashboard (default: http://localhost:8501)
intel-dashboard
# Custom port
intel-dashboard --port 9000The dashboard is a map-first ops center with:
- Full-viewport Leaflet map with 7 toggle-able layers (quakes, military, conflict, fires, convergence, nuclear, infrastructure)
- 35+ live data feeds streaming via SSE (30-second refresh)
- 12 expandable drawer sections (alerts, markets, security, intelligence, AI watch, health, elections, shipping, social, nuclear, trends, infrastructure)
- HUD bar with real-time pills (quakes, aircraft, conflict zones, cyber IOCs, fires, displaced persons, Kp index, AI papers, alerts, shipping stress, outbreaks, services)
- Modal detail system — all external links open in-app, all data items expand to rich detail views
- Glassmorphic floating panels with dark-mode styling
- Per-source circuit breaker health monitoring
# Daily intelligence brief
intel daily-brief
# Country dossier
intel country-dossier --country "Ukraine"
# Threat landscape overview
intel threat-landscapesrc/world_intel_mcp/
server.py # MCP server (stdio) — 64 tool definitions
fetcher.py # Async HTTP client with retries, stale-data fallback
cache.py # SQLite TTL cache with stale-data recovery
circuit_breaker.py # Per-source circuit breakers (3 failures -> 5min cooldown)
cli.py # Click CLI for reports
sources/ # One module per intelligence domain (25 modules)
markets.py # Stock indices, crypto, stablecoins, ETFs, sectors, commodities
economic.py # Energy prices, FRED macro, World Bank indicators
seismology.py # USGS earthquakes
wildfire.py # NASA FIRMS satellite fire hotspots (9 global regions)
conflict.py # ACLED, UCDP armed conflict events
military.py # adsb.lol + OpenSky military flights, aircraft details
infrastructure.py # Internet outages, submarine cable health, cloud service status
maritime.py # NGA navigation warnings, vessel snapshots
climate.py # Open-Meteo climate anomalies by zone
news.py # 80+ RSS feeds with per-feed circuit breakers, 4-tier source ranking
intelligence.py # GDELT, country briefs, signal convergence, risk scores
prediction.py # Polymarket prediction markets
displacement.py # UNHCR refugee/IDP statistics
aviation.py # FAA airport delays
cyber.py # URLhaus, Feodotracker, CISA KEV, SANS
space_weather.py # NOAA SWPC: Kp index, solar flares, alerts
ai_watch.py # arXiv AI papers, HuggingFace, lab trending
health.py # WHO DON, ProMED, CIDRAP disease outbreaks
sanctions.py # US Treasury OFAC SDN list search
elections.py # Global election calendar with proximity risk scoring
shipping.py # Dry bulk shipping stress index (BDRY, SBLK, EGLE, ZIM)
social.py # Reddit geopolitical discussion velocity
nuclear.py # USGS seismic monitoring near 5 nuclear test sites
geospatial.py # Query wrappers for static geospatial datasets
service_status.py # Cloudflare, AWS, Azure, GCP service health
fleet.py # Naval fleet activity report
analysis/ # Cross-domain analysis + NLP + strategic synthesis
signals.py # Signal convergence detection
instability.py # Country instability index (CII v2)
focal_points.py # Multi-signal focal point detection
temporal.py # Temporal anomaly detection with SQLite baselines
alerts.py # Cross-domain alert digest + weekly trends
escalation.py # Dynamic hotspot escalation scoring
surge.py # Military surge anomaly detection
cascade.py # Infrastructure cascade simulation
entities.py # Named entity extraction (countries, leaders, orgs, CVEs, APTs)
classifier.py # Keyword-based event threat classification (14 categories)
clustering.py # Jaccard similarity news topic clustering
spikes.py # Keyword spike detection with Welford's algorithm
posture.py # Strategic posture — composite 9-domain risk assessment
world_brief.py # Structured daily intelligence summary
exposure.py # Population exposure near active events
config/ # Static configuration data
countries.py # 22 intel hotspots, election calendar, nuclear test sites
geospatial.py # 70 military bases, 40 ports, 24 pipelines, 24 nuclear facilities
entities.py # 28 leaders, 41 orgs, 25 companies, 36 APT groups
population.py # 105 major cities (pop >2M) for exposure analysis
reports/ # Report generation
generator.py # Report orchestrator
markdown_report.py # Markdown output
html_report.py # HTML output (Jinja2 templates)
templates/ # HTML report templates
dashboard/ # Live ops-center dashboard
app.py # Starlette app with SSE streaming (35+ feeds)
index.html # Map-first dashboard UI (14 map layers, 20+ drawer sections)
tests/ # Test suite
conftest.py # Shared fixtures (mock fetcher, circuit breaker)
test_sources.py # Source module tests
test_cache.py # Cache TTL tests
test_analysis.py # Analysis engine tests
Every external API call goes through a circuit breaker. After 3 consecutive failures, the source is "tripped" for 5 minutes, preventing cascading timeouts. Each RSS feed gets its own breaker (e.g., rss:bbc_world, rss:ars_technica), so a single broken feed doesn't kill all news.
External APIs -> Fetcher (httpx + retries) -> Circuit Breaker -> Cache (TTL) -> MCP Tool Response
-> Dashboard (SSE)
-> CLI Report
| Tool | Description |
|---|---|
intel_market_quotes |
Stock index quotes (S&P 500, Dow, Nasdaq, FTSE, Nikkei) |
intel_crypto_quotes |
Top crypto prices and market caps from CoinGecko |
intel_stablecoin_status |
Stablecoin peg health (USDT, USDC, DAI, FDUSD) |
intel_etf_flows |
Bitcoin spot ETF prices and volumes (IBIT, FBTC, GBTC, ARKB) |
intel_sector_heatmap |
US equity sector performance (11 SPDR sector ETFs) |
intel_macro_signals |
Macro indicators (Fear & Greed, VIX, DXY, gold, 10Y, BTC mempool) |
intel_commodity_quotes |
Commodity futures (gold, silver, crude oil, natural gas) |
| Tool | Description |
|---|---|
intel_energy_prices |
Brent/WTI crude oil and natural gas from EIA |
intel_fred_series |
FRED economic data series (GDP, CPI, unemployment, rates) |
intel_world_bank_indicators |
World Bank development indicators by country |
| Tool | Description |
|---|---|
intel_earthquakes |
Recent earthquakes from USGS (configurable magnitude/time) |
intel_wildfires |
NASA FIRMS satellite fire hotspots (9 global regions) |
| Tool | Description |
|---|---|
intel_acled_events |
Armed conflict events from ACLED |
intel_ucdp_events |
Uppsala Conflict Data Program events |
intel_unrest_events |
Social unrest (protests + riots) with Haversine dedup |
intel_cyber_threats |
Aggregated cyber intel (URLhaus, Feodotracker, CISA KEV, SANS) |
| Tool | Description |
|---|---|
intel_military_flights |
Military aircraft via adsb.lol (fallback: OpenSky) |
intel_theater_posture |
Military activity across 5 theaters (EU, Indo-Pacific, ME, Arctic, Korea) |
intel_aircraft_details |
Aircraft lookup by ICAO24 hex code (hexdb.io) |
intel_military_surge |
Foreign aircraft concentration anomaly detection |
intel_military_bases |
Query 70 military bases from 9 operators (USA, RUS, CHN, GBR, FRA, NATO, IND, TUR, ISR) |
| Tool | Description |
|---|---|
intel_internet_outages |
Cloudflare Radar internet disruptions |
intel_cable_health |
Submarine cable corridor health (6 corridors) |
intel_cascade_analysis |
Infrastructure cascade simulation ("what if corridor X fails?") |
intel_service_status |
Cloud platform health (Cloudflare, AWS, Azure, GCP) |
| Tool | Description |
|---|---|
intel_nav_warnings |
Maritime navigation warnings from NGA |
intel_vessel_snapshot |
Naval activity at 9 strategic waterways |
| Tool | Description |
|---|---|
intel_military_bases |
70 military bases from 9 operators — filter by operator, country, type, branch |
intel_strategic_ports |
40 strategic ports across 6 types — filter by type, country |
intel_pipelines |
24 oil/gas/hydrogen pipelines — filter by type, status |
intel_nuclear_facilities |
24 nuclear power/enrichment/research facilities — filter by type, country, status |
| Tool | Description |
|---|---|
intel_news_feed |
Aggregated news from 80+ 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 and timelines |
| Tool | Description |
|---|---|
intel_prediction_markets |
Polymarket prediction contract prices |
intel_election_calendar |
Global election calendar with proximity risk scoring |
| Tool | Description |
|---|---|
intel_displacement_summary |
UNHCR refugee/IDP statistics by country |
intel_humanitarian_summary |
HDX humanitarian crisis datasets |
| Tool | Description |
|---|---|
intel_climate_anomalies |
Temperature/precipitation anomalies (15 global zones) |
intel_space_weather |
Solar activity: Kp index, X-ray flux, SWPC alerts |
| Tool | Description |
|---|---|
intel_disease_outbreaks |
WHO DON, ProMED, CIDRAP outbreak alerts |
intel_social_signals |
Reddit geopolitical discussion velocity |
intel_sanctions_search |
US Treasury OFAC SDN list search |
| Tool | Description |
|---|---|
intel_ai_releases |
arXiv AI papers, HuggingFace models, lab tracking |
| Tool | Description |
|---|---|
intel_shipping_index |
Dry bulk shipping stress index (BDRY, SBLK, EGLE, ZIM) |
intel_airport_delays |
FAA airport delay status (20 major US airports) |
| Tool | Description |
|---|---|
intel_nuclear_monitor |
Seismic monitoring near 5 nuclear test sites |
| Tool | Description |
|---|---|
intel_signal_convergence |
Geographic convergence of multi-domain signals |
intel_focal_points |
Multi-signal focal point detection on entities |
intel_signal_summary |
Country-level signal aggregation with convergence scoring |
intel_temporal_anomalies |
Activity deviations from historical baselines |
intel_instability_index |
Country Instability Index v2 (0-100, 4 weighted domains) |
intel_risk_scores |
ACLED-based conflict risk scoring vs baselines |
intel_hotspot_escalation |
Dynamic escalation scores for 22 intel hotspots |
intel_military_surge |
Foreign aircraft concentration anomaly detection |
| Tool | Description |
|---|---|
intel_extract_entities |
Named entity extraction: countries, leaders, orgs, companies, CVEs, APT groups |
intel_classify_event |
Event classification into 14 threat categories with severity scoring (1-10) |
intel_news_clusters |
Topic clustering of news articles by Jaccard similarity with keyword extraction |
intel_keyword_spikes |
Keyword spike detection against baselines with CVE/APT mention extraction |
| Tool | Description |
|---|---|
intel_strategic_posture |
Composite global risk from 9 weighted domains (military, political, conflict, infrastructure, economic, cyber, health, climate, space) |
intel_world_brief |
Structured daily intelligence summary: risk overview, focal areas, top stories, anomalies, trending threats |
intel_fleet_report |
Naval fleet activity: theater posture, waterway status, surge detections, readiness scoring |
intel_population_exposure |
Population at risk near active earthquakes, wildfires, and conflict (105-city dataset, 1B pop coverage) |
| Tool | Description |
|---|---|
intel_alert_digest |
Aggregated alerts from 7 intelligence sources |
intel_weekly_trends |
Weekly trend analysis from temporal baselines |
| Tool | Description |
|---|---|
intel_daily_brief |
Daily intelligence briefing (HTML report) |
intel_country_dossier |
Comprehensive country intelligence report |
intel_threat_landscape |
Current threat landscape overview |
| Tool | Description |
|---|---|
intel_country_brief |
Quick country situation summary (Ollama LLM) |
intel_status |
Server health, cache stats, circuit breaker status |
| Variable | Required | Description |
|---|---|---|
ACLED_ACCESS_TOKEN |
No | ACLED API token (enables conflict event data) |
NASA_FIRMS_API_KEY |
No | NASA FIRMS key (enables satellite wildfire data) |
EIA_API_KEY |
No | EIA key (enables energy price data) |
CLOUDFLARE_API_TOKEN |
No | Cloudflare Radar (enables internet outage data) |
FRED_API_KEY |
No | FRED key (enables macro economic data) |
OPENSKY_CLIENT_ID |
No | OpenSky Network credentials (military flight fallback) |
OPENSKY_CLIENT_SECRET |
No | OpenSky Network credentials (military flight fallback) |
WORLD_INTEL_LOG_LEVEL |
No | Logging level (default: INFO) |
All other data sources (CoinGecko, USGS, adsb.lol, UCDP, NGA, FAA, Polymarket, UNHCR, NOAA SWPC, arXiv, Reddit, hexdb.io, WHO, OFAC, etc.) use free, unauthenticated public APIs.
# Install dev dependencies
pip install -e ".[dev]"
# Run tests
pytest
# Run with coverage
pytest --cov=world_intel_mcp
# Type checking (if configured)
mypy src/- Create
src/world_intel_mcp/sources/your_source.py - Implement
async def fetch_your_data(fetcher: Fetcher, **kwargs) -> dict - Use
fetcher.get_json()/fetcher.get_xml()for HTTP calls (includes caching + circuit breakers) - Import in
server.py, add aTooldefinition, and wire up thecall_toolhandler - Add to
dashboard/app.pyif you want it on the live dashboard - Add tests in
tests/
MIT
