Skip to main content
Glama

Full-spectrum GEOINT (Geospatial Intelligence) server for the Model Context Protocol. 171 tools covering satellite imagery, aircraft tracking, maritime surveillance, military intelligence, conflict monitoring, environmental analysis, critical infrastructure, sanctions compliance, cyber-geo intelligence, and 18 more domains — all from open-source data.


Highlights

  • 171 tools across 27 categories — the most comprehensive GEOINT MCP server available

  • Sentinel-2, Landsat 8/9, Planet Labs, NASA FIRMS satellite imagery search, metadata, and spectral band reference

  • Real-time aircraft tracking (ADS-B via OpenSky), maritime AIS surveillance (Global Fishing Watch), space/orbital tracking (CelesTrak, N2YO)

  • Military base detection, conflict event monitoring (ACLED/GDELT), sanctions compliance (OFAC SDN)

  • Pure-computation spectral indices (NDVI, NDWI, NBR, EVI, and more) and multi-index change detection — no external dependencies

  • Zero-config for most tools — API keys are optional and unlock premium data sources; dozens of tools work immediately with no setup

  • Two runtime dependencies only — @modelcontextprotocol/sdk and zod

  • Stdio transport — works with Claude Desktop, Claude Code, Cursor, Windsurf, and any MCP-compatible client


Related MCP server: worldmonitor-mcp

Quick Start

npx satellite-mcp              # run directly (no install)
# or install globally
npm i -g satellite-mcp
satellite-mcp --list           # see all 171 tools
satellite-mcp --help           # usage information

Connect to Claude Desktop

Add to your MCP configuration file (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):

{
  "mcpServers": {
    "satellite": {
      "command": "npx",
      "args": ["-y", "satellite-mcp"],
      "env": {
        "NASA_API_KEY": "your-key-or-use-DEMO_KEY",
        "OPENSKY_USERNAME": "optional"
      }
    }
  }
}

Connect to Claude Code

claude mcp add satellite-mcp -- npx satellite-mcp

CLI Usage

# Run any tool directly from the command line
satellite-mcp --tool spectral_ndvi '{"nir":0.8,"red":0.2}'
satellite-mcp --tool geo_distance '{"lat1":41.01,"lng1":28.98,"lat2":39.93,"lng2":32.86}'
satellite-mcp --tool quake_recent '{"min_magnitude":4.0,"limit":10}'
satellite-mcp --tool firms_active_country '{"country":"TUR","days":1}'
satellite-mcp --tool weather_current '{"lat":48.85,"lng":2.35}'

Tool Categories

#

Category

Tools

API / Data Source

Auth

1

Sentinel-2 (Copernicus)

8

Copernicus Data Space OData

Optional OAuth2

2

Landsat (USGS)

7

USGS M2M API

Optional

3

NASA FIRMS (Active Fire)

6

NASA FIRMS REST

Optional key

4

NASA Earth Observation

7

NASA Open APIs

Optional (DEMO_KEY)

5

Night Lights (VIIRS)

5

EOG / NOAA

None

6

Planet Labs

4

Planet Data API

Required

7

Aircraft Intelligence

10

OpenSky Network

Optional

8

Maritime Intelligence

8

Global Fishing Watch

Optional

9

Military & Defense

8

OSM + OpenSky

None

10

Space & Orbital Tracking

6

CelesTrak + N2YO

Optional

11

Conflict & Events

6

ACLED + GDELT

Optional

12

Environmental Intelligence

6

GFW + Open-Meteo

Optional

13

Critical Infrastructure

6

OSM Overpass

None

14

Sanctions & Compliance

5

OFAC SDN

None

15

Terrain & Elevation

6

Open Elevation

None

16

Cyber-Geo Intelligence

6

OONI + IODA + ip-api

None

17

Population & Demographics

5

WorldPop + UNHCR

None

18

Agriculture & Food Security

5

FAO + FEWS NET

None

19

Humanitarian & Refugee

5

ReliefWeb + UNHCR

None

20

Ocean Intelligence

5

NOAA Buoys + Open-Meteo

None

21

Trade Intelligence

5

UN Comtrade

Optional

22

Seismic & Disaster

5

USGS Earthquake

None

23

OpenStreetMap / Overpass

8

Overpass API

None

24

Geocoding & Coordinates

8

Nominatim + math

None

25

Spectral Analysis

8

Pure computation

None

26

Change Detection

6

Pure computation

None

27

Weather & Atmosphere

6

Open-Meteo

None

Total

171


1. Sentinel-2 (Copernicus) — 8 tools

Tool

Description

sentinel_search

Search Sentinel-2 satellite imagery by location, date range, and cloud cover percentage

sentinel_metadata

Get detailed metadata for a Sentinel-2 product by ID

sentinel_quicklook

Get quicklook (thumbnail preview) URL for a Sentinel-2 product

sentinel_bands

Reference table of all 13 Sentinel-2 MSI spectral bands with wavelengths and resolutions

sentinel_latest

Find the most recent cloud-free Sentinel-2 image for a location

sentinel_timeline

Get available Sentinel-2 image dates for a location over the past year

sentinel_coverage

Sentinel-2 coverage and revisit information for a location

sentinel_download_url

Get download URL for a Sentinel-2 product (requires Copernicus authentication)

2. Landsat (USGS) — 7 tools

Tool

Description

landsat_search

Search Landsat 8/9 satellite scenes by location, date range, and cloud cover

landsat_metadata

Get detailed metadata for a Landsat scene by entity ID

landsat_browse

Get browse/thumbnail URL for a Landsat scene

landsat_bands

Reference table of Landsat 8/9 OLI/TIRS spectral bands with wavelengths and resolutions

landsat_latest

Find the most recent Landsat scene for a location

landsat_timeline

Get Landsat scene availability for a location — historical coverage since 1972

landsat_download_url

Get download URL for a Landsat scene (requires USGS authentication)

3. NASA FIRMS (Active Fire) — 6 tools

Tool

Description

firms_active_area

Query NASA FIRMS for active fire detections within a geographic bounding box

firms_active_country

Query NASA FIRMS for active fire detections within a country (ISO 3166-1 alpha-3)

firms_active_point

Find active fires near a specific coordinate within a given radius

firms_history

Retrieve historical fire detection data for a specific date and bounding box

firms_latest

Retrieve the latest global fire detections sorted by most recent

firms_summary

Compute aggregate fire statistics for a geographic area — total count, brightness, FRP, confidence

4. NASA Earth Observation — 7 tools

Tool

Description

nasa_earth_image

Get Landsat 8 natural color satellite imagery URL for a coordinate and date

nasa_earth_assets

List available Landsat 8 imagery dates for a geographic coordinate

nasa_epic_latest

Get the latest full-disk Earth photograph from DSCOVR's EPIC camera

nasa_epic_date

Get DSCOVR EPIC full-Earth photographs for a specific date

nasa_epic_archive

List all available dates in the DSCOVR EPIC image archive

nasa_power_data

Retrieve daily solar and meteorological parameters from NASA POWER

nasa_gibs_tile

Construct a NASA GIBS WMTS tile URL for a specific layer, date, and tile coordinate

5. Night Lights (VIIRS) — 5 tools

Tool

Description

nightlights_tile

