← Discover MCPs and Agents
w
MCPAI & MLGitHub

world-intel-mcp

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.

Links

README

From the repo.

Phoenix Intelligence Dashboard

World Intelligence MCP Server

MCP Python 3.11+ License

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

DomainToolsData Sources
Financial Markets7Yahoo Finance, CoinGecko, Alternative.me, Mempool
Forex & Currency3ECB/Frankfurter (8 major pairs, timeseries, cross rates)
Bonds & Yields2FRED, Yahoo Finance (yield curve, bond ETFs, spread analysis)
Earnings2Yahoo Finance (mega-cap calendar, surprise history)
SEC Filings3SEC EDGAR (full-text search, company filings, 8-K material events)
Company Enrichment1Yahoo Finance + GDELT + SEC + GitHub (composite profile)
Macro Composite1Weighted 6-signal market verdict (Fear&Greed, VIX, sectors, DXY, BTC, yields)
Economic Indicators6AAA fuel prices, EIA energy, FRED macro, World Bank
Central Banks115 central bank policy rates
BTC Technicals1SMA 50/200, golden/death cross, Mayer Multiple
Natural Disasters2USGS earthquakes, NASA FIRMS wildfires
Environmental2NASA EONET, GDACS disaster alerts
Climate1Open-Meteo temperature/precipitation anomalies
Conflict & Security4ACLED events, UCDP, unrest detection, humanitarian data
Military & Defense6adsb.lol, OpenSky, hexdb.io, surge detection, theater posture, aircraft batch
Infrastructure5Cloudflare Radar, submarine cables, cascade analysis, cloud status, RIPEstat BGP/RPKI
Maritime2NGA navigation warnings, vessel snapshots
Aviation2FAA airport delays, domestic flight snapshot
News & Media3119 RSS feeds (4-tier), GDELT, trending keywords
Intelligence Analysis8Signal convergence, focal points, instability index, risk scores, escalation
NLP Intelligence4Entity extraction, event classification, news clustering, keyword spikes
Strategic Synthesis4Strategic posture, world brief, fleet report, population exposure
Geospatial11Military bases, ports, pipelines, nuclear facilities, cables, datacenters, spaceports, minerals, exchanges, trade routes, cloud regions
AI & Technology4arXiv papers, HuggingFace models, Hacker News, GitHub trending
Cyber Threats1URLhaus, Feodotracker, CISA KEV, SANS
Health1WHO DON, ProMED, CIDRAP disease outbreaks
Space Weather1NOAA SWPC (Kp index, solar flares, alerts)
Social & Sanctions3Reddit velocity, OFAC SDN list, nuclear test site monitoring
Country Intelligence3Country brief, country stocks, financial centers
Prediction Markets1Polymarket event contracts
Elections1Global election calendar with risk scoring
Displacement1UNHCR refugee/IDP data
Shipping1Dry bulk shipping stress index
Government1USAspending.gov federal contracts
Traffic2Road traffic flow, real-time incidents
Cross-Domain Alerts2Alert digest, weekly trends
Monitoring2Webcams, server health/status
Vector Search5Qdrant semantic search, similarity, timeline, stats
Cross-Domain Analytics3Correlation, domain summary, trend detection
Reports1PDF/HTML multi-domain intelligence reports
Daily Digest1Cited markdown morning brief: top events, headlines, trends, and timeline
AOI Geofences10User-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. News is scoped to the place the area sits in (OSM Nominatim reverse geocoding, no key), not to the area's name
Severe Weather2NWS active CAP alerts (US), Meteoalarm (39 EU countries)
Space Launches1Launch Library 2 upcoming launches
Volcanoes1Smithsonian GVP weekly activity report
Tropical Cyclones2NHC (Atlantic, E/C Pacific) + JTWC (NW Pacific, N Indian, S Hemisphere)
Situation Brief1Cited situational awareness brief over MCP: bounded server-side overview synthesized via local Ollama, with a mechanically-cited fallback

