Global Sentinel Mcp

io.github.ykshah1309Published by GitHub account ykshah1309v0.1.1Updated Oct 27, 2026

Polymarket, GDELT, OpenSky, Cloudflare Radar unified as one MCP server.

Overview

AI-generated overview

Local MCP server that unifies Polymarket odds, GDELT news events, OpenSky flight data and Cloudflare Radar telemetry for macro and financial analysis.

What you can do
  • Look up ranked prediction-market odds for a query or a specific event id or slug
  • Fetch the latest ADS-B aircraft state by tail number or ICAO24 hex, and convert FAA N-Numbers to ICAO24 offline
  • Retrieve high-impact global news events for a country, ranked by Goldstein scale
  • Check BGP hijacks, leaks and regional outage annotations from Cloudflare Radar
  • Generate a composite macro alert fusing news events and outage annotations into one convergence signal with an explanation
When to use it
Useful when an assistant needs alternative data for macro or financial research — crowd probabilities, geopolitical event streams, live aircraft positions or internet-infrastructure anomalies — without wiring each upstream API separately.
Requirements
Runs locally over stdio, installed with uvx or pip from PyPI. Polymarket and GDELT need no credentials. OpenSky aviation tools use OPENSKY_CLIENT_ID and OPENSKY_CLIENT_SECRET (OAuth2), or legacy OPENSKY_USERNAME and OPENSKY_PASSWORD; anonymous access is heavily rate-limited. Cloudflare Radar tools require CLOUDFLARE_API_TOKEN with Radar read permissions. LOG_LEVEL is optional. Network access is needed.
Before you install
Requires secrets: CLOUDFLARE_API_TOKEN, OPENSKY_CLIENT_SECRET and OPENSKY_PASSWORD are stored in the client configuration. Queries and identifiers are sent to third-party services (Polymarket, GDELT, OpenSky, Cloudflare). The project is beta, so its public API may change. Tools are read-only lookups; no writes or payments are described.

Installation

In SourceWeft

  1. Open Global Sentinel Mcp in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

global-sentinel-mcp

An async MCP server unifying prediction markets, global news events, aviation state, and internet-infrastructure telemetry into one alternative-data layer for macro and financial analysis.

[PyPI version] [Python 3.11+] [MIT License] [CI] [Publish]

Status: Beta — ready for production use; public API may still shift before 1.0.


Why this exists

Alternative data — prediction-market odds, real-time geopolitical event streams, live aviation transponder data, and internet-infrastructure telemetry — is increasingly central to macro and financial analysis. Each source has its own API shape, authentication model, and update cadence, making it tedious to wire them together for every new project.

global-sentinel-mcp closes that gap by wrapping four public data feeds behind a single Model Context Protocol (MCP) interface. An LLM agent can ask probability, event, aviation-state, and internet-telemetry questions in one place, without knowing the upstream API details. It also exposes a composite macro alert tool that fuses news events and outage annotations into one convergence signal with a human-readable explanation.

The server is fully async (httpx.AsyncClient with retry transport), returns typed Pydantic v2 models for every response and error, ships a TTL cache per source to stay within upstream rate limits, and installs in one command over stdio — no web server required.


Available Tools

ToolData SourceWhat it returns
get_prediction_oddsPolymarketRanked event odds (probability %, volume, end date) for a query
get_prediction_event_by_idPolymarketOdds for a specific event id or slug
lookup_aircraft_stateOpenSky NetworkLatest ADS-B state for a tail number (N-Number) or ICAO24 hex
convert_nnumber— (offline)Pure-Python FAA N-Number ↔ ICAO24 conversion, no network needed
get_global_eventsGDELT 2.0High-impact events for a country, ranked by Goldstein scale
check_network_anomaliesCloudflare RadarBGP hijacks + leaks and regional outage annotations
get_macro_alertGDELT + CloudflareComposite convergence signal with explanation string

Quickstart

1. Install

bash
uvx global-sentinel-mcp

Or install from PyPI:

bash
pip install global-sentinel-mcp

2. Set environment variables (all optional — unset tools degrade gracefully)

