world-intel-mcp: a 132-tool MCP server that turns free public APIs into agent-readable world state
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.
At a glance
- What is it?
- The project wires free public data sources (EDGAR, USGS, GDELT, adsb.lol, FRED, NOAA and others) behind a single Model Context Protocol surface, with a Qdrant vector store for history and a Leaflet dashboard on top. It is best understood as a wide, thin aggregation layer rather than a deep analysis engine, and its main cost is breadth: 132 tools to configure, cache and keep alive.
- Who is it for?
- Adopt world-intel-mcp if you already run an MCP client such as Claude Code or Cursor and you want one server to answer cross-domain questions without paying for data subscriptions. Skip it if you need authoritative, low-latency feeds for operational decisions: the sources are free public APIs, the README itself notes that all data comes from them, and no accuracy or uptime guarantee is stated.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 13 days ago.
- What is it written in?
- Mainly Python, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.
DEEP OPEN-SOURCE ANALYSIS
The gap world-intel-mcp fills: one MCP surface instead of thirty API clients
An agent that needs world awareness normally ends up with a pile of per-source clients: one for SEC EDGAR full-text search, one for USGS earthquakes, one for GDELT, one for adsb.lol aircraft positions, one for FRED macro series. Each has its own auth model, rate limits and response shape. world-intel-mcp collapses that into a single Model Context Protocol server so an MCP-capable client can call tools by name. The README frames the audience directly: agents that need market conditions, geopolitical risk, military posture, supply chain disruptions and cyber threats, all queryable over MCP. The explicit constraint is cost. According to the README, all data comes from free, public APIs with no paid subscriptions required. That single sentence defines both the appeal and the ceiling. You are not buying a data vendor; you are buying a normalisation layer over sources anyone can reach. The value is in the schemas, the caching, the circuit breakers and the cross-domain tools that combine them, not in privileged access. The repository also ships a Click CLI and a dashboard, so the same codebase serves an agent, a shell user and a wall display.
How the pieces connect: sources, Fetcher, CircuitBreaker, then three front ends
The architecture block in the README shows three entry points converging on one pipeline. `server.py` speaks MCP over stdio, `cli.py` is the Click CLI, and `dashboard.py` is the SSE-driven ops view. All three reach the same `sources/*.py` modules, which go through a `Fetcher` and then a `CircuitBreaker` before results are returned. On the storage side the diagram shows a `VectorStore` backed by Qdrant. That layout matters more than the tool count. Because every front end shares the source modules, a fix to a GDELT parser or a Yahoo Finance response shape lands everywhere at once. Because the `Fetcher` sits between sources and callers, caching and failure handling are centralised rather than reimplemented per tool. The `CircuitBreaker` is the piece worth watching in production: when an upstream API starts failing, the breaker is what stops each of the 132 tools from hammering it. The dashboard exposes per-source circuit breaker health, and the CLI surfaces the same state through `intel status`, which the README describes as cache plus circuit breaker health. The Qdrant store is optional. It is installed through the `[vector]` extra along with FastEmbed, and it is what makes natural-language queries over accumulated history possible, such as the README's examples "military activity near Taiwan" or "cyber threats targeting healthcare". Without that extra, the server still runs; the historical semantic layer does not.
Install and first calls: the commands the README actually gives
The install path is a clone plus an editable pip install. `pip install -e .` gives the base server. Three extras are listed: `pip install -e ".[dashboard]"` for the live ops-center dashboard, `pip install -e ".[vector]"` for Qdrant plus FastEmbed, and `pip install -e ".[dev]"` for pytest, respx and coverage. PDF output needs a fourth extra and a native dependency: `pip install -e ".[pdf]"`, which the README notes requires `brew install pango` on macOS. HTML reports avoid that dependency entirely. Running the server is a single command, `world-intel-mcp`, which starts stdio mode for clients such as Claude Code and Cursor. The README's Claude Code example adds a `mcpServers` entry to `~/.claude.json` with the server name `world-intel-mcp` and `"command": "world-intel-mcp"`. The dashboard starts with `intel-dashboard`, defaulting to http://localhost:8501, and accepts `--port` for a custom one. The CLI is the fastest way to sanity-check the pipeline before pointing an agent at it: `intel markets` for stock indices, `intel earthquakes --min-mag 5.0` for filtered seismic events, and `intel status` for cache and breaker health. Reports have their own flags: `intel report` writes a full PDF to `~/.cache/world-intel-mcp/`, `--format html` switches to HTML, `-o brief.pdf` sets an output path, and `-s markets,cyber,earthquakes` selects sections. Python 3.11 or newer is required per the badge in the README.
Breadth as the design bet, and where that bet gets expensive
The tool table is the product. Financial markets, forex, bonds, earnings, SEC filings, macro composites, central bank rates, earthquakes, wildfires, conflict events, military aircraft, submarine cables, maritime warnings, aviation delays, 119 RSS feeds, NLP entity extraction, geospatial reference layers, cyber threat feeds, disease outbreaks, space weather, sanctions, prediction markets, elections, displacement, shipping stress, federal contracts, traffic, severe weather, launches, volcanoes and tropical cyclones. The README counts 132 tools across 30+ domains. That breadth is genuinely useful for an agent asked an open question, because the alternative is the agent guessing which of thirty APIs to call. It is also the main operational cost. Every domain is another upstream dependency with its own failure mode, rate limit and schema drift. The README's own release history shows how much maintenance this implies: v0.8.0, v0.9.0 and v0.10.0 all landed on 2026-09-02, with changes spanning AOI digest sweeps, a full CLI, new regions, BGP, a dashboard AOI layer and a GDELT fix. Three releases in one day is a signal about the pace of upstream churn, not a complaint about the maintainer. A GDELT fix in a patch release is what happens when you depend on a free API whose response format moves. Anyone adopting this should expect to track releases rather than pin once and forget.
AOI geofences: the most opinionated feature and the one with the sharpest edges
Areas of interest are where the project stops being a thin wrapper and starts making design choices. The README describes ten AOI tools supporting three shapes: circle, polygon and corridor. Around those shapes sit define, list, update and delete operations, a cited multi-domain brief, hotspot escalation scoring, and enter/leave change detection for a user's own area. The dashboard renders AOI geofences as a toggle-able Leaflet layer with last-sweep counts. The interesting detail is how news is scoped. The README states plainly that news is scoped to the place the area sits in, using OSM Nominatim reverse geocoding with no key, not to the area's name. That is a deliberate rejection of the obvious approach. If you name a geofence "Strait of Hormuz watch", the server does not search for that string; it reverse-geocodes the coordinates and pulls news for the location. The upside is that you cannot accidentally build a filter that only matches your own naming convention. The downside is that a corridor spanning water or a border region may resolve to a place label you did not intend. v0.9.0 turned AOI geofences into what the release notes call a continuous watch, and v0.10.0 added the dashboard AOI layer and geo-scoped AOI news. Escalation scoring is described as hotspot scoring, but the README does not publish the formula, so treat the number as a relative signal within this server rather than an absolute severity measure.
The situation brief, and what a cited fallback really guarantees
The Situation Brief tool is the most interesting single entry in the table. It is described as a cited situational awareness brief over MCP, a bounded server-side overview synthesized via local Ollama, with a mechanically-cited fallback. Read that carefully, because it encodes a real trade-off. The synthesis path runs through a local Ollama instance, which means the quality of the prose depends on whichever model you have pulled, and the server does not ship one. The fallback path is mechanical: it assembles citations without a language model. That fallback is the more trustworthy of the two for factual work, since every claim traces to a source the server fetched. The Ollama path produces better reading and weaker guarantees. The same distinction applies to the daily digest, which the README describes as a cited markdown morning brief covering top events, headlines, trends and a timeline. Citations are the project's answer to the usual objection about AI-generated intelligence summaries. They are also a limit: a citation tells you where a sentence came from, not whether the upstream source was right, timely or complete. For anything where being wrong has a cost, read the cited source rather than the brief.
What it is not, and what to use instead when you need depth
world-intel-mcp is wide and shallow by construction. Its conflict tools draw on ACLED and UCDP, its military tools on adsb.lol, OpenSky and hexdb.io, its cyber tools on URLhaus, Feodotracker, CISA KEV and SANS. Those are aggregators and public feeds, not primary collection. If your question is "what is the current posture of a specific naval group", a dedicated ADS-B or maritime tracking platform with paid coverage will answer it and this will not, because free ADS-B coverage over open ocean is sparse and the README claims no coverage guarantees. The same applies to financial data: Yahoo Finance and CoinGecko are fine for context and useless for execution. A more instructive comparison is with building your own MCP server over a handful of sources. That approach gives you full control over schemas, caching and which sources you trust, at the cost of writing and maintaining every client yourself. world-intel-mcp's contribution is that the clients, the cache, the circuit breaker and the cross-domain combination tools already exist. Its cost is that you inherit 132 tools' worth of upstream dependencies and a release cadence driven by other people's API changes. For a single narrow need, such as earthquake monitoring, a purpose-built client over the USGS feed is less machinery than this server. The breadth only pays off when the questions are genuinely cross-domain.
Licence, upgrade cost and what to verify before trusting a number
The project is MIT licensed, which permits commercial use, modification and redistribution provided the copyright notice and permission notice are included. That is a permissive licence, and it does not by itself settle the terms of the upstream data. The README says the data comes from free public APIs, but free to access is not the same as free to redistribute or to use commercially. ACLED, for instance, has its own terms that are separate from this repository's licence, and the same caution applies to any feed whose provider publishes usage conditions. This is a description of the situation, not legal advice; check each upstream provider's terms for the domains you actually enable. Upgrade cost is the other thing to budget for. The three releases on 2026-09-02 include a GDELT fix, which is the clearest available evidence that upstream drift reaches users quickly. The extras split helps here: keep `[vector]` and `[pdf]` out of your base environment until you need them, since the vector path adds Qdrant and FastEmbed and the PDF path adds a native pango dependency. Then verify rather than assume. Run `intel status` and read the circuit breaker state per source. Call `intel earthquakes --min-mag 5.0` and compare the result against the USGS feed it names. Start the dashboard with `intel-dashboard` and confirm the SSE feeds you care about are actually updating, because 47 live feeds is a claim you can check in a browser in under a minute.
Editorial conclusion
Adopt world-intel-mcp if you already run an MCP client such as Claude Code or Cursor and you want one server to answer cross-domain questions without paying for data subscriptions. Skip it if you need authoritative, low-latency feeds for operational decisions: the sources are free public APIs, the README itself notes that all data comes from them, and no accuracy or uptime guarantee is stated. Before wiring it into anything, run `intel status` to see cache and circuit breaker health, then call a single tool such as `intel earthquakes --min-mag 5.0` and check the returned payload against the upstream source it names. Verify the Qdrant path separately by installing the `[vector]` extra and confirming the store is reachable, because vector search is the one component that fails silently as an empty result set rather than an error.
Community notes