Labsco
MCP SERVER

ENC Charts MCP Server

by tonybentley

NOAA electronic navigational charts downloaded, cached and parsed from S-57 into features you can filter by depth or bounding box.

Geospatial & Mapping Data
Summary
Official charts, read as data.

The GDAL dependency is what buys the real S-57 catalogue rather than a picture of a chart: depths, lights and buoys come back as features you can filter and reason about.

What it is

An MCP server for Electronic Navigational Charts. It discovers charts by GPS coordinate or chart ID from NOAA's REST APIs, downloads and caches them, and parses the S-57 format so navigation features can be queried directly.

What you get
  • Charts found by coordinate, or retrieved by chart ID
  • S-57 parsing against the full object catalogue
  • Navigation features extracted — lights, buoys, depths and the rest
  • Features filtered by depth range for navigation safety
  • Bounding-box queries for one area of a chart
  • Local caching with configurable size and age limits
Requirements

Node.js 18 or higher, Python 3.7 or higher, and GDAL Python bindings, which do the S-57 parsing. Cache location, size and expiry are set with ENC_CACHE_DIR, ENC_CACHE_MAX_SIZE_GB and ENC_CACHE_MAX_AGE_DAYS.

Setup effort

One command — npm install -g enc-charts-mcp