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.
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.
- 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
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.
One command — npm install -g enc-charts-mcp
