world-intel-mcp: a 132-tool MCP server for cited global intelligence
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?
- A Python MCP server that pulls markets, conflict, cyber, climate and 30+ other domains from free public APIs, with AOI geofences, a Qdrant vector store and a cited situation brief. Here is how it installs, how the data flows, and where it stops being the right tool.
- Who is it for?
- Adopt world-intel-mcp if you already run an MCP client and want one server that answers questions about markets, conflict, cyber and climate without paying for data feeds, and if you can accept that every answer is only as good as the free upstream API behind it. Do not adopt it if you need guaranteed uptime, authoritative sourcing, or a supported product with an SLA; the README documents circuit breakers and cache health, not availability targets.
- 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 28 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 30, 2026, and from our analysis. They are not legal advice.
Editorial analysis
The gap world-intel-mcp fills: an agent that can look outside itself
An MCP client is good at reasoning over what you hand it and bad at knowing what happened this morning. world-intel-mcp is a server that fills that gap by exposing 132 tools across more than 30 domains, so a client such as Claude Code or Cursor can call for market indices, ACLED conflict events, USGS earthquakes, SEC filings, submarine cable status or NOAA space weather inside the same conversation. The README frames the audience directly: it is built for AI agents that need world awareness.
The design constraint that shapes everything else is the data supply. Every source listed in the README is a free, public API, and the project states that no paid subscriptions are required. That is the reason the tool count is so wide and the reason each individual answer is shallow. You get breadth across domains that would otherwise need five separate integrations, and you inherit the refresh rate, rate limits and outages of each upstream provider.
How the server, fetcher and circuit breaker fit together
The architecture block in the README shows three entry points sharing one pipeline. server.py runs the MCP stdio transport, cli.py is the Click CLI, and dashboard.py serves the ops view. All three route through sources/*.py, then a Fetcher, then a CircuitBreaker, and the result can land in a VectorStore backed by Qdrant.
That ordering matters. Sources are thin adapters over individual APIs; the Fetcher centralizes the HTTP work; the CircuitBreaker sits between the network and the caller so a dead upstream stops being retried on every request. The CLI exposes the state of that machinery through intel status, which the README describes as cache plus circuit breaker health. The dashboard goes further and shows per-source circuit breaker health as part of the ops-center layout.
The optional layer is Qdrant. With the vector extra installed, accumulated intelligence can be queried in natural language, and the README gives examples like military activity near Taiwan or cyber threats targeting healthcare. Without it, you still have the 132 live tools; you just lose semantic search over history. The situation brief tool is similarly bounded: the README describes a server-side overview synthesized via a local Ollama model, with a mechanically-cited fallback when the model is not there. That fallback is the honest part of the design. A brief that cannot be generated still returns something, and the citations come from the mechanical path rather than from the model's memory.
Installing world-intel-mcp and running a first query
The README gives a clone-and-editable-install flow. Python 3.11 or newer is required, per both the README badge and the requires-python field in pyproject.toml.
git clone https://github.com/marc-shade/world-intel-mcp.git
cd world-intel-mcp
pip install -e .Extras are separate installs. The dashboard pulls Starlette and uvicorn, the vector extra pulls qdrant-client and fastembed, and the pdf extra pulls weasyprint.
pip install -e ".[dashboard]"
pip install -e ".[vector]"Running the server in stdio mode is a single command. This is the process an MCP client spawns.
world-intel-mcpTo attach it to Claude Code, the README shows an entry in ~/.claude.json that points the client at that same command. Once the client restarts, the tools appear in its tool list.
{
"mcpServers": {
"world-intel-mcp": {
"command": "world-intel-mcp"
}
}
}The quickest way to confirm the install without a client is the CLI. The README's example pulls stock indices, and a second example filters earthquakes by magnitude. The status command prints cache and circuit breaker health, which tells you whether the sources are answering at all.
intel markets
intel earthquakes --min-mag 5.0
intel statusThe dashboard is a separate process on port 8501 by default, and the README shows how to move it.
intel-dashboard
intel-dashboard --port 9000AOI geofences and the escalation scoring model
The most opinionated feature is the AOI geofence set, ten tools covering three shapes: circle, polygon and corridor. You define an area, list and update it, delete it, and then ask for a cited multi-domain brief over that area. The server also computes hotspot escalation scoring and enter/leave change detection for your own area, and the v0.10.0 release notes add an AOI layer to the dashboard with last-sweep counts.
One detail in the README deserves attention because it is easy to misread. News for an AOI is scoped to the place the area sits in, resolved through OSM Nominatim reverse geocoding with no API key, and explicitly not to the area's name. So a corridor drawn across a strait returns news for the administrative places it overlaps, not for whatever you called the corridor. If you were expecting a keyword filter on your label, the behaviour is different from that expectation, and the README is upfront about it.
The v0.9.0 release note says AOI geofences become a continuous watch, which is the more useful mode: rather than a one-off query, the area is swept and the dashboard layer shows counts from the last sweep. Escalation scoring is described as hotspot escalation scoring, and the README does not publish the formula behind the score. Treat the number as a relative signal for watching one area over time, not as a calibrated risk figure you can compare across unrelated regions.
Where world-intel-mcp is the wrong tool
The free-API premise is also the main limitation. Sources like adsb.lol, GDELT, RSS feeds and public government endpoints have their own rate limits and outages, and the README's answer to that is a circuit breaker plus caching rather than a data guarantee. There is no statement in the README about uptime, freshness guarantees or a service level. If a decision depends on a specific feed being current, this server cannot promise that.
Coverage is uneven by design. Domains with strong free APIs get several tools: military and defense has six, geospatial has eleven, infrastructure has five. Domains with weaker free sources get one. Cyber threats is a single tool covering URLhaus, Feodotracker, CISA KEV and SANS, which is a useful aggregation but not a substitute for a threat intelligence platform with per-vendor context.
The optional pieces are also optional for a reason. Semantic search needs the Qdrant extra and a running store; the synthesized situation brief needs a local Ollama model and falls back to a mechanical path without one. Neither is in the base install, so a minimal deployment is a live-query server, not a memory system. Finally, the README does not document rollback or a downgrade procedure, and the project ships a CHANGELOG rather than a compatibility policy, so pinning to a release tag is the only version control the documentation supports.
Compared with wiring the APIs yourself
The obvious alternative is not another product; it is writing your own MCP server over the same public APIs. That approach gives you exactly the domains you care about and full control over schemas, caching and error handling. It also means you write and maintain the Fetcher, the circuit breaker, the RSS tiering and the geo datasets yourself, and you re-do that work every time an upstream changes its response shape.
Against a dedicated feed, the difference is depth versus breadth. A paid market data subscription gives authoritative, low-latency prices for one domain. world-intel-mcp gives you a workable number for markets plus conflict, cyber, climate, maritime and aviation from the same process, at the cost of precision in any single one. The two are not mutually exclusive: nothing in the README prevents you from running this server alongside a specialized one and letting the client choose.
Within the MCP ecosystem, the distinguishing choice here is the citation discipline. The daily digest is described as a cited markdown morning brief, and the situation brief carries citations or a mechanically-cited fallback. A server that returns a number without a source is hard to trust in an intelligence context, and this one treats the source as part of the answer.
Maintenance, upgrade cost and the MIT licence
The repository is not archived, and the last push was on 2026-09-02, the same day as the v0.10.0 release. Three releases landed that day: v0.8.0 added AOI operations, digest sweeps and a full CLI, v0.9.0 turned AOIs into a continuous watch, and v0.10.0 added the dashboard AOI layer and a GDELT fix. That cadence means the surface is still moving, and the pyproject.toml version field tracks it at 0.10.0.
Upgrade cost is mostly dependency drift. The runtime pins mcp below 2.0.0 and pydantic below 3.0.0, so a major bump in either will require work by the maintainer before you can move. The pdf extra depends on weasyprint, which the README notes needs pango installed via brew on macOS, and the vector extra depends on qdrant-client and fastembed. Those extras are where breakage is most likely to appear on a fresh machine.
On licensing, the project is MIT, stated in the README badge and in the license field of pyproject.toml. That permits commercial use and modification, with the usual requirement to keep the notice. It says nothing about the licences of the upstream APIs and datasets the server consumes, and those vary; if you redistribute output, check the terms of the specific sources your queries touch rather than assuming the MIT licence covers them.
Editorial conclusion
Adopt world-intel-mcp if you already run an MCP client and want one server that answers questions about markets, conflict, cyber and climate without paying for data feeds, and if you can accept that every answer is only as good as the free upstream API behind it. Do not adopt it if you need guaranteed uptime, authoritative sourcing, or a supported product with an SLA; the README documents circuit breakers and cache health, not availability targets. Before wiring it into anything that matters, run intel status to see which sources are actually reachable from your network, and check the Qdrant and Ollama extras separately, since the vector store and the synthesized brief are optional installs rather than defaults.
Frequently asked questions
What does world-intel-mcp install as, and what Python version does it need?
It installs as an editable Python package with pip install -e . and requires Python 3.11 or newer, per the README badge and the requires-python field in pyproject.toml. It provides four console scripts: world-intel-mcp, intel, intel-dashboard and intel-collector.
Does world-intel-mcp need paid API keys?
The README states that all data comes from free, public APIs and that no paid subscriptions are required. The AOI news lookup uses OSM Nominatim reverse geocoding with no key.
How do I run the world-intel-mcp dashboard?
Install the dashboard extra with pip install -e ".[dashboard]" and then run intel-dashboard, which serves on http://localhost:8501 by default. The README shows intel-dashboard --port 9000 to change the port.
What does the situation brief tool do if no local model is available?
The README describes the tool as a bounded server-side overview synthesized via local Ollama, with a mechanically-cited fallback. Without a model, the fallback path produces the brief from mechanical citations rather than from generated text.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/marc-shade-world-intel-mcp)