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
Real-time global intelligence across 30+ domains with 132 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, 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
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 50 sources in parallel and populates the vector store. Run once or as a daemon (default: 5-minute interval).
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 (4)
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)
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 (1)
Tool
Description
intel_displacement_summary
UNHCR refugee/IDP statistics
Aviation (2)
Tool
Description
intel_airport_delays
FAA airport delay status
intel_aviation_domestic
Global air traffic snapshot from OpenSky
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 (5)
Tool
Description
intel_aoi_define
Define a named area of interest: point + radius in km (1-2000)
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
Situation Brief (1)
Tool
Description
intel_situation_brief
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
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)
Everything else uses free, unauthenticated public APIs.
Development
pip install -e ".[dev]"
pytest # 868 tests (886 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
120-tool MCP server for real-time global intelligence: markets, SEC filings, conflict, military, cyber, climate, news, and 30+ domains. AI situation briefs that cite their sources, user-defined geofences with escalation scoring, cited daily digests, live SSE dashboard. MIT, no paid API keys.