bash
# OpenSky — OAuth2 preferred (post-2025 migration), Basic Auth for legacy accounts.export OPENSKY_CLIENT_ID="your_opensky_client_id"export OPENSKY_CLIENT_SECRET="your_opensky_client_secret"# Cloudflare Radar — required for BGP and outage tools.export CLOUDFLARE_API_TOKEN="your_cf_token"# Optional.export LOG_LEVEL="INFO"

3. Run

bash
global-sentinel-mcp

The server speaks MCP JSON-RPC over stdio.

Local development

bash
git clone https://github.com/ykshah1309/global-sentinel-mcpcd global-sentinel-mcpuv sync --devuv run global-sentinel-mcp        # run the serveruv run pytest tests/ -v           # run the test suiteuv run ruff check src/ tests/     # lintuv run mypy src/                  # type-check

Claude Desktop configuration

Add to claude_desktop_config.json (see claude_desktop_config.example.json):

json
{  "mcpServers": {    "global-sentinel": {      "command": "uvx",      "args": ["global-sentinel-mcp"],      "env": {        "OPENSKY_CLIENT_ID": "your_opensky_client_id",        "OPENSKY_CLIENT_SECRET": "your_opensky_client_secret",        "CLOUDFLARE_API_TOKEN": "your_cf_token"      }    }  }}

Cursor configuration

Add to .cursor/mcp.json:

json
{  "mcpServers": {    "global-sentinel": {      "command": "uvx",      "args": ["global-sentinel-mcp"],      "env": {        "OPENSKY_CLIENT_ID": "your_opensky_client_id",        "OPENSKY_CLIENT_SECRET": "your_opensky_client_secret",        "CLOUDFLARE_API_TOKEN": "your_cf_token"      }    }  }}

Environment Variables

VariableRequired forDescription
OPENSKY_CLIENT_IDaviation (OAuth2, preferred)OpenSky OAuth2 client id — register free
OPENSKY_CLIENT_SECRETaviation (OAuth2, preferred)OpenSky OAuth2 client secret
OPENSKY_USERNAMEaviation (legacy)OpenSky Basic Auth username (pre-2025 accounts)
OPENSKY_PASSWORDaviation (legacy)OpenSky Basic Auth password
CLOUDFLARE_API_TOKENBGP + outagesCloudflare API token with Radar read permissions
LOG_LEVEL—Python log level (DEBUG / INFO / WARNING / ERROR). Default INFO.

Polymarket and GDELT tools require no authentication. Anonymous OpenSky is allowed but heavily rate-limited.


Data Sources

Polymarket (Gamma API)

Crowd-sourced prediction market data. Token prices reflect the crowd's estimated probability of future events. No API key required. Events expose outcomes and outcomePrices as JSON-encoded strings — the client parses the "Yes" leg and returns it as probability_pct. Docs

GDELT 2.0

The world's largest open-access global news event database, updated every 15 minutes. Events are coded with actors, event types, Goldstein conflict/cooperation scores, and geographic coordinates. Per publish cycle the server downloads and parses the 5 MB export zip exactly once, then answers all country queries from an in-memory DataFrame cache. Docs

OpenSky Network

Public ADS-B flight tracking from a global network of volunteer receivers. Returns real-time position, altitude, velocity, and on-ground status for any aircraft with a Mode S transponder. Post-2025 the service moved to OAuth2 client-credentials; this server handles token refresh automatically and falls back to Basic Auth (legacy) or anonymous if credentials are absent. Docs

Cloudflare Radar

Internet-infrastructure telemetry from Cloudflare's global network. Covers BGP routing anomalies (/bgp/hijacks/events, /bgp/leaks/events) and regional outage annotations (/annotations/outages, formerly "traffic anomalies", renamed by Cloudflare in 2024). Requires a free Cloudflare API token. Docs


Contributing

See CONTRIBUTING.md for setup instructions, branch naming conventions, testing requirements, and code style guidelines.


License

MIT — Copyright (c) 2026 ykshah1309

Source: README.md at commit e22c2ef

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.1.1LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts