Skip to main content
Glama
wdpa-mcp
by thesven

wdpa-mcp

CI Python 3.11+ License: MIT

A dedicated conservation zoning and protected areas Model Context Protocol (MCP) server for the World Database on Protected Areas (WDPA) and Protected Planet API v3.

Provides critical spatial conservation context to biodiversity observations (iNaturalist, eBird, GBIF), checking if wildlife sightings fall inside or adjacent to national parks, wilderness reserves, UNESCO biosphere reserves, or marine protected areas.


Key Features

  • International Designation Filtering: Query reserves classified under global conventions, including Ramsar Wetlands of International Importance, UNESCO World Heritage Sites, and Biosphere Reserves.

  • Reserve Proximity Evaluation: Query coordinates (lat, lon, radius_km) to determine if a species observation is inside or near a protected conservation reserve.

  • IUCN Management Categories: Identify strict nature reserves (Ia), wilderness areas (Ib), national parks (II), natural monuments (III), habitat management areas (IV), protected landscapes (V), and sustainable resource management reserves (VI).

  • National Coverage & 30x30 Metrics: Retrieve terrestrial and marine protected surface area percentages by ISO-3 country to track progress toward Kunming-Montreal Global Biodiversity Framework targets.

  • Resilient Fallback Engine: Built-in curated conservation registry ensures proximity queries and searches work reliably even without an external API token or during upstream downtime.


Related MCP server: earth-search

Available Tools

Tool

Description

check_protected_area_nearby

Assess whether GPS coordinates fall within or near a protected conservation area.

search_protected_areas

Search protected conservation areas by name, designation, or ISO country.

filter_protected_areas_by_designation

Filter protected zones by Ramsar, World Heritage, IUCN category, or marine status.

get_protected_area_details

Retrieve complete governance, IUCN management category, and area for a WDPA site.

get_country_protection_coverage

Retrieve national protected area coverage percentages and 30x30 statistics.

list_country_protected_areas

List and paginate designated national parks and reserves in a country by ISO-3 code.

get_protected_area_boundary_envelope

Retrieve bounding coordinates, centroid, and area envelope for GIS mapping.


Installation & Usage

Running with uvx (Recommended)

uvx --from git+https://github.com/thesven/wdpa-mcp.git wdpa-mcp

Configuration (Optional)

If you have a Protected Planet API v3 token, you can provide it via environment variable:

PROTECTED_PLANET_API_KEY=your_token_here
# or
WDPA_API_KEY=your_token_here

Claude Desktop Configuration

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "wdpa": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/thesven/wdpa-mcp.git", "wdpa-mcp"],
      "env": {
        "PROTECTED_PLANET_API_KEY": "optional_token_here"
      }
    }
  }
}

Development & Quality Gate

# Run code formatting check
uv run ruff format --check src tests scripts

# Run linting
uv run ruff check src tests scripts

# Run test suite with strict coverage floor (>90%)
uv run pytest --cov=wdpa_mcp --cov-branch --cov-report=term-missing

# Build wheel and sdist
uv build

# Run package distribution check & smoke test
uv run python scripts/check_dist.py
uv run python scripts/smoke.py

License

MIT License. See LICENSE for details.

Tool Schema Changelog

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

Loading tool schema changelog…

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      C
      maintenance
      Enables querying Belgian biodiversity data, including species observations, protected species lists, and protected areas, for environmental assessments and permits.
      13
      European Union Public 1.2
    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables querying Sentinel-1/2, Landsat Collection 2, NAIP, and Copernicus DEM imagery by area and date, returning item IDs, footprints, cloud cover, and cloud-optimized GeoTIFF URLs.
      122 npm
      MIT
    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables querying Global Fishing Watch AIS data to search vessels by identity, retrieve at-sea events such as apparent fishing, encounters, loitering, port visits and AIS gaps, and generate aggregated apparent fishing effort reports by area, flag and gear type.
      127 npm
      MIT
    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables browsing Global Forest Watch's catalogue and running read-only SQL queries against dataset versions, covering tree cover loss, deforestation alerts, fire alerts, carbon flux, and more.
      121 npm
      MIT