The Problem

AI agents operating in risk-sensitive contexts require consolidated, cited intelligence across geopolitical, financial, and environmental domains—but stitching together 30+ data sources manually creates latency, blind spots, and unverified outputs. This repo addresses that by providing a unified MCP server with 120+ tools pulling from free public APIs.

What This Does

The repository delivers a modular MCP server implementation spanning financial markets, conflict monitoring, military posture, cyber threats, climate, and 25+ other domains (see src/world_intel_mcp/sources/ for the 40+ source modules). Intelligence flows through src/world_intel_mcp/analysis/ where 20+ processing functions operate: escalation.py computes escalation scoring, cascade.py analyzes signal convergence, classifier.py categorizes events, and clustering.py groups related intelligence. A Qdrant vector store (src/world_intel_mcp/vector_store.py) indexes accumulated data for semantic search, while src/world_intel_mcp/daily_digest.py assembles cited digests. The live dashboard at src/world_intel_mcp/dashboard/app.py serves real-time SSE updates, and src/world_intel_mcp/cli.py provides command-line access. Configuration lives in src/world_intel_mcp/config/ with 11 domain-specific maps (countries, geospatial, trade routes, etc.).

How It Is Wired

Execution begins at src/world_intel_mcp/server.py which starts the Flask-based MCP server, or src/world_intel_mcp/cli.py for CLI mode. The src/world_intel_mcp/fetcher.py orchestrates data collection from the 40+ source modules, each pulling from public APIs (SEC EDGAR, ACLED, NOAA, etc.). A circuit_breaker.py provides resilience around external calls. The src/world_intel_mcp/cache.py layer tempers fetch rates. The vector store persists to Qdrant for semantic queries. The dashboard at src/world_intel_mcp/dashboard/app.py connects via SSE to src/world_intel_mcp/server.py. The widest blast radius resides in src/world_intel_mcp/fetcher.py — it touches every source module and feeds all analysis pipelines; a failure there propagates across all 30+ domains. The src/world_intel_mcp/config/ module is the other hub: 11 config files are imported by multiple source and analysis modules, so changing geospatial boundaries or country mappings requires coordinated updates.

How To Use It

Setup: cd world-intel-mcp && python -m pip install -e . (pyproject.toml declares dependencies; no lockfile is present, so pin versions manually if reproducibility is required). Configuration: No API keys are required per the README — all 120+ tools pull from free public APIs. Environment variables, if needed, would be defined in .env (not present in the structure; check the README for any documented vars). Running it: Start the server with python src/world_intel_mcp/server.py or invoke the CLI via python src/world_intel_mcp/cli.py. The dashboard launches at http://localhost:5000 (per run-dashboard.sh). For daemon mode, scripts/collector-daemon.sh can be used.

Real-World Use

An analyst queries: "What is the current military posture and cyber threat level in the Taiwan Strait?" The agent routes this through src/world_intel_mcp/server.pysrc/world_intel_mcp/analysis/posture.py and src/world_intel_mcp/analysis/cyber.py (sourced from src/world_intel_mcp/sources/military.py and src/world_intel_mcp/sources/cyber.py), with results grounded in the Qdrant vector store via src/world_intel_mcp/vector_store.py. The response includes source citations from ACLED events, OpenSky aircraft tracks, and URLhaus threat feeds, all timestamped and scoped to the defined geofence.

Code Health & Issues

  • Low/Risk - Dependencies declared without a lockfile: pyproject.toml lists runtime dependencies without a requirements.txt or uv.lock, meaning pip install -e . may resolve to different versions across environments. Verify pinned versions for reproducible builds. - pyproject.toml
  • The repo has 20 test files under tests/ covering fetcher, cache, analysis, and source modules, providing reasonable coverage for the core pipelines.
  • No LICENSE file was detected in the provided structure, though the README references MIT — verify the root LICENSE exists before downstream consumption.
  • CI/CD is configured via .github/workflows/ci.yml but has not been executed in this analysis.

The Bottom Line

This is a well-structured MCP server that successfully aggregates 120+ intelligence tools from free public APIs into a single, queryable surface with vector search and a live dashboard. The codebase is modular and the call graph is traceable through server.py → fetchers → analysis pipelines. The absence of a lockfile and the unverified license file are the main production concerns; otherwise, it's a functional foundation for AI agents needing real-time global awareness without paid subscriptions.