Get night lights map tile URL from NASA GIBS — VIIRS Black Marble layer

nightlights_radiance

Get night light radiance estimate for a location — light intensity indicator

nightlights_compare

Compare night light levels between two dates — detect power outages, urban growth, or conflict damage

nightlights_timeseries

Night light time series analysis — monthly radiance trends for monitoring urbanization or conflict

nightlights_anomaly

Night light anomaly detection — sudden changes indicating power outages, conflict, or rapid development

6. Planet Labs — 4 tools

Tool

Description

planet_search

Search Planet Labs satellite imagery catalog — daily 3m resolution global coverage

planet_metadata

Get detailed metadata for a Planet Labs item

planet_thumbnail

Get thumbnail preview URL for a Planet Labs item

planet_stats

Get Planet imagery coverage statistics for an area

7. Aircraft Intelligence — 10 tools

Tool

Description

aircraft_live

Get live aircraft positions within a bounding box — position, altitude, speed, heading, origin country

aircraft_track

Track a specific aircraft by ICAO24 hex address — returns flight path waypoints

aircraft_flights

Get flight history for an aircraft over a time period including departure and arrival airports

aircraft_waypoints

Get flight waypoints for an aircraft with cumulative distance calculation

aircraft_arrivals

Get recent arrivals at an airport by ICAO code

aircraft_departures

Get recent departures from an airport by ICAO code

aircraft_search

Search for currently airborne aircraft by callsign (partial match supported)

aircraft_military

Filter military aircraft in a bounding box by ICAO24 hex ranges assigned to military operators

aircraft_stats

Traffic statistics for a bounding box — total aircraft, altitude distribution, top countries

aircraft_anomaly

Detect anomalous aircraft behavior — low altitude, loitering, emergency squawks, no callsign

8. Maritime Intelligence — 8 tools

Tool

Description

ship_search

Search for vessels by name, MMSI, or IMO number using Global Fishing Watch

ship_position

Get last known position for a vessel by GFW vessel ID

ship_track

Get vessel movement history (GPS track) over a date range

ship_area

Get all vessels in a bounding box area using AIS data

ship_fishing

Analyze fishing activity in an area — fishing hours, vessel count, top flag states

ship_port_visits

Get port visit history for a vessel

ship_encounters

Detect ship-to-ship encounters and transfers — potential at-sea transshipment

ship_dark

Detect AIS gap events (dark periods) for a vessel — potential sanctions evasion or illegal activity

9. Military & Defense — 8 tools

Tool

Description

mil_bases

Find military bases, barracks, airfields, ranges, and bunkers in a bounding box (OSM data)

mil_aircraft

Track live military aircraft in a bounding box by filtering military ICAO24 hex ranges

mil_airspace

Find restricted, danger, prohibited, and military airspace zones in a bounding box

mil_naval

Find naval bases and military ports in a bounding box

mil_nuclear

Find nuclear facilities — power plants, research reactors, enrichment sites in a bounding box

mil_missile

Find known missile test sites, launch pads, and military testing ranges in a bounding box

mil_radar

Find radar stations and air defense installations in a bounding box

mil_activity

Composite military activity score for a bounding box — facility count, restricted airspace, overall assessment

10. Space & Orbital Tracking — 6 tools

Tool

Description

space_satellites

List active satellites by category — communications, weather, military, science, navigation, starlink

space_tle

Get TLE (Two-Line Element) orbital data for a satellite by NORAD catalog number

space_passes

Predict visible satellite passes over a location (requires N2YO API key)

space_overhead

List satellites currently overhead at a location (requires N2YO API key)

space_starlink

Get Starlink constellation status — total satellites, orbital statistics, newest and oldest launches

space_debris

Track space debris objects from known fragmentation events

11. Conflict & Events — 6 tools

Tool

Description

conflict_events

Get armed conflict events from ACLED — battles, violence against civilians, explosions, riots, protests

conflict_fatalities

Conflict fatality statistics by country — total fatalities, breakdown by event type

conflict_actors

List armed groups and actors active in a country with event counts

conflict_hotspots

Conflict intensity grid map — divides bounding box into cells and counts events per cell

events_global

Global event monitoring via GDELT — search news articles about specific topics or events

events_media

Media intensity analysis via GDELT — track news volume over time for a topic or region

12. Environmental Intelligence — 6 tools

Tool

Description

env_deforestation

Get deforestation alerts (GLAD) near a coordinate — recent tree cover loss events

env_fire_risk

Assess fire risk at a location based on current weather conditions — temperature, humidity, wind

env_methane

Check for methane emission hotspots — uses Sentinel-5P TROPOMI data references

env_air_pollution

Get satellite-derived air pollution data — NO2, SO2, CO, PM2.5, ozone levels

env_ocean_temp

Get sea surface temperature (SST) at a coordinate using Open-Meteo marine data

env_water_quality

Water quality indicators — chlorophyll and turbidity reference data for a coordinate

13. Critical Infrastructure — 6 tools

Tool

Description

infra_power

Find power plants, substations, and transmission lines in a bounding box

infra_pipelines

Find oil, gas, and water pipelines in a bounding box

infra_telecom

Find cell towers, communication masts, and data centers in a bounding box

infra_cables

Find submarine cable landing points in a bounding box

infra_transport

Find bridges, tunnels, ferry terminals, and train stations in a bounding box

infra_energy

Find renewable energy installations — wind turbines and solar farms in a bounding box

14. Sanctions & Compliance — 5 tools

Tool

Description

sanctions_search

Search OFAC SDN sanctions list for a name, entity, or organization

sanctions_vessel

Check if a vessel is on sanctions lists by IMO number or vessel name

sanctions_entity

Check sanctions status for a specific entity or individual

sanctions_country

Get sanctions program summary for a country — sanction level, programs, and restrictions

sanctions_changes

Check for recent changes to the OFAC sanctions list

15. Terrain & Elevation — 6 tools

Tool

Description

terrain_elevation

Get the elevation (altitude above sea level) at a given geographic coordinate

terrain_profile

Generate an elevation profile between two geographic points with distance and elevation statistics

terrain_slope

Calculate the slope (gradient) between two points — angle, percentage, and terrain classification

terrain_viewshed

Line of sight analysis between two points — can observer at A see target at B considering terrain

terrain_prominence

Find the highest and lowest points in a bounding box by querying an elevation grid

terrain_flood_risk

Assess flood risk at a location based on elevation relative to a reference water level

16. Cyber-Geo Intelligence — 6 tools

Tool

Description

cyber_ip_locate

Geolocate an IP address — country, city, ISP, coordinates, timezone

cyber_censorship

Detect internet censorship in a country using OONI measurements — blocked sites and methods

cyber_outage

Detect internet outages in a country using IODA (Internet Outage Detection and Analysis)

cyber_cable_landing

Find submarine cable landing points near a coordinate using OpenStreetMap data

cyber_ix_points

Find Internet Exchange Points (IXPs) in a country using PeeringDB

cyber_connectivity

Country internet connectivity overview — IXP count, cable landings, and assessment

17. Population & Demographics — 5 tools

Tool

Description

pop_density

Get population density estimate for a coordinate or country using WorldPop data

pop_urban

Get urbanization and city data for a coordinate — nearby urban areas and characteristics

