Chuk MCP Maritime Archives MCP Server

Local setup required. This server has to be cloned and prepared on your machine before you register it in Claude Code.
1

Set the server up locally

Run this once to clone and prepare the server before adding it to Claude Code.

Run in terminal
git clone https://github.com/IBM/chuk-mcp-maritime-archives
cd chuk-mcp-maritime-archives
pip install -r requirements.txt
2

Register it in Claude Code

After the local setup is done, run this command to point Claude Code at the built server.

Run in terminal
claude mcp add chuk-maritime-archives -- python "<FULL_PATH_TO_CHUK_MCP_MARITIME_ARCHIVES>/dist/index.js"

Replace <FULL_PATH_TO_CHUK_MCP_MARITIME_ARCHIVES>/dist/index.js with the actual folder you prepared in step 1.

README.md

Historical Maritime Archives MCP Server

Chuk MCP Maritime Archives

Historical Maritime Archives MCP Server -- A comprehensive Model Context Protocol (MCP) server for querying historical maritime shipping records, vessel specifications, crew muster rolls, cargo manifests, shipwreck databases, historical place names, and sailing routes spanning 1497-1874. Covers Dutch (VOC), English (EIC), Portuguese (Carreira da India), Spanish (Manila Galleon), and Swedish (SOIC) maritime archives.

This is a demonstration project provided as-is for learning and testing purposes.

Features

This MCP server provides structured access to historical maritime archives and reference data through 47 tools across 11 archives and 6 nations.

All tools return fully-typed Pydantic v2 models for type safety, validation, and excellent IDE support. All tools support output_mode="text" for human-readable output alongside the default JSON.

1. Archive Discovery (`maritime_list_archives`, `maritime_get_archive`)

Browse 11 maritime archives across 6 nations:

  • Dutch Asiatic Shipping (DAS) -- 8,194 voyages (1595-1795)
  • VOC Opvarenden -- up to 774,200 crew records (1633-1794)
  • Boekhouder-Generaal Batavia -- 200 curated cargo records (1700-1795)
  • MAARER Wreck Database -- 734 wreck positions (1595-1795)
  • English East India Company (EIC) -- ~150 curated voyages, ~35 wrecks (1600-1874)
  • Portuguese Carreira da India -- ~500 voyages, ~100 wrecks (1497-1835)
  • Spanish Manila Galleon -- ~250 voyages, ~42 wrecks (1565-1815)
  • Swedish East India Company (SOIC) -- ~132 voyages, ~20 wrecks (1731-1813)
  • UK Hydrographic Office (UKHO) -- 94,000+ wrecks worldwide (1500-2024)
  • NOAA Wrecks & Obstructions (AWOIS) -- ~13,000 wrecks in US waters (1600-2024)
  • Dutch Ships and Sailors (DSS) -- GZMVOC musters + MDB crew (1691-1837)

Note: The EIC, Carreira, Galleon, and SOIC archives are curated datasets compiled from published academic sources. Carreira, Galleon, and SOIC include programmatically expanded records covering the full historical period. VOC Crew data requires running scripts/download_crew.py to download from the Nationaal Archief (774K records, ~80 MB). UKHO data requires running scripts/download_ukho.py to download from EMODnet (94K records). NOAA data requires running scripts/download_noaa.py to download from NOAA ArcGIS (13K records). Curated fallbacks of 50 representative wrecks ship with the repo via scripts/generate_ukho.py and scripts/generate_noaa.py. Cargo and EIC have download scripts (download_cargo.py, download_eic.py) for future expansion from external sources.

2. Voyage Search (`maritime_search_voyages`, `maritime_get_voyage`)

Search voyage records across all 5 voyage archives (DAS, EIC, Carreira, Galleon, SOIC):

  • Filter by ship name, captain, ports, date range, fate, archive
  • Multi-archive search: query all archives at once or filter by specific archive
  • Full voyage detail including incident narratives and vessel data

3. Wreck Search (`maritime_search_wrecks`, `maritime_get_wreck`)