Total: 132 tools across 30+ intelligence domains.


Quick Start

Install

git clone https://github.com/marc-shade/world-intel-mcp.git
cd world-intel-mcp
pip install -e .

# Optional extras
pip install -e ".[dashboard]"  # Live ops-center dashboard
pip install -e ".[vector]"     # Qdrant vector store + FastEmbed
pip install -e ".[dev]"        # pytest, respx, coverage

Run as MCP Server

world-intel-mcp  # stdio mode for Claude Code, Cursor, etc.

Claude Code Configuration

Add to ~/.claude.json:

{
  "mcpServers": {
    "world-intel-mcp": {
      "command": "world-intel-mcp"
    }
  }
}

Dashboard

intel-dashboard              # http://localhost:8501
intel-dashboard --port 9000  # custom port

PDF/HTML Reports

pip install -e ".[pdf]"      # requires: brew install pango (macOS)
intel report                 # full PDF report → ~/.cache/world-intel-mcp/
intel report --format html   # HTML (no native deps needed)
intel report -o brief.pdf    # custom output path
intel report -s markets,cyber,earthquakes  # select sections

Map-first ops center: Leaflet map with toggle-able layers (quakes, military, conflict, fires, convergence, nuclear, infrastructure, your AOI geofences with last-sweep counts), 47 live SSE feeds, HUD bar, glassmorphic panels, per-source circuit breaker health.

CLI

intel markets              # stock indices
intel earthquakes --min-mag 5.0
intel status               # cache + circuit breaker health

Architecture