pop_growth

Population growth data for a country from UN World Population Prospects

pop_displacement

Get displaced population data for a country from UNHCR

pop_age_structure

Population age structure reference for a country — age groups for demographic analysis

18. Agriculture & Food Security — 5 tools

Tool

Description

agri_crop_health

Assess crop health at a location using NDVI time series — links to satellite vegetation indices

agri_drought

Drought assessment at a location using weather indicators — temperature, precipitation, humidity

agri_food_price

FAO Food Price Index — global food commodity price trends

agri_famine_risk

Famine risk assessment using FEWS NET IPC phase classification

agri_locust

Desert locust swarm tracking and alerts from FAO Locust Watch

19. Humanitarian & Refugee — 5 tools

Tool

Description

humanitarian_crises

List active humanitarian crises worldwide from ReliefWeb

humanitarian_reports

Get latest humanitarian situation reports and updates from ReliefWeb

humanitarian_camps

Get refugee camp locations and population data from UNHCR

humanitarian_funding

Humanitarian funding status — requested vs. received for crises

humanitarian_displacement

Global displacement statistics — refugees, IDPs, asylum seekers from UNHCR

20. Ocean Intelligence — 5 tools

Tool

Description

ocean_buoy_data

Get ocean buoy measurements — wave height, wind, temperature, pressure from NOAA NDBC

ocean_currents

Get ocean current information for a marine location using Open-Meteo marine data

ocean_sea_ice

Sea ice extent information — Arctic and Antarctic ice coverage reference

ocean_chlorophyll

Ocean chlorophyll concentration reference — fishing productivity and marine ecosystem indicator

ocean_sst_anomaly

Sea surface temperature anomaly — El Nino/La Nina indicator and climate monitoring

21. Trade Intelligence — 5 tools

Tool

Description

trade_flow

Get bilateral trade data between two countries — import/export values by commodity

trade_partners

Get top trade partners for a country

trade_commodity

Get global trade data for a specific commodity (HS code)

trade_timeseries

Get trade volume time series for a country pair over multiple years

trade_balance

Calculate trade balance between two countries — exports minus imports

22. Seismic & Disaster — 5 tools

Tool

Description

quake_recent

Get recent earthquakes worldwide filtered by minimum magnitude — location, depth, tsunami warning

quake_search

Search earthquakes by date range, magnitude, and geographic region

quake_detail

Get detailed information about a specific earthquake by USGS event ID

quake_area

Get earthquakes within a bounding box over a specified time period

quake_stats

Earthquake statistics for a time period — magnitude distribution, deepest, strongest, averages

23. OpenStreetMap / Overpass — 8 tools

Tool

Description

osm_query

Run a custom Overpass QL query against OpenStreetMap data — returns GeoJSON-like elements

osm_buildings

Count and classify buildings in a bounding box — residential, commercial, industrial

osm_infrastructure

Find roads, bridges, and railways in a bounding box

osm_military

Find military facilities (bases, airfields, barracks, bunkers, checkpoints) in a bounding box

osm_airports

Find airports, airfields, and helipads in a bounding box

osm_water

Find water bodies, rivers, streams, and dams in a bounding box

osm_industrial

Find industrial sites, power plants, and refineries in a bounding box

osm_identify

Identify what is at a given coordinate — search within a radius for named features

24. Geocoding & Coordinates — 8 tools

Tool

Description

geo_forward

Forward geocoding: convert an address or place name to geographic coordinates (Nominatim)

geo_reverse

Reverse geocoding: convert latitude/longitude to a human-readable address (Nominatim)

geo_distance

Calculate great-circle distance between two points using the Haversine formula

geo_bbox

Compute a bounding box from a center point and radius in kilometers

geo_mgrs

Convert between MGRS (Military Grid Reference System) and latitude/longitude coordinates

geo_elevation

Get the elevation at a geographic coordinate using the Open Elevation API

geo_timezone

Estimate the timezone at a geographic coordinate based on longitude

geo_sun

Calculate sun position data — sunrise, sunset, solar noon, civil dawn/dusk, day length

25. Spectral Analysis — 8 tools

Tool

Description

spectral_ndvi

Calculate Normalized Difference Vegetation Index from NIR and Red band reflectance

spectral_ndwi

Calculate Normalized Difference Water Index from Green and NIR band reflectance

spectral_nbr

Calculate Normalized Burn Ratio from NIR and SWIR band reflectance

spectral_evi

Calculate Enhanced Vegetation Index from NIR, Red, and Blue band reflectance

spectral_ndbi

Calculate Normalized Difference Built-up Index from SWIR and NIR band reflectance

spectral_bsi

Calculate Bare Soil Index from SWIR, Red, NIR, and Blue band reflectance

spectral_savi

Calculate Soil Adjusted Vegetation Index from NIR and Red band reflectance

spectral_custom

Evaluate a custom band math expression using a safe expression parser

26. Change Detection — 6 tools

Tool

Description

change_detect

General-purpose change detection: computes difference of any spectral index between two dates

change_vegetation

Vegetation change detection using NDVI between two dates

change_urban

Urban expansion detection using NDBI between two dates

change_water

Water body change detection using NDWI between two dates

change_burn

Fire scar / burn severity detection using dNBR between pre-fire and post-fire dates

change_summary

Multi-index change report: NDVI, NDWI, NDBI, NBR, BSI for an overall landscape change assessment

27. Weather & Atmosphere — 6 tools

Tool

Description

weather_current

Get current weather conditions — temperature, humidity, wind, pressure, cloud cover, precipitation

weather_forecast

Get 7-day weather forecast with daily temperature, precipitation, wind, sunrise, and sunset

weather_historical

Get historical weather data for a specific date and location

weather_satellite_window

Find optimal satellite imaging windows (low cloud cover periods) for the next N days

atmosphere_air_quality

Get current air quality index and pollutant concentrations (PM2.5, PM10, NO2, SO2, CO, Ozone)

atmosphere_uv

Get current UV index at a coordinate with risk classification

Meta — 1 tool

Tool

Description

satellite_list_sources

List all data sources, API key configuration status, and tool counts across all 27 categories


API Keys

All API keys are configured via environment variables. Most tools work without any keys at all.

Environment Variable

Service

Required

Purpose

COPERNICUS_CLIENT_ID

Copernicus Data Space

Optional

Sentinel-2 imagery download and quicklook access

COPERNICUS_CLIENT_SECRET

Copernicus Data Space

Optional

Sentinel-2 OAuth2 authentication (pair with CLIENT_ID)

USGS_USERNAME

USGS EarthExplorer

Optional

Landsat scene search, metadata, and download

USGS_PASSWORD

USGS EarthExplorer

Optional

Landsat authentication (pair with USERNAME)

NASA_API_KEY

NASA Open APIs

Optional

Earth imagery, EPIC, POWER data (fallback: DEMO_KEY)

NASA_FIRMS_KEY

NASA FIRMS

Optional

Active fire detections (fallback: DEMO_KEY)

NASA_EARTHDATA_TOKEN

NASA Earthdata

Optional

Premium NASA data access

PLANET_API_KEY

Planet Labs

Required

Daily 3m satellite imagery (search, metadata, thumbnails)

OPENSKY_USERNAME

OpenSky Network