Search shipwreck and loss records across all 7 wreck archives (MAARER, EIC, Carreira, Galleon, SOIC, UKHO, NOAA):

  • Filter by region, cause, depth, cargo value, status, archive, flag, vessel type, GP quality
  • Multi-archive wreck search or single-archive filtering
  • UKHO adds 94,000+ global wrecks; NOAA adds ~13,000 US coastal wrecks with position quality codes
  • Position data with uncertainty estimates
  • Archaeological status and notes

4. Vessel Search (`maritime_search_vessels`, `maritime_get_vessel`)

Search VOC vessel records:

  • Filter by ship type, tonnage, chamber, shipyard
  • 6 ship types: retourschip, fluit, jacht, hooker, pinas, fregat
  • Construction and service history

5. Hull Profiles (`maritime_get_hull_profile`, `maritime_list_hull_profiles`)

Hydrodynamic hull data for drift modelling:

  • Dimensions, displacement, drag coefficients
  • Windage area and coefficients
  • Sinking characteristics and orientation weights
  • Reference wrecks and LLM guidance notes

6. Crew Search (`maritime_search_crew`, `maritime_get_crew_member`)

Search crew records across multiple archives:

  • VOC Opvarenden (default): up to 774,200 records from Nationaal Archief (1633-1794)
  • DSS (MDB): 77,043 individual crew records from northern Dutch provinces (1803-1837)
  • Filter by name, rank, ship, origin, fate, archive
  • Personnel records: rank, pay, embarkation/service dates
  • Multi-archive dispatch: archive="voc_crew" or archive="dss"
  • Indexed lookups for fast search across large datasets

7. Cargo Search (`maritime_search_cargo`, `maritime_get_cargo_manifest`)

Search VOC cargo manifests (200 curated records, expandable via download scripts):

  • Filter by commodity, origin, destination, value
  • Full voyage manifests with quantities and values
  • Dutch and English commodity names

8. Position Assessment (`maritime_assess_posi

Tools (5)

maritime_list_archivesBrowse available maritime archives.
maritime_search_voyagesSearch voyage records across multiple archives.
maritime_search_wrecksSearch shipwreck and loss records.
maritime_search_vesselsSearch VOC vessel records.
maritime_search_crewSearch crew records across multiple archives.

Configuration

claude_desktop_config.json
{"mcpServers": {"chuk-maritime-archives": {"command": "python", "args": ["/path/to/chuk-mcp-maritime-archives/main.py"]}}}

Try it

Search for all Dutch East India Company voyages between 1700 and 1750.
Find shipwreck records in the UK Hydrographic Office database near the coast of Portugal.
List all crew members recorded in the VOC Opvarenden archive for the ship 'Amsterdam'.
Get the hull profile and hydrodynamic data for a standard 18th-century retourschip.

Frequently Asked Questions

What are the key features of Chuk MCP Maritime Archives?

Structured access to 11 maritime archives across 6 nations.. Supports searching voyages, wrecks, vessels, crew, and cargo manifests.. Provides hydrodynamic hull data for drift modelling.. Returns fully-typed Pydantic v2 models for all tool outputs.. Supports both JSON and human-readable text output modes..

What can I use Chuk MCP Maritime Archives for?

Historical research into 17th and 18th-century maritime trade routes.. Archaeological analysis of shipwreck locations and causes.. Genealogical research using crew muster rolls from the VOC and DSS archives.. Drift modelling and maritime incident reconstruction..

How do I install Chuk MCP Maritime Archives?

Install Chuk MCP Maritime Archives by running: git clone https://github.com/IBM/chuk-mcp-maritime-archives && cd chuk-mcp-maritime-archives && pip install -r requirements.txt

What MCP clients work with Chuk MCP Maritime Archives?

Chuk MCP Maritime Archives works with any MCP-compatible client including Claude Desktop, Claude Code, Cursor, and other editors with MCP support.

Turn this server into reusable context

Keep Chuk MCP Maritime Archives docs, env vars, and workflow notes in Conare so your agent carries them across sessions.

Need the old visual installer? Open Conare IDE.
Open Conare