server.py     (MCP stdio) ─┐                                               ┌─ VectorStore (Qdrant)
cli.py        (Click CLI)  ├─> sources/*.py ─> Fetcher ─> CircuitBreaker ─┤
dashboard.py  (SSE)        │    analysis/*.py                              └─ Cache (SQLite)
collector.py  (daemon)    ─┘
  • 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 51 sources in parallel and populates the vector store. Run once or as a daemon (default: 5-minute interval). Includes the AOI change sweep, so a running daemon continuously watches every defined geofence.
  • Sources (sources/*.py): 30+ modules, each exports async def fetch_*(fetcher, **kwargs) -> dict.
  • Analysis (analysis/*.py): Cross-domain synthesis — signal aggregation, instability indexing, NLP, company enrichment, macro composite.
  • Config (config/*.py): Curated datasets — 22 hotspots, 70+ bases, 40 ports, 24 pipelines, 24 nuclear facilities, 34 cables, 48 datacenters, 27 spaceports, 82 exchanges.

MCP Tools Reference

Financial Markets (7)

ToolDescription
intel_market_quotesStock index quotes (S&P 500, Dow, Nasdaq, FTSE, Nikkei)
intel_crypto_quotesTop crypto prices and market caps from CoinGecko
intel_stablecoin_statusStablecoin peg health (USDT, USDC, DAI, FDUSD)
intel_etf_flowsBitcoin spot ETF prices and volumes
intel_sector_heatmapUS equity sector performance (11 SPDR ETFs)
intel_macro_signals7 macro indicators (Fear & Greed, VIX, DXY, gold, 10Y, BTC)
intel_commodity_quotesCommodity futures (gold, silver, crude, natgas, grains)

Forex & Currency (3)

ToolDescription
intel_forex_ratesLatest FX rates from ECB. Filter by base/target currencies
intel_forex_timeseriesHistorical FX rate with trend analysis (configurable days)
intel_major_crossesAll 8 major pairs + cross rates + DXY proxy

Bonds & Yields (2)

ToolDescription
intel_yield_curveUS Treasury yield curve (2Y-30Y), 2s10s/3m10y spreads, inversion flag
intel_bond_indicesBond ETFs: AGG, TLT, HYG, LQD, TIP with price/change

Earnings (2)

ToolDescription
intel_earnings_calendarUpcoming earnings for 20 mega-cap stocks with EPS estimates
intel_earnings_surpriseHistorical earnings surprise (actual vs estimate, trend)

SEC Filings (3)

ToolDescription
intel_sec_filingsFull-text search across all EDGAR filings
intel_company_filingsCompany filings by ticker (10-K, 10-Q, 8-K) with CIK resolution
intel_recent_8kLatest 8-K material events (M&A, exec changes, earnings)

Company Enrichment (1)

ToolDescription
intel_company_profileComposite profile: stock quote + financials + news + SEC + GitHub

Macro Composite (1)

ToolDescription
intel_macro_compositeWeighted market score (0-100) with verdict: RISK_ON to STRONG_CAUTION

Economic (6)

ToolDescription
intel_gas_pricesDaily US retail gasoline, diesel, and E85 prices from AAA
intel_residential_natgasUS residential natural gas prices from EIA
intel_electricity_ratesUS electricity retail rates by sector/state from EIA
intel_energy_pricesBrent/WTI crude oil and natural gas from EIA
intel_fred_seriesFRED economic data (GDP, CPI, unemployment, rates)
intel_world_bank_indicatorsWorld Bank development indicators by country

Central Banks (1)

ToolDescription
intel_central_bank_ratesPolicy rates for 15 major central banks

BTC Technicals (1)

ToolDescription
intel_btc_technicalsBitcoin SMA 50/200, golden/death cross, Mayer Multiple

Natural Disasters (2)

ToolDescription
intel_earthquakesUSGS earthquakes (configurable magnitude/time/limit)
intel_wildfiresNASA FIRMS satellite fire hotspots (9 global regions)

Environmental (2)

ToolDescription
intel_environmental_eventsNASA EONET natural events
intel_disaster_alertsGDACS disaster alerts with severity scoring

Conflict & Security (4)

ToolDescription
intel_acled_eventsACLED armed conflict events
intel_ucdp_eventsUppsala Conflict Data Program events
intel_unrest_eventsSocial unrest with Haversine dedup
intel_humanitarian_summaryHDX humanitarian crisis datasets

Military & Defense (6)

ToolDescription
intel_military_flightsMilitary aircraft via adsb.lol (OpenSky fallback)
intel_theater_postureActivity across 5 theaters (EU, Indo-Pacific, ME, Arctic, Korea)
intel_aircraft_detailsAircraft lookup by ICAO24 hex (hexdb.io)
intel_aircraft_batchBatch aircraft lookup (multiple hex codes)
intel_military_surgeForeign aircraft concentration anomaly detection
intel_usni_fleetUSNI News naval fleet tracker

Infrastructure (4)

ToolDescription
intel_internet_outagesCloudflare Radar internet disruptions
intel_cable_healthSubmarine cable corridor health
intel_cascade_analysisInfrastructure cascade simulation
intel_service_statusCloud platform health (AWS, Azure, GCP, Cloudflare, GitHub)

Maritime (2)

ToolDescription
intel_nav_warningsNGA maritime navigation warnings
intel_vessel_snapshotNaval activity at 9 strategic waterways

Geospatial Datasets (10)

ToolDescription
intel_military_bases70 military bases from 9 operators
intel_strategic_ports40 strategic ports across 6 types
intel_pipelines24 oil/gas/hydrogen pipelines
intel_nuclear_facilities24 nuclear power/enrichment/research facilities
intel_undersea_cables34 submarine communications cables
intel_ai_datacenters48 AI/HPC datacenters worldwide
intel_spaceports27 global spaceports
intel_critical_minerals27 strategic mineral deposits
intel_stock_exchanges82 stock exchanges worldwide
intel_trade_routesMajor trade routes and chokepoints

News & Media (3)

ToolDescription
intel_news_feed119 global RSS feeds with 4-tier source ranking
intel_trending_keywordsTrending terms with spike detection
intel_gdelt_searchGDELT 2.0 global news search

Intelligence Analysis (8)

ToolDescription
intel_signal_convergenceGeographic convergence of multi-domain signals
intel_focal_pointsMulti-signal focal point detection
intel_signal_summaryCountry-level signal aggregation
intel_temporal_anomaliesActivity deviations from baselines
intel_instability_indexCountry Instability Index v2 (0-100)
intel_risk_scoresACLED-based conflict risk scoring
intel_hotspot_escalationEscalation scores for 22 intel hotspots
intel_country_dossierComprehensive country intelligence dossier

NLP Intelligence (4)

ToolDescription
intel_extract_entitiesNamed entity extraction (countries, leaders, orgs, CVEs, APTs)
intel_classify_eventEvent classification into 14 threat categories
intel_news_clustersTopic clustering by Jaccard similarity
intel_keyword_spikesKeyword spike detection with Welford's algorithm

Strategic Synthesis (4)

ToolDescription
intel_strategic_postureComposite global risk from 9 weighted domains
intel_world_briefStructured daily intelligence summary
intel_fleet_reportNaval fleet activity report with readiness scoring
intel_population_exposurePopulation at risk near active events (105-city dataset)

Climate (1)

ToolDescription
intel_climate_anomaliesOpen-Meteo temperature/precipitation anomalies

Prediction Markets (1)

ToolDescription
intel_prediction_marketsPolymarket prediction contracts

Elections (1)

ToolDescription
intel_election_calendarGlobal election calendar with risk scoring

Displacement (1)

ToolDescription
intel_displacement_summaryUNHCR refugee/IDP statistics

Aviation (2)

ToolDescription
intel_airport_delaysFAA airport delay status
intel_aviation_domesticGlobal air traffic snapshot from OpenSky

Cyber Threats (1)

ToolDescription
intel_cyber_threatsAggregated cyber intel (URLhaus, CISA KEV, SANS)

Space Weather (1)

ToolDescription
intel_space_weatherSolar activity (Kp index, X-ray flux, SWPC alerts)

AI & Technology (4)

ToolDescription
intel_ai_releasesarXiv AI papers, HuggingFace models
intel_hacker_newsHacker News top stories
intel_trending_reposGitHub trending repositories
intel_arxiv_papersarXiv paper search

Health (1)

ToolDescription
intel_disease_outbreaksWHO DON, ProMED, CIDRAP outbreaks

Social & Sanctions (3)

ToolDescription
intel_social_signalsReddit geopolitical discussion velocity
intel_sanctions_searchOFAC SDN list search
intel_nuclear_monitorSeismic monitoring near nuclear test sites

Shipping & Trade (1)

ToolDescription
intel_shipping_indexDry bulk shipping stress index

Government (1)

ToolDescription
intel_usa_spendingUSAspending.gov federal contracts

Country Intelligence (3)

ToolDescription
intel_country_briefQuick country situation summary
intel_country_stocksStock exchanges and listings by country
intel_financial_centersGlobal financial centers ranking

Extended Geospatial (1)

ToolDescription
intel_cloud_regionsCloud provider regions worldwide

Traffic (2)

ToolDescription
intel_traffic_flowRoad traffic flow data
intel_traffic_incidentsReal-time traffic incidents

Cross-Domain Alerts (2)

ToolDescription
intel_alert_digestCross-domain alert aggregation
intel_weekly_trendsWeekly trend analysis

Monitoring (2)

ToolDescription
intel_webcamsPublic webcam locations and live previews
intel_statusServer health, cache stats, circuit breaker status

Vector Search (5)

ToolDescription
intel_semantic_searchNatural language search across all accumulated intelligence
intel_similar_eventsFind events similar to a given data point
intel_timelineChronological view of intelligence for a domain/category
intel_vector_statsVector store collection statistics
intel_collectTrigger an on-demand collection cycle

Cross-Domain Analytics (3)

ToolDescription
intel_cross_correlateFind correlated signals across all domains for a given topic
intel_domain_summaryPer-category summary of stored intelligence (counts, sources, recency)
intel_trend_detectionDetect activity surges/drops by comparing recent vs baseline periods

Reports (1)

ToolDescription
intel_generate_reportGenerate a PDF or HTML intelligence report covering 18 domains in parallel

AOI Geofences (5)

ToolDescription
intel_aoi_defineDefine a named area of interest: point + radius in km (1-2000)
intel_aoi_listList all user-defined AOIs
intel_aoi_deleteDelete a user-defined AOI by name
intel_aoi_briefCited 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_escalationHotspot escalation scoring (same engine as the 22 built-in hotspots) applied to a user AOI

Situation Brief (1)

ToolDescription
intel_situation_briefCited 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
intel-collector --daemon --sources aoi --interval 900  # AOI watch only: sweep every geofence every 15 min

The aoi group runs intel_aoi_digest as a sweep: each cycle diffs every defined AOI against its stored snapshot and advances it, so the daemon interval is your geofence watch cadence. Change digests are logged and (when the vector store is enabled) stored for semantic search. Set WORLD_INTEL_AOI_WEBHOOK to get a POST whenever a sweep finds something entered or left a geofence (quiet sweeps never fire); with WORLD_INTEL_AOI_WEBHOOK_FORMAT=text the body is raw markdown with a Title header, which ntfy-style sinks render directly.

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

VariableRequiredDescription
ACLED_ACCESS_TOKENNoACLED conflict events
NASA_FIRMS_API_KEYNoSatellite wildfire data
EIA_API_KEYNoEnergy price data
CLOUDFLARE_API_TOKENNoInternet outage data
FRED_API_KEYNoMacro economic data (also used for yield curve)
OPENSKY_CLIENT_IDNoMilitary flight fallback
OPENSKY_CLIENT_SECRETNoMilitary flight fallback
OLLAMA_API_URLNoOllama server for AI-generated briefs (default: http://localhost:11434)
OLLAMA_MODELNoOllama model for AI-generated briefs (default: llama3.2)
WORLD_INTEL_LOG_LEVELNoLogging level (default: INFO)
WORLD_INTEL_AOI_WEBHOOKNoURL POSTed when an AOI sweep finds changes (collector daemon); quiet sweeps don't fire
WORLD_INTEL_AOI_WEBHOOK_FORMATNojson (default: title/totals/markdown payload) or text (raw markdown body + Title header, ntfy-style)

Everything else uses free, unauthenticated public APIs.


Development

pip install -e ".[dev]"
pytest                       # 900 tests (918 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

  1. Create sources/your_source.py with async def fetch_your_data(fetcher: Fetcher, **kwargs) -> dict
  2. Use fetcher.get_json(url, source="your-source", cache_key=..., cache_ttl=300) — automatic caching, retries, circuit breaking, rate limiting
  3. In server.py: add Tool(...) to TOOLS, add case to _dispatch() (use inline import)
  4. Add tests using respx to mock HTTP (see tests/test_forex.py for pattern)
  5. Optionally add to dashboard/app.py (SSE) and cli.py (Click)

License

MIT

Collected info

  • 645 stars
  • 117 forks
  • Language: Python
  • Source updated: 9/18/2026

Config for your environment

Replace {MCP_ENDPOINT_URL} with this MCP’s endpoint URL (from its repo or docs above). No API key — you connect directly.

Tool

OS

Config file: ~/.cursor/mcp.json

{
  "mcpServers": {
    "mcp-server": {
      "url": "{MCP_ENDPOINT_URL}"
    }
  }
}

Paste into mcpServers in the config file. Restart Cursor after saving.

If this MCP is also published on mcpchannel.ai, you can subscribe from Browse and use the gateway config there instead.