Optional

Higher rate limits for aircraft tracking

OPENSKY_PASSWORD

OpenSky Network

Optional

OpenSky authentication (pair with USERNAME)

GFW_API_KEY

Global Fishing Watch

Optional

Maritime vessel tracking, fishing activity, AIS gaps

N2YO_API_KEY

N2YO

Optional

Satellite pass predictions and overhead tracking

ACLED_API_KEY

ACLED

Optional

Armed conflict event data

ACLED_EMAIL

ACLED

Optional

ACLED registered email (pair with API_KEY)

COMTRADE_API_KEY

UN Comtrade

Optional

International trade flow data

TIMEZONEDB_KEY

TimezoneDB

Optional

Enhanced timezone lookups

Without any API keys, the following categories work fully: Night Lights, Military & Defense, Critical Infrastructure, Sanctions & Compliance, Terrain & Elevation, Cyber-Geo Intelligence, Population & Demographics, Agriculture & Food Security, Humanitarian & Refugee, Ocean Intelligence, Seismic & Disaster, OpenStreetMap, Geocoding & Coordinates, Spectral Analysis, Change Detection, Weather & Atmosphere. NASA tools fall back to DEMO_KEY with lower rate limits.


Architecture

src/
  index.ts                # CLI entrypoint (--help, --list, --tool, stdio server)
  protocol/
    mcp-server.ts         # MCP server setup (stdio transport)
    tools.ts              # Tool registry — all 171 tools assembled here
  types/
    index.ts              # Shared types (ToolDef, ToolContext, ToolResult)
  utils/
    rate-limiter.ts       # Per-provider rate limiter
    cache.ts              # TTL cache for API responses
    geo-math.ts           # Haversine distance, bounding box computation
    require-key.ts        # API key validation helper
  sentinel/               # Sentinel-2 (Copernicus) tools (8)
  landsat/                # Landsat (USGS) tools (7)
  firms/                  # NASA FIRMS active fire tools (6)
  nasa/                   # NASA Earth observation tools (7)
  nightlights/            # VIIRS night lights tools (5)
  planet/                 # Planet Labs tools (4)
  aircraft/               # Aircraft intelligence tools (10)
  maritime/               # Maritime intelligence tools (8)
  military/               # Military & defense tools (8)
  space/                  # Space & orbital tracking tools (6)
  conflict/               # Conflict & events tools (6)
  environment/            # Environmental intelligence tools (6)
  infrastructure/         # Critical infrastructure tools (6)
  sanctions/              # Sanctions & compliance tools (5)
  terrain/                # Terrain & elevation tools (6)
  cyber/                  # Cyber-geo intelligence tools (6)
  population/             # Population & demographics tools (5)
  agriculture/            # Agriculture & food security tools (5)
  humanitarian/           # Humanitarian & refugee tools (5)
  ocean/                  # Ocean intelligence tools (5)
  trade/                  # Trade intelligence tools (5)
  seismic/                # Seismic & disaster tools (5)
  osm/                    # OpenStreetMap / Overpass tools (8)
  geo/                    # Geocoding & coordinates tools (8)
  spectral/               # Spectral analysis tools (8)
  change/                 # Change detection tools (6)
  weather/                # Weather & atmosphere tools (6)
  meta/                   # Meta tools (1)

Design decisions:

  • 27 providers, 1 server — Every data source is an independent module under src/. The AI agent picks which tools to use based on the query.

  • Per-provider rate limiters — Each data source has its own RateLimiter instance calibrated to that API's limits. No shared bottleneck.

  • TTL caching — API responses are cached with source-appropriate TTLs: 2 minutes for live aircraft data, 5 minutes for fire data, 15 minutes for satellite catalogs, 30 minutes for NASA archives.

  • Graceful degradation — Missing API keys never crash the server. Tools return descriptive error messages with instructions: "Set PLANET_API_KEY to enable Planet Labs tools."

  • Pure computation — Spectral analysis and change detection tools are pure math functions with zero external API calls. NDVI, NDWI, NBR, EVI, and custom band expressions run instantly.

  • 2 dependencies — @modelcontextprotocol/sdk and zod. All HTTP via native fetch(). All geo math is hand-written.


Use Cases

  • Monitor deforestation and illegal logging — Combine Sentinel-2 imagery search, NDVI spectral analysis, and GLAD deforestation alerts to track forest loss over time

  • Track aircraft and vessel movements — Use aircraft and maritime tools for real-time ADS-B and AIS surveillance, detect military flights, dark vessel activity, and sanctions evasion

  • Detect conflict hotspots and humanitarian crises — Query ACLED for armed conflict events, correlate with GDELT news data, and check UNHCR displacement statistics

  • Analyze urban growth and infrastructure changes — Compare night light imagery across dates, compute NDBI for built-up area detection, and query OSM for new construction

  • Monitor sanctions compliance — Cross-reference vessel movements with OFAC SDN lists, detect AIS dark periods, and verify port visits against sanctioned countries

  • Assess natural disaster impact — Combine earthquake data with terrain elevation, fire detection with burn severity indices, and satellite imagery for before/after analysis

  • Agricultural drought and food security monitoring — Track vegetation health via NDVI, correlate with NASA POWER weather data, and check FEWS NET famine risk assessments

  • Cyber-geographic intelligence — Geolocate IP addresses, detect internet censorship and outages, map submarine cable infrastructure, and correlate with conflict data


Contributing

Contributions are welcome. Please open an issue first to discuss what you would like to change.

  1. Fork the repository

  2. Create your feature branch (git checkout -b feat/new-provider)

  3. Install dependencies: bun install

  4. Run in dev mode: bun run dev

  5. Add your provider under src/<provider>/index.ts

  6. Register tools in src/protocol/tools.ts

  7. Commit your changes (Conventional Commits format)

  8. Open a Pull Request


License

MIT

Available Tools

171 tools
agri_crop_healthA

Assess crop health at a location using NDVI time series reference — links to satellite vegetation indices.

Inputs: lat (required), lng (required).

agri_droughtB

Drought assessment at a location using weather indicators — temperature, precipitation, humidity analysis.

Inputs: lat (required), lng (required).

agri_famine_riskB

Famine risk assessment using FEWS NET IPC phase classification reference.

Inputs: country (required).

agri_food_priceB

FAO Food Price Index — global food commodity price trends.

Inputs: no named parameters.

agri_locustC

Desert locust swarm tracking and alerts from FAO Locust Watch.

Inputs: no named parameters.

aircraft_anomalyA

Detect anomalous aircraft behavior in a bounding box — low altitude flights, loitering, emergency squawks, no callsign.

Inputs: east (required), west (required), north (required), south (required).

aircraft_arrivalsA

Get recent arrivals at an airport by ICAO code.

Inputs: airport (required), end, begin.

aircraft_departuresA

Get recent departures from an airport by ICAO code.

Inputs: airport (required), end, begin.

aircraft_flightsB

Get flight history for an aircraft over a time period including departure and arrival airports.

Inputs: icao24 (required), end, begin.

aircraft_liveA

Get live aircraft positions within a bounding box including position, altitude, speed, heading, and origin country.

Inputs: east (required), west (required), north (required), south (required).

aircraft_militaryC

Filter military aircraft in a bounding box by checking ICAO24 hex ranges assigned to military operators.

Inputs: east (required), west (required), north (required), south (required).

aircraft_statsA

Traffic statistics for a bounding box — total aircraft, altitude distribution, speed distribution, top countries.

Inputs: east (required), west (required), north (required), south (required).

aircraft_trackB

Track a specific aircraft by ICAO24 hex address — returns flight path waypoints.

Inputs: icao24 (required).

aircraft_waypointsA

Get flight waypoints for an aircraft with cumulative distance calculation.

Inputs: icao24 (required).

atmosphere_air_qualityA

Get current air quality index and pollutant concentrations (PM2.5, PM10, NO2, SO2, CO, Ozone) at a coordinate.

Inputs: lat (required), lng (required).

atmosphere_uvA

Get current UV index at a coordinate with risk classification.

Inputs: lat (required), lng (required).

change_burnA

Fire scar / burn severity detection using dNBR (differenced Normalized Burn Ratio). Computes NBR for pre-fire and post-fire dates from NIR and SWIR bands, then classifies burn severity.

Inputs: nir_after (required), nir_before (required), swir_after (required), swir_before (required).

change_detectA

General-purpose change detection: computes the difference of any spectral index between two dates and classifies the magnitude of change.

Inputs: index_name (required), index_after (required), index_before (required).

change_summaryA

Multi-index change report: computes NDVI (vegetation), NDWI (water), NDBI (urban), NBR (burn), and BSI (soil) for two dates and produces an overall landscape change assessment.

Inputs: nir_after (required), red_after (required), blue_after (required), nir_before (required), +6 more.

change_urbanA

Urban expansion detection using NDBI (Normalized Difference Built-up Index). Computes NDBI for two dates from SWIR and NIR band reflectance values and interprets the difference.

Inputs: nir_after (required), nir_before (required), swir_after (required), swir_before (required).

change_vegetationB

Vegetation change detection using NDVI (Normalized Difference Vegetation Index). Computes NDVI for two dates from NIR and Red band reflectance values and interprets the difference.

Inputs: nir_after (required), red_after (required), nir_before (required), red_before (required).

change_waterA

Water body change detection using NDWI (Normalized Difference Water Index). Computes NDWI for two dates from Green and NIR band reflectance values and interprets the difference.

Inputs: nir_after (required), nir_before (required), green_after (required), green_before (required).

conflict_actorsB

List armed groups and actors active in a country with event counts.

Inputs: country (required), limit.

conflict_eventsB

Get armed conflict events from ACLED — battles, violence against civilians, explosions, riots, protests.

Inputs: limit, country, end_date, event_type, +1 more.

conflict_fatalitiesA

Conflict fatality statistics by country — total fatalities, breakdown by event type, deadliest events.

Inputs: country (required), year, limit.

conflict_hotspotsB

Conflict intensity grid map — divides bounding box into cells and counts events per cell.

Inputs: east (required), west (required), north (required), south (required), +1 more.

cyber_cable_landingB

Find submarine cable landing points near a coordinate using OpenStreetMap data.

Inputs: lat (required), lng (required), radius_km.

cyber_censorshipA

Detect internet censorship in a country using OONI measurements — lists blocked websites and censorship methods.

Inputs: country_code (required), limit.

cyber_connectivityB

Country internet connectivity overview — IXP count, cable landings, and assessment.

Inputs: country_code (required).

cyber_ip_locateA

Geolocate an IP address — country, city, ISP, coordinates, timezone.

Inputs: ip (required).

cyber_ix_pointsA

Find Internet Exchange Points (IXPs) in a country using PeeringDB.

Inputs: country (required).

cyber_outageB

Detect internet outages in a country using IODA (Internet Outage Detection and Analysis).

Inputs: country (required).

env_air_pollutionB

Get satellite-derived air pollution data — NO2, SO2, CO, PM2.5, ozone levels at a coordinate.

Inputs: lat (required), lng (required).

env_deforestationA

Get deforestation alerts (GLAD) near a coordinate — recent tree cover loss events.

Inputs: lat (required), lng (required), days.

env_fire_riskA

Assess fire risk at a location based on current weather conditions — temperature, humidity, wind, and drought index.

Inputs: lat (required), lng (required).

env_methaneB

Check for methane emission hotspots — uses Sentinel-5P TROPOMI data references.

Inputs: lat (required), lng (required).

env_ocean_tempA

Get sea surface temperature (SST) at a coordinate using Open-Meteo marine data.

Inputs: lat (required), lng (required).

env_water_qualityB

Water quality indicators — chlorophyll, turbidity reference data for a coordinate.

Inputs: lat (required), lng (required).

events_globalB

Global event monitoring via GDELT — search news articles about specific topics, locations, or events.

Inputs: query (required), mode, limit.

events_mediaB

Media intensity analysis via GDELT — track news volume over time for a topic or region.

Inputs: query (required), end_date, start_date.

firms_active_areaA

Query NASA FIRMS for active fire detections within a geographic bounding box. Returns fire hotspots with brightness, confidence, fire radiative power (FRP), and acquisition time. Supports VIIRS (375m) and MODIS (1km) sensors.

Inputs: east (required), west (required), north (required), south (required), +2 more.

firms_active_countryA

Query NASA FIRMS for active fire detections within a country. Uses ISO 3166-1 alpha-3 country codes (e.g. TUR for Turkey, USA for United States, BRA for Brazil). Returns fire hotspots with brightness, confidence, FRP, and timing.

Inputs: country (required), days, source.

firms_active_pointA

Find active fires near a specific geographic coordinate within a given radius. Computes a bounding box from the center point and radius, fetches FIRMS data, then filters results by actual haversine distance to ensure accuracy.

Inputs: lat (required), lng (required), days, radius_km.

firms_historyB

Retrieve historical fire detection data from NASA FIRMS for a specific date and bounding box. Limited to recent data availability (typically the last 60 days for NRT products). Uses VIIRS SNPP sensor.

Inputs: date (required), east (required), west (required), north (required), +1 more.

firms_latestA

Retrieve the latest global fire detections from NASA FIRMS. Returns the most recent fire hotspots worldwide, sorted by acquisition time (newest first). Useful for monitoring breaking wildfire events globally.

Inputs: limit, source.

firms_summaryA

Compute aggregate fire statistics for a geographic area over a time period. Returns total fire count, average brightness and fire radiative power (FRP), day vs. night distribution, and confidence level breakdown. Useful for wildfire risk assessment and trend analysis.

Inputs: east (required), west (required), north (required), south (required), +1 more.

geo_bboxA

Compute a bounding box (south, west, north, east) from a center point and radius in kilometers. Useful for spatial queries and map viewports.

Inputs: lat (required), lng (required), radius_km (required).

geo_distanceA

Calculate the great-circle distance between two geographic points using the Haversine formula. Returns distance in kilometers, miles, and nautical miles.

Inputs: lat1 (required), lat2 (required), lng1 (required), lng2 (required).

geo_elevationA

Get the elevation (altitude above sea level) at a geographic coordinate using the Open Elevation API. Returns elevation in both meters and feet.

Inputs: lat (required), lng (required).

geo_forwardA

Forward geocoding: convert an address or place name to geographic coordinates using Nominatim. Returns up to 5 matching results with coordinates, type, and importance score.

