searoute_mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@searoute_mcpCalculate sea route distance from Cape Town to Buenos Aires."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
searoute_mcp
Maritime Routing MCP Server (Python)
Table of Contents

Related MCP server: vessel-traffic-mcp
Overview
searoute_mcp is a Model Context Protocol (MCP) server for maritime routing.
It integrates searoute-py with MCP, exposing tools that allow LLM clients (e.g. Claude Desktop) to:
Compute oceangoing route distances (in nautical miles)
Retrieve full oceangoing routes with waypoints (GeoJSON format)
Compare against geodesic great-circle distances
All tools accept latitude, longitude as inputs for user friendliness, while internally converting to the required searoute format.
Installation
Clone the repository and install dependencies:
git clone https://github.com/ShippingIntel/searoute_mcp.git
cd searoute_mcp
python3 -m venv .venv
source .venv/bin/activate # Linux/macOS
.venv\Scripts\activate # Windows
pip install -r requirements.txtDependencies:
mcp[python]>=0.1.0searoute>=1.4.3geopy>=2.4.1
Quickstart
Run the server locally:
python -m mcp_server.mainInstall into Claude Desktop:
mcp install mcp_server/main.pyTest with the MCP Inspector:
mcp dev mcp_server/main.pyCore Tools
compute_distanceShortest oceangoing route distance (nm) between two coordinates.compute_routeFull oceangoing route (GeoJSON geometry + distance).compute_geodesicGreat-circle (sphere) distance in nautical miles, ignoring land/sea constraints.
Example Prompts
All prompts use latitude, longitude ordering.
{
"tool": "compute_distance",
"arguments": {
"start_lat": 47.6062,
"start_lon": -122.3321,
"end_lat": 35.6895,
"end_lon": 139.6917
}
}{
"tool": "compute_route",
"arguments": {
"start_lat": 40.7128,
"start_lon": -74.0060,
"end_lat": 48.8566,
"end_lon": 2.3522
}
}{
"tool": "compute_geodesic",
"arguments": {
"start_lat": 51.5072,
"start_lon": -0.1276,
"end_lat": -33.8688,
"end_lon": 151.2093
}
}Examples:
Seattle → Tokyo (oceangoing distance)
New York → Paris (full route with waypoints)
London → Sydney (geodesic great-circle)
Running Your Server
Choose a transport:
# stdio (local dev)
python -m mcp_server.main stdio
# Streamable HTTP (for deployment)
python -m mcp_server.main streamable-httpContributing
Contributions are welcome! See CONTRIBUTING.md for setup and workflow guidelines.
License
This project is licensed under the MIT License — see the LICENSE file for details.
References
searoute_mcp builds upon prior open-source and research projects in maritime routing and network analysis:
Marnet Project — Atlas of Marine Socio-economic Indicators for the Atlantic Area EU transnational project led by the Northern & Western Regional Assembly, developing a socio-economic data network for the Atlantic regions.
searoute-py Python package for generating shortest sea routes between two points, designed for visualizing realistic maritime routes and customizable with ports and networks.
NetworkX Python package for the creation, manipulation, and study of complex networks. Provides the graph algorithms underpinning routing logic.
Eurostat SeaRoute Java-based library and webservice by Eurostat computing shortest maritime routes from global shipping networks enriched with AIS data, using Dijkstra’s algorithm via GeoTools.
Available Tools
3 toolscompute_distanceC
Compute shortest oceangoing route distance in nautical miles.
| Name | Required | Description | Default |
|---|---|---|---|
| end_lat | Yes | ||
| end_lon | Yes | ||
| start_lat | Yes | ||
| start_lon | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only reveals that it computes oceangoing distances. It does not disclose how routes are determined (e.g., waypoints, land avoidance), processing details, or any limitations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, concise and direct. However, its brevity sacrifices important details, making it minimally acceptable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given four required parameters with no schema descriptions, no annotations, and an output schema that is not described, the description is incomplete. It does not explain the return format or any additional context needed for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All four parameters (start_lat, start_lon, end_lat, end_lon) have no descriptions in the schema (0% coverage). The description adds no additional meaning or constraints, leaving the agent to infer their purpose from the tool name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (compute), the resource (shortest oceangoing route distance), and the unit (nautical miles). It effectively distinguishes from sibling tools like compute_geodesic by specifying 'oceangoing'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus siblings. It does not mention that this is for ocean routes and should be used instead of compute_geodesic for maritime distances.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compute_geodesicA
Compute geodesic great-circle distance in nautical miles (ignores route, this is shortest distance on a sphere).
| Name | Required | Description | Default |
|---|---|---|---|
| end_lat | Yes | ||
| end_lon | Yes | ||
| start_lat | Yes | ||
| start_lon | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses key behavior: computes great-circle distance, ignores route, uses sphere model, output in nautical miles. No annotations exist, so description carries full burden; it provides the essential behavioral context. Does not mention coordinate validity or precision, but output schema likely covers return format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence that is tightly written with no redundant words. It efficiently conveys purpose, unit, and a key differentiator.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and the presence of an output schema, the description is largely complete. It covers the core functionality and distinguishes from siblings. Minor omission: no mention of coordinate system or valid ranges, but these are common defaults.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description adds minimal meaning beyond parameter names. It implies start and end points but does not specify coordinate format (e.g., decimal degrees) or units. The parameter names are self-explanatory, but additional detail would improve semantic clarity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it computes geodesic great-circle distance in nautical miles, and explicitly distinguishes from route-based calculations. The verb 'compute' and resource 'geodesic' are specific, and the note 'ignores route' differentiates it from sibling compute_route.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implicitly guides usage by stating 'ignores route', indicating it is for shortest distance on a sphere, not for route planning. However, it could explicitly contrast with compute_distance or compute_route; the current description is clear enough for an informed agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compute_routeB
Compute shortest oceangoing route with distance and waypoints between two coordinates.
| Name | Required | Description | Default |
|---|---|---|---|
| end_lat | Yes | ||
| end_lon | Yes | ||
| start_lat | Yes | ||
| start_lon | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the full burden. It reveals the route is 'oceangoing' and outputs distance and waypoints, but lacks details about algorithm, units, constraints, or side effects. Minimal but not misleading.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with no wasted words. Front-loads the key action and outputs. Efficient for the information provided.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 4 required params, no output schema, and no annotations, the description is too brief. It omits critical details like units, coordinate system, return structure, and algorithm specifics, leaving the agent underinformed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, meaning parameter descriptions are absent. The description does not explain coordinate system, format, or range. The parameter names are self-explanatory, but the description adds no value beyond the schema's titles.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Compute' and the resource 'shortest oceangoing route', with qualifiers 'with distance and waypoints'. It distinguishes from sibling tools like compute_distance (likely distance-only) and compute_geodesic (likely geodesic line).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. The description does not mention use cases, prerequisites, or exclusions, leaving the agent without context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
3 tool updates
v0.1.0- First observed
compute_distance - First observed
compute_geodesic - First observed
compute_route
TDQS
Each tool serves a distinct purpose: computing oceangoing route distance, geodesic great-circle distance, and full route with waypoints. No overlap or ambiguity.
All tool names follow a consistent verb_noun pattern (compute_distance, compute_geodesic, compute_route), making them predictable.
Three tools is an appropriate size for a focused maritime routing server, covering core functionality without bloat.
The set covers distance (route and geodesic) and route waypoints, but might lack options for routing preferences or alternative paths.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
- geoOAuthco.thinair
Geocoding, truck routing, traffic, weather, and place search via MCP — 11 hosted tools.
Marine MCP — wraps marine-api.open-meteo.com (free, no auth)
TomTom MCP — wraps the TomTom Search & Routing APIs (api.tomtom.com)
HERE MCP — premium geocoding, places, and TRAFFIC-AWARE routing from HERE
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA fully MCP-compliant, open-source maritime data service that provides real-time vessel tracking, port information, route planning, and weather/tide data for maritime applications.13MIT
- AlicenseAqualityBmaintenanceRead-only MCP server for vessel identity lookup, AIS-style positions, tracks, port calls, carrier schedules, vessel schedules, and delay heuristics with source attribution and BYOK provider support.14584MIT
- AlicenseAqualityDmaintenanceMCP server for planning routes (hiking, biking, driving, etc.) using the OpenRouteService API. Provides tools to find coordinates, create routes with GPX/PNG/HTML output, search POIs, and compute reachable areas.62MIT
- AlicenseNot gradedqualityAmaintenanceProvides Waze routing and travel-time tools to MCP clients, enabling travel time queries, route alternatives, and address geocoding without an API key.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Project-Harrison/searoute-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server