A Model Context Protocol (MCP) server that provides access to MarineTraffic vessel tracking data.
This MCP server provides the following capabilities:
- get_vessel_position: Get real-time position of a vessel by MMSI or IMO number
- get_vessel_details: Get detailed information about a vessel by MMSI or IMO number
- search_vessels: Search for vessels by name, MMSI, IMO, or vessel type
- get_vessels_in_area: Get vessels in a specified geographic area
- vessel://{identifier}: Information about a vessel by MMSI or IMO number
- vessels://area/{lat}/{lon}/{radius}: List of vessels in a specified geographic area
To install MarineTraffic Vessel Tracking Server for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @Cyreslab-AI/marinetraffic-mcp-server --client claude
- Node.js 18 or higher
- A MarineTraffic API key (available from MarineTraffic API Services)
- Clone this repository or download the source code
- Install dependencies:
cd marinetraffic-server
npm install
- Build the server:
npm run build
The server requires a MarineTraffic API key to function. You can provide this through the environment variable MARINETRAFFIC_API_KEY
.
To use this server with Claude, add it to your MCP settings configuration file:
Edit ~/Library/Application Support/Claude/claude_desktop_config.json
:
{
"mcpServers": {
"marinetraffic": {
"command": "node",
"args": ["/path/to/marinetraffic-server/build/index.js"],
"env": {
"MARINETRAFFIC_API_KEY": "your-api-key-here"
},
"disabled": false,
"autoApprove": []
}
}
}
Edit ~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
:
{
"mcpServers": {
"marinetraffic": {
"command": "node",
"args": ["/path/to/marinetraffic-server/build/index.js"],
"env": {
"MARINETRAFFIC_API_KEY": "your-api-key-here"
},
"disabled": false,
"autoApprove": []
}
}
}
Once the server is configured and running, you can use it with Claude to access vessel tracking data:
<use_mcp_tool>
<server_name>marinetraffic</server_name>
<tool_name>get_vessel_position</tool_name>
<arguments>
{
"identifier": "123456789"
}
</arguments>
</use_mcp_tool>
<use_mcp_tool>
<server_name>marinetraffic</server_name>
<tool_name>search_vessels</tool_name>
<arguments>
{
"vessel_name": "MAERSK"
}
</arguments>
</use_mcp_tool>
<use_mcp_tool>
<server_name>marinetraffic</server_name>
<tool_name>get_vessels_in_area</tool_name>
<arguments>
{
"latitude": 37.8199,
"longitude": -122.4783,
"radius": 10
}
</arguments>
</use_mcp_tool>
<access_mcp_resource>
<server_name>marinetraffic</server_name>
<uri>vessel://123456789</uri>
</access_mcp_resource>
The MarineTraffic API has usage limits based on your subscription plan. Be aware of these limits when using the server to avoid exceeding your quota.
- API Key Errors: Ensure your MarineTraffic API key is valid and correctly set in the environment variables.
- Rate Limiting: If you encounter rate limiting errors, the server will automatically retry with exponential backoff, but you may need to wait before making additional requests. Example of detailed vessel information available through the API
The MarineTraffic API has usage limits based on your subscription plan. Be aware of these limits when using the server to avoid exceeding your quota.
- API Key Errors: Ensure your MarineTraffic API key is valid and correctly set in the environment variables.
- Rate Limiting: If you encounter rate limiting errors, the server will automatically retry with exponential backoff, but you may need to wait before making additional requests.
- No Data Found: Some vessels may not have real-time tracking data available, especially smaller vessels or those in areas with limited AIS coverage.
This project is licensed under the ISC License.