Inputs: query (required).

geo_mgrsA

Convert between MGRS (Military Grid Reference System) and latitude/longitude coordinates. Provide either an MGRS string to convert to lat/lng, or lat/lng to convert to MGRS.

Inputs: lat, lng, mgrs, precision.

geo_reverseA

Reverse geocoding: convert latitude/longitude coordinates to a human-readable address using Nominatim. Returns the full address with structured components.

Inputs: lat (required), lng (required).

geo_sunA

Calculate sun position data for a geographic coordinate on a given date: sunrise, sunset, solar noon, civil dawn/dusk, and day length in hours. All times are in UTC.

Inputs: lat (required), lng (required), date.

geo_timezoneA

Estimate the timezone at a geographic coordinate based on longitude. Uses a simple longitude-based calculation (offset = round(lng / 15)). Note: may be inaccurate near timezone borders.

Inputs: lat (required), lng (required).

humanitarian_campsB

Get refugee camp locations and population data from UNHCR.

Inputs: country (required).

humanitarian_crisesB

List active humanitarian crises worldwide from ReliefWeb.

Inputs: limit.

humanitarian_displacementB

Global displacement statistics — refugees, IDPs, asylum seekers from UNHCR.

Inputs: year.

humanitarian_fundingC

Humanitarian funding status — how much was requested vs received for crises.

Inputs: year.

humanitarian_reportsB

Get latest humanitarian situation reports and updates from ReliefWeb.

Inputs: limit, query, country.

infra_cablesA

Find submarine cable landing points in a bounding box.

Inputs: east (required), west (required), north (required), south (required).

infra_energyA

Find renewable energy installations — wind turbines and solar farms in a bounding box.

Inputs: east (required), west (required), north (required), south (required).

infra_pipelinesB

Find oil, gas, and water pipelines in a bounding box.

Inputs: east (required), west (required), north (required), south (required).

infra_powerA

Find power plants, substations, and transmission lines in a bounding box.

Inputs: east (required), west (required), north (required), south (required).

infra_telecomB

Find cell towers, communication masts, and data centers in a bounding box.

Inputs: east (required), west (required), north (required), south (required).

infra_transportA

Find bridges, tunnels, ferry terminals, and train stations in a bounding box.

Inputs: east (required), west (required), north (required), south (required).

landsat_bandsA

Reference table of Landsat 8/9 OLI/TIRS spectral bands with wavelengths and resolutions.

Inputs: no named parameters.

landsat_browseA

Get browse/thumbnail URL for a Landsat scene.

Inputs: entity_id (required).

landsat_download_urlB

Get download URL for a Landsat scene. Requires USGS authentication.

Inputs: entity_id (required).

landsat_latestB

Find the most recent Landsat scene for a location.

Inputs: lat (required), lng (required), max_cloud.

landsat_metadataB

Get detailed metadata for a Landsat scene by entity ID.

Inputs: entity_id (required).

landsat_timelineB

Get Landsat scene availability for a location — historical coverage since 1972.

Inputs: lat (required), lng (required), end_year, start_year.

mil_activityB

Composite military activity score for a bounding box — combines facility count, restricted airspace, and overall assessment.

Inputs: east (required), west (required), north (required), south (required).

mil_aircraftB

Track live military aircraft in a bounding box by filtering ICAO24 hex ranges assigned to military operators.

Inputs: east (required), west (required), north (required), south (required).

mil_airspaceA

Find restricted, danger, prohibited, and military airspace zones in a bounding box.

Inputs: east (required), west (required), north (required), south (required).

mil_basesA

Find military bases, barracks, airfields, ranges, and bunkers in a bounding box using OpenStreetMap data.

Inputs: east (required), west (required), north (required), south (required).

mil_missileB

Find known missile test sites, launch pads, and military testing ranges in a bounding box.

Inputs: east (required), west (required), north (required), south (required).

mil_navalC

Find naval bases and military ports in a bounding box.

Inputs: east (required), west (required), north (required), south (required).

mil_nuclearA

Find nuclear facilities — power plants, research reactors, enrichment sites in a bounding box.

Inputs: east (required), west (required), north (required), south (required).

mil_radarB

Find radar stations and air defense installations in a bounding box.

Inputs: east (required), west (required), north (required), south (required).

nasa_earth_assetsA

List available Landsat 8 imagery dates for a geographic coordinate. Returns a count and sorted list of dates when satellite imagery was captured at the given location. Useful for finding valid dates before requesting imagery.

Inputs: lat (required), lng (required).

nasa_earth_imageA

Get a Landsat 8 natural color satellite imagery URL for a specific geographic coordinate and date. Returns a direct URL to the image tile from the NASA Earth API. Useful for visual inspection of a location from space.

Inputs: lat (required), lng (required), dim, date.

nasa_epic_archiveA

List all available dates in the DSCOVR EPIC image archive. EPIC has been capturing full-disk Earth images since 2015. Returns a list of dates for which imagery is available.

Inputs: no named parameters.

nasa_epic_dateA

Get DSCOVR EPIC full-Earth photographs for a specific date. EPIC captures about 12-22 images per day as Earth rotates, showing different hemispheres. Returns image URLs, captions, and centroid coordinates for each frame.

Inputs: date (required).

nasa_epic_latestA

Get the latest full-disk Earth photograph from DSCOVR's EPIC (Earth Polychromatic Imaging Camera) instrument positioned at the L1 Lagrange point. Returns image URL, caption, centroid coordinates, and sun position data.

Inputs: no named parameters.

nasa_gibs_tileA

Construct a NASA GIBS (Global Imagery Browse Services) WMTS tile URL for a specific layer, date, and tile coordinate. GIBS provides near-real-time and archival satellite imagery as map tiles. Common layers: VIIRS_SNPP_CorrectedReflectance_TrueColor, MODIS_Terra_CorrectedReflectance_TrueColor, MODIS_Aqua_CorrectedReflectance_TrueColor, VIIRS_SNPP_Thermal_Anomalies_375m_Night, VIIRS_Black_Marble, MODIS_Terra_Snow_Cover, MODIS_Combined_MAIAC_L2G_AerosolOpticalDepth. Tiles can be viewed in map clients or downloaded directly.

Inputs: x (required), y (required), z (required), date (required), +1 more.

nasa_power_dataA

Retrieve daily solar and meteorological parameters from NASA POWER (Prediction of Worldwide Energy Resources) for a location and date range. Provides data such as downward solar radiation (ALLSKY_SFC_SW_DWN), temperature at 2m (T2M), and wind speed at 2m (WS2M). Useful for renewable energy assessment and agricultural planning.

Inputs: lat (required), lng (required), end_date (required), start_date (required), +1 more.

nightlights_anomalyB

Night light anomaly detection — sudden changes indicating power outages, conflict, or rapid development.

Inputs: lat (required), lng (required), radius_km.

nightlights_compareB

Compare night light levels between two dates — detect power outages, urban growth, or conflict damage.

Inputs: lat (required), lng (required), date1 (required), date2 (required).

nightlights_radianceC

Get night light radiance estimate for a location — light intensity indicator.

Inputs: lat (required), lng (required).

nightlights_tileB

