MCP ready · 18 tools · Bearer auth, no OAuth to set up

Connect AI to live vessel data

Give Claude, Cursor, ChatGPT, or any MCP-compatible assistant direct access to real-time AIS tracking, fleet data, port congestion, and IMO CII emissions scoring — no custom integration code.

Overview

What is MCP, and why it matters

The Model Context Protocol lets AI assistants call external tools directly in conversation. Instead of stale training data, your AI fetches live vessel positions, fleet status, and port congestion by asking a question.

Example: ask Claude "Where is IMO 9873888 right now?" and it calls track-vessel-tool automatically.

Real-time data

Live AIS positions, fleet status, and port congestion — not a training-data snapshot.

Natural language

Ask "Which of my fleet's vessels are near Rotterdam?" and get a real answer, not a stale guess.

Same API quota

MCP calls use your existing plan. Each tool call counts as one API request, like any REST call.

18 tools

Every REST endpoint, one tool each

Every tool maps 1:1 to a REST endpoint — same params, same response shape. Authenticate with Authorization: Bearer or X-API-Key, not a key in the URL.

Vessel Intelligence

search-vessels-tool

Search the vessel catalog by name, IMO, ship type, flag, DWT, or year built.

track-vessel-tool

Current position, position history, active route, and last port visits.

nearby-vessels-tool

Vessels within a radius of a latitude/longitude point.

vessel-analytics-tool

Aggregated distance/speed/port-time analytics for a vessel, port, or fleet.

Fleet Operations

fleet-vessels-tool

Batch look-up up to 100 vessels by IMO/MMSI in one call.

vessel-emissions-tool

CO2 emissions and IMO CII carbon-intensity rating (A-E) for a vessel.

Port Intelligence

port-congestion-tool

Live congestion snapshot and wait/berth-time stats for a port.

port-catalog-tool

List and paginate the port catalog.

port-details-tool

Full details for a single port, live-refreshed.

port-expected-arrivals-tool

Vessels expected to arrive at a port.

port-activity-tool

Recent arrival/departure activity at a port.

Legacy (single-vessel lookups)

vessel-info-tool

Vessel particulars (name, type, flag, tonnage, dimensions) by IMO.

vessel-route-tool

A vessel's latest route/voyage details by IMO.

vessel-position-tool

Current position by IMO.

vessel-mmsi-position-tool

Current position by MMSI.

vessel-live-position-tool

Live, real-time AIS position. Premium/credit-metered.

vessels-in-port-tool

Vessels currently in a given port.

port-visits-by-mmsi-tool

Last known position plus port-call history by MMSI.

Getting started

One URL, one credential

Server URL

https://mcp.vessels-api.com/mcp

Same URL for every client. Authenticate with the same X-API-Key or Authorization: Bearer credential you already use for the REST API — no OAuth flow to run.

initialize and tools/list work with no key at all, so an agent can see what's available before it has one. Only tools/call needs a real key.

Need a key first? Start a free trial, or if you're an autonomous agent, mint your own sandbox credential with no human filling out a form — see /auth.md.

cURL — tools/list
curl -X POST https://mcp.vessels-api.com/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

Connect your client

Claude, Cursor, ChatGPT, Claude Code

Claude Desktop & claude.ai

  1. Go to Settings → Connectors (Team/Enterprise: Customize → Connectors) and click Add custom connector.
  2. Server URL: https://mcp.vessels-api.com/mcp.
  3. Under Authentication, choose No sign-in — there's no OAuth flow to detect.
  4. Open Request headers, add Authorization = Bearer YOUR_API_KEY, mark it Required.
  5. Click Add, then Connect on the connector.

Request-header auth is an Anthropic beta with limited rollout — if your dialog has no Request headers section yet, use Claude Code below instead, which supports it for every account today.

Claude Code (CLI)

One command — works today regardless of the Request-headers rollout:

bash
claude mcp add --transport http vessels-api \
  https://mcp.vessels-api.com/mcp \
  --header "Authorization: Bearer YOUR_API_KEY"

Add --scope project to share it via a checked-in .mcp.json instead of your personal user scope.

Cursor

Settings → Tools & Integrations → MCP → New MCP Server opens ~/.cursor/mcp.json (global) or .cursor/mcp.json (project) for you to edit directly — paste this in and restart Cursor:

mcp.json
{
  "mcpServers": {
    "vessels-api": {
      "url": "https://mcp.vessels-api.com/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  }
}

ChatGPT

  1. Open Settings → Connectors → Advanced settings and turn on Developer mode.
  2. Go to Settings → Apps & Connectors → Create.
  3. Name it, and set the URL to https://mcp.vessels-api.com/mcp.
  4. For authentication, choose Token and paste your API key (not OAuth — Vessels API doesn't use it for MCP).

Script it

Python example

The server is stateless — no initialize handshake or session id required, a direct tools/call is enough.

track_vessel.py
import httpx
import json

MCP_SERVER_URL = "https://mcp.vessels-api.com/mcp"
API_KEY = "YOUR_API_KEY"

def call_tool(name: str, arguments: dict) -> dict:
    response = httpx.post(
        MCP_SERVER_URL,
        headers={"Authorization": f"Bearer {API_KEY}"},
        json={
            "jsonrpc": "2.0",
            "id": 1,
            "method": "tools/call",
            "params": {"name": name, "arguments": arguments},
        },
        timeout=30,
    )
    return response.json()

result = call_tool("track-vessel-tool", {"imo": "9873888"})
print(json.dumps(result, indent=2))

FAQ

Frequently asked questions

Yes — each tool call is one API request, billed and rate-limited exactly like a REST call made with the same key.
No. Vessels API doesn't run a browser authorize screen for MCP — paste your API key as a static Authorization: Bearer header in the client's settings, as shown above. initialize and tools/list work with no key at all, so an agent can see what's available before it has one.
Yes — POST /oauth/register followed by POST /oauth/token (RFC 6749 Client Credentials Grant) issues a scoped trial key with no dashboard signup. Full spec at /auth.md.
Claude Code's claude mcp add --header flag works for every account regardless of the claude.ai/Desktop beta rollout. Cursor's mcp.json also supports headers directly, no beta gate.

Connect your AI to real vessel data today.