Enc Charts MCP Server

MCP server for Electronic Navigational Charts (ENC) data

Local serverstdioPython

What is the Enc Charts MCP MCP server?

Enc Charts MCP becomes available to MCP clients through the enc charts mcp mcp server. MCP server for Electronic Navigational Charts (ENC) data.

What Enc Charts MCP does

An MCP (Model Context Protocol) server for Electronic Navigational Charts (ENC) data, providing programmatic access to NOAA electronic navigational charts with S-57 format parsing capabilities.

This MCP server enables AI assistants to access and analyze electronic navigational charts from NOAA. It automatically downloads, caches, and parses S-57 format chart data, making it available through a standardized API. The server supports coordinate-based chart discovery, feature extraction, and navigation-focused queries.

Key capabilities

  • S-57 Chart Parsing — Full support for IHO S-57 format electronic navigational charts
  • NOAA Integration — Automatic chart discovery and downloading from NOAA REST APIs
  • Coordinate-Based Queries — Find and retrieve charts based on GPS coordinates
  • Smart Caching — Efficient local caching with configurable size and age limits
  • Feature Filtering — Extract specific navigation features (lights, buoys, depths, etc.)
  • 172 Object Classes — Complete support for S-57 object catalog
  • Depth Analysis — Filter features by depth ranges for navigation safety
  • Spatial Queries — Bounding box filtering for area-specific data

Tools it exposes

Once connected, the assistant can call these 6 tools directly:

  • get_chart — Retrieve chart features for a specific area by chart ID or coordinates
  • search_charts — The search_charts tool exposed by this server
  • get_chart_metadata — The get_chart_metadata tool exposed by this server
  • get_object_classes — Get information about S-57 object classes and their representations
  • Hazards — The Hazards tool exposed by this server
  • Pagination — To prevent response size issues, the get_chart and search_charts tools implement pagination:

Installing the enc charts mcp mcp server

The server is distributed via npm as command, so most clients can run it without a manual build step. Add it to your MCP client's configuration and restart the client to pick it up — the copy-paste configs for Claude Desktop, Claude Code and Cursor are on this page.

Configuration

The server reads 3 environment variables: ENC_CACHE_DIR, ENC_CACHE_MAX_SIZE_GB, ENC_CACHE_MAX_AGE_DAYS. Keep credentials in your client's env block or a secrets manager rather than committing them.

Requirements

  • Node.js: Version 18 or higher - Python: Version 3.7 or higher (for S-57 parsing) - GDAL Python Bindings: Required for chart data parsing

Where it fits

Developer-tool servers are usually the first ones people connect, because they turn "help me with this code" into an assistant that can actually read the repo and act on it. Enc Charts MCP sits in that group, and the shape of its toolset — get_chart, search_charts, get_chart_metadata among others — tells you what it is really for. Worth comparing against the other developer tools servers in this directory before you commit to one, since several overlap in scope but differ sharply in setup cost and permissions.

Practical notes

  • This server runs locally, so it operates with whatever access your machine and its credentials already have. Scope that deliberately rather than by default.
  • Maintained by tonybentley, written in Python.
  • MCP clients ask for confirmation before each tool call by default. Keep that on while you learn what the enc charts mcp mcp server actually does with your data.
  • Every entry in this directory is reviewed by hand before it goes live, and details are checked against the project's own documentation.

Available tools

ToolWhat it does
get_chartRetrieve chart features for a specific area by chart ID or coordinates.
search_chartsThe search_charts tool exposed by this server.
get_chart_metadataThe get_chart_metadata tool exposed by this server.
get_object_classesGet information about S-57 object classes and their representations.
HazardsThe Hazards tool exposed by this server.
PaginationTo prevent response size issues, the get_chart and search_charts tools implement pagination:

How to install the Enc Charts MCP MCP server

{
  "mcpServers": {
    "enc-charts": {
      "command": "npx",
      "args": ["enc-charts-mcp"],
      "transport": {
        "type": "stdio"
      },
      "env": {
        "ENC_CACHE_DIR": "~/.enc-charts/cache",
        "ENC_CACHE_MAX_SIZE_GB": "20",
        "ENC_CACHE_MAX_AGE_DAYS": "14"
      }
    }
  }
}

Configuration as documented by the project. Restart the client after saving.

Configuration

  • Node.js: Version 18 or higher - Python: Version 3.7 or higher (for S-57 parsing) - GDAL Python Bindings: Required for chart data parsing
VariableDescriptionRequired
ENC_CACHE_DIRFilesystem location the server is allowed to use.Optional
ENC_CACHE_MAX_SIZE_GBConfiguration value read at startup.Optional
ENC_CACHE_MAX_AGE_DAYSConfiguration value read at startup.Optional

Example prompts to try

  • Use Enc Charts MCP to get chart.
  • Use Enc Charts MCP to search charts.
  • Use Enc Charts MCP to get chart metadata.

Frequently asked questions

It connects Enc Charts MCP to MCP-compatible AI assistants such as Claude and Cursor, exposing 6 tools (get_chart, search_charts, get_chart_metadata, and more) that the assistant can call on your behalf. Instead of copying data back and forth by hand, the assistant works with Enc Charts MCP directly.