Get night lights map tile URL from NASA GIBS — VIIRS Black Marble layer.

Inputs: lat (required), lng (required), date, zoom.

nightlights_timeseriesB

Night light time series analysis — monthly radiance trends for monitoring urbanization or conflict.

Inputs: lat (required), lng (required), end_year, start_year.

ocean_buoy_dataA

Get ocean buoy measurements — wave height, wind, temperature, pressure from NOAA NDBC.

Inputs: station (required).

ocean_chlorophyllC

Ocean chlorophyll concentration reference — fishing productivity and marine ecosystem indicator.

Inputs: lat (required), lng (required).

ocean_currentsB

Get ocean current information for a marine location using Open-Meteo marine data.

Inputs: lat (required), lng (required).

ocean_sea_iceC

Sea ice extent information — Arctic and Antarctic ice coverage reference.

Inputs: region.

ocean_sst_anomalyC

Sea surface temperature anomaly — El Nino/La Nina indicator and climate monitoring.

Inputs: lat (required), lng (required).

osm_airportsB

Find airports, airfields, and helipads in a bounding box.

Inputs: east (required), west (required), north (required), south (required).

osm_buildingsA

Count and classify buildings in a bounding box — residential, commercial, industrial, etc.

Inputs: east (required), west (required), north (required), south (required).

osm_identifyB

Identify what is at a given coordinate — search within a radius for named features.

Inputs: lat (required), lng (required), radius.

osm_industrialC

Find industrial sites, power plants, and refineries in a bounding box.

Inputs: east (required), west (required), north (required), south (required).

osm_infrastructureB

Find roads, bridges, and railways in a bounding box.

Inputs: east (required), west (required), north (required), south (required).

osm_militaryB

Find military facilities (bases, airfields, barracks, bunkers, checkpoints, ranges) in a bounding box.

Inputs: east (required), west (required), north (required), south (required).

osm_queryB

Run a custom Overpass QL query against OpenStreetMap data. Returns GeoJSON-like elements.

Inputs: query (required), timeout.

osm_waterB

Find water bodies, rivers, streams, and dams in a bounding box.

Inputs: east (required), west (required), north (required), south (required).

planet_metadataC

Get detailed metadata for a Planet Labs item. Requires PLANET_API_KEY.

Inputs: item_id (required), item_type.

planet_statsB

Get Planet imagery coverage statistics for an area. Requires PLANET_API_KEY.

Inputs: lat (required), lng (required), end_date (required), start_date (required), +1 more.

planet_thumbnailB

Get thumbnail preview URL for a Planet Labs item. Requires PLANET_API_KEY.

Inputs: item_id (required), item_type.

pop_age_structureB

Population age structure reference for a country — age groups relevant for demographic and intelligence analysis.

Inputs: country (required).

pop_densityB

Get population density estimate for a coordinate or country using WorldPop data.

Inputs: lat, lng, country.

pop_displacementC

Get displaced population data for a country from UNHCR.

Inputs: country (required).

pop_growthC

Population growth data for a country from UN World Population Prospects.

Inputs: country (required).

pop_urbanA

Get urbanization and city data for a coordinate — nearby urban areas and their characteristics.

Inputs: lat (required), lng (required), radius_km.

quake_areaB

Get earthquakes within a bounding box over a specified time period.

Inputs: east (required), west (required), north (required), south (required), +2 more.

quake_detailA

Get detailed information about a specific earthquake by USGS event ID.

Inputs: event_id (required).

quake_recentA

Get recent earthquakes worldwide, filtered by minimum magnitude. Returns location, magnitude, depth, tsunami warning, and alert level.

Inputs: limit, min_magnitude.

quake_statsA

Earthquake statistics for a time period and optional region — magnitude distribution, deepest, strongest, averages.

Inputs: days, east, west, north, +1 more.

sanctions_changesB

Check for recent changes to the OFAC sanctions list.

Inputs: no named parameters.

sanctions_countryA

Get sanctions program summary for a country — sanction level, programs, and restrictions.

Inputs: country (required).

sanctions_entityB

Check sanctions status for a specific entity or individual.

Inputs: name (required), type.

sanctions_vesselB

Check if a vessel is on sanctions lists by IMO number or vessel name.

Inputs: identifier (required).

satellite_list_sourcesA

List all satellite-mcp data sources, their API key configuration status, and tool counts. Returns a summary of all 27 categories and 161 tools.

Inputs: no named parameters.

sentinel_bandsA

Reference table of all 13 Sentinel-2 MSI spectral bands with wavelengths and resolutions.

Inputs: no named parameters.

sentinel_coverageC

Sentinel-2 coverage and revisit information for a location.

Inputs: lat (required), lng (required).

sentinel_download_urlA

Get download URL for a Sentinel-2 product. Requires Copernicus authentication.

Inputs: product_id (required).

sentinel_latestB

Find the most recent cloud-free Sentinel-2 image for a location.

Inputs: lat (required), lng (required), max_cloud.

sentinel_metadataB

Get detailed metadata for a Sentinel-2 product by ID.

Inputs: product_id (required).

sentinel_quicklookC

Get quicklook (thumbnail preview) URL for a Sentinel-2 product.

Inputs: product_id (required).

sentinel_timelineA

Get available Sentinel-2 image dates for a location over the past year.

Inputs: lat (required), lng (required), months.

ship_areaB

Get all vessels in a bounding box area using AIS data.

Inputs: east (required), west (required), north (required), south (required).

ship_darkB

Detect AIS gap events (dark periods) for a vessel — potential sanctions evasion or illegal activity.

Inputs: end_date (required), vessel_id (required), start_date (required), min_gap_hours.

ship_encountersB

Detect ship-to-ship encounters and transfers for a vessel — potential at-sea transshipment.

Inputs: vessel_id (required), end_date, start_date.

ship_fishingA

Analyze fishing activity in an area over a date range — fishing hours, vessel count, top flag states.

Inputs: east (required), west (required), north (required), south (required), +2 more.

ship_port_visitsB

Get port visit history for a vessel.

Inputs: vessel_id (required).

ship_positionB

Get last known position for a vessel by GFW vessel ID.

Inputs: vessel_id (required).

ship_trackA

Get vessel movement history (GPS track) over a date range.

Inputs: end_date (required), vessel_id (required), start_date (required).

space_debrisB

Track space debris objects from known fragmentation events.

Inputs: group.

space_overheadC

List satellites currently overhead at a location. Requires N2YO API key.

Inputs: lat (required), lng (required), radius, category.

space_passesB

Predict visible satellite passes over a location. Requires N2YO API key.

Inputs: lat (required), lng (required), norad_id (required), days, +1 more.

space_satellitesC

List active satellites by category — communications, weather, military, science, navigation, starlink, or stations.

Inputs: category (required).

space_tleB

Get TLE (Two-Line Element) orbital data for a satellite by NORAD catalog number.

Inputs: norad_id (required).

spectral_bsiA

Calculate Bare Soil Index (BSI) from SWIR, Red, NIR, and Blue band reflectance values. BSI = ((SWIR + Red) - (NIR + Blue)) / ((SWIR + Red) + (NIR + Blue)). Values range from -1 to 1. Used for mapping exposed soil, desertification monitoring, and distinguishing bare soil from vegetated and built-up areas.

Inputs: nir (required), red (required), blue (required), swir (required).

spectral_customA

Evaluate a custom band math expression using a safe expression parser. Supports basic arithmetic (+, -, *, /), parentheses, numeric literals, and band variable names. Example: expression "(b4 - b3) / (b4 + b3)" with bands {"b3": 0.2, "b4": 0.8} computes NDVI. No eval() is used — the expression is parsed with a secure recursive-descent parser that only permits numbers, named band variables, arithmetic operators, and parentheses.

Inputs: bands (required), expression (required).

spectral_eviA

Calculate Enhanced Vegetation Index (EVI) from NIR, Red, and Blue band reflectance values. EVI = 2.5 * (NIR - Red) / (NIR + 6Red - 7.5Blue + 1). EVI improves on NDVI by correcting for atmospheric and soil background influences. Particularly useful in high-biomass regions where NDVI saturates.

Inputs: nir (required), red (required), blue (required).

spectral_nbrA

Calculate Normalized Burn Ratio (NBR) from NIR and SWIR band reflectance values. NBR = (NIR - SWIR) / (NIR + SWIR). Values range from -1 to 1. Used for mapping wildfire burn severity and monitoring post-fire recovery. Can also be differenced between pre- and post-fire imagery (dNBR) for severity assessment.

Inputs: nir (required), swir (required).

spectral_ndbiA

Calculate Normalized Difference Built-up Index (NDBI) from SWIR and NIR band reflectance values. NDBI = (SWIR - NIR) / (SWIR + NIR). Values range from -1 to 1. Used for mapping urban areas and built-up land. Higher values indicate denser built-up areas.

Inputs: nir (required), swir (required).

spectral_ndviA

Calculate Normalized Difference Vegetation Index (NDVI) from NIR and Red band reflectance values. NDVI = (NIR - Red) / (NIR + Red). Values range from -1 to 1. Widely used for assessing vegetation health, density, and agricultural monitoring.

Inputs: nir (required), red (required).

spectral_ndwiA

Calculate Normalized Difference Water Index (NDWI) from Green and NIR band reflectance values. NDWI = (Green - NIR) / (Green + NIR). Values range from -1 to 1. Used for detecting water bodies, assessing flood extent, and monitoring drought conditions.

Inputs: nir (required), green (required).

spectral_saviA

Calculate Soil Adjusted Vegetation Index (SAVI) from NIR and Red band reflectance values. SAVI = ((NIR - Red) / (NIR + Red + L)) * (1 + L), where L is the soil brightness correction factor. Default L = 0.5 is suitable for intermediate vegetation cover. L = 0 reduces SAVI to NDVI; L = 1 is for very low vegetation cover. Used in arid/semi-arid regions where soil background significantly affects NDVI.

Inputs: nir (required), red (required), l.

terrain_elevationB

Get the elevation (altitude above sea level) at a given geographic coordinate using the Open Elevation API.

Inputs: lat (required), lng (required).

terrain_flood_riskA

Assess flood risk at a given location based on its elevation relative to a reference water level. Returns risk classification and descriptive assessment.

Inputs: lat (required), lng (required), water_level_m.

terrain_profileB

Generate an elevation profile between two geographic points. Returns sampled elevations along the path with distance and elevation statistics.

Inputs: lat1 (required), lat2 (required), lng1 (required), lng2 (required), +1 more.

terrain_prominenceA

Find the highest and lowest points in a bounding box area by querying a grid of elevation points. Useful for terrain prominence and relief analysis.

Inputs: east (required), west (required), north (required), south (required), +1 more.

terrain_slopeB

Calculate the slope (gradient) between two geographic points, including angle in degrees, percentage, and terrain classification.

Inputs: lat1 (required), lat2 (required), lng1 (required), lng2 (required).

terrain_viewshedB

Line of sight analysis between two points. Determines if an observer at point A can see a target at point B, considering terrain elevation along the path.

Inputs: lat1 (required), lat2 (required), lng1 (required), lng2 (required), +2 more.

trade_balanceB

Calculate trade balance between two countries — exports minus imports.

Inputs: year (required), country (required), partner (required).

trade_commodityA

Get global trade data for a specific commodity (HS code).

Inputs: year (required), commodity (required), reporter.

trade_flowA

Get bilateral trade data between two countries — import/export values by commodity.

Inputs: year (required), partner (required), reporter (required), flow.

trade_partnersC

Get top trade partners for a country.

Inputs: year (required), country (required), flow.

trade_timeseriesB

Get trade volume time series for a country pair over multiple years.

Inputs: partner (required), end_year (required), reporter (required), start_year (required).

weather_currentA

Get current weather conditions at a coordinate including temperature, humidity, wind, pressure, cloud cover, and precipitation.

Inputs: lat (required), lng (required).

weather_forecastA

Get 7-day weather forecast for a coordinate with daily temperature, precipitation, wind, sunrise, and sunset.

Inputs: lat (required), lng (required).

weather_historicalA

Get historical weather data for a specific date and location.

Inputs: lat (required), lng (required), date (required).

weather_satellite_windowA

Find optimal satellite imaging windows (low cloud cover periods) for a location over the next N days.

Inputs: lat (required), lng (required), days.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.4/5.0

    Scored across 171 tools

    Disambiguation4/5

    Tools are organized by clear category prefixes (e.g., agri_, aircraft_, conflict_) with distinct operations. A few clusters like firms_active_area/country/point and aircraft_live/search have overlapping purposes but descriptions differentiate by query method. Overall, most tools are easily distinguishable.

    Naming Consistency5/5

    All tool names follow a consistent category_verb_noun pattern in snake_case (e.g., geo_distance, change_burn). No mixing of camelCase or other conventions. Even special tools like satellite_list_sources fit the pattern. Exceptional consistency across 171 tools.

    Tool Count2/5

    171 tools is excessive for a single MCP server. Many tools could be merged with parameters (e.g., spectral indices, change detection indexes, FIRMS queries). This volume overwhelms agent tool selection and increases cognitive load, reducing practical coherence.

    Completeness4/5

    The server covers an extremely broad range of domains (agriculture, conflict, cyber, environment, trade, weather, etc.) with thorough sub-tool sets. Missing a few niche capabilities (e.g., flood mapping from satellite imagery, refined demographic data) but overall feels complete for its intended scope.

    Maintenance

    ActivityNo data
    ResponsivenessSyncing

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      Production-ready satellite imagery analysis server that enables natural language queries for Earth observation data, including land cover classification, vegetation monitoring, water detection, change detection, and automated environmental reporting.
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      MCP server wrapping worldmonitor global intelligence dashboard, exposing 140 tools across 32 services for live market, geopolitical, military, cyber, climate, and supply chain data.
      MIT
    • A
      license
      C
      quality
      D
      maintenance
      MCP server for the OSINT Intelligence Platform, enabling AI assistants to interact with Telegram intelligence archives via 65 tools for search, entity analysis, event tracking, social graph, and platform monitoring.
      71
      2
      MIT
    • F
      license
      Not graded
      quality
      B
      maintenance
      MCP server exposing 16 programmatic tools for AI systems to query verified Coordination Intelligence on AI infrastructure events, connections, and actors across geopolitical blocs.
      1
      -