Skip to content
Navo24 Navo24

Core concepts

MCP quickstart

Point Claude, Cursor or any MCP client at a Navo24 server and let the model call freight tools.

The Model Context Protocol lets an assistant call tools directly. Navo24 ships an MCP server per product, so a model can track a box, compare sailings or plan a load without you writing glue code.

The servers

ProductServerEndpointTransport
TrackingMCPcontainer-trackinghttps://mcp.trackingmcp.com/mcpStreamable HTTP
SchedulesMCPocean-scheduleshttps://mcp.schedulesmcp.com/mcpStreamable HTTP
LoadingMCPcontainer-loadinghttps://mcp.loadingmcp.com/mcpStreamable HTTP
AirCargoMCPair-cargohttps://mcp.aircargomcp.com/mcpStreamable HTTP
FreightRatesMCPfreight-rateshttps://mcp.freightratesmcp.com/mcpStreamable HTTP

On AirCargoMCP, resolve_awb_prefix answers without a key; track_awb and air_rate_quote need your tmcp_ family key.

Claude Desktop and Cursor

Add a server to your client config. For a Streamable HTTP server, pass the endpoint and your key as a bearer header.

{
  "mcpServers": {
    "container-tracking": {
      "url": "https://mcp.trackingmcp.com/mcp",
      "headers": { "Authorization": "Bearer tmcp_YOUR_API_KEY" }
    }
  }
}

A client that only runs local commands reaches any of these servers through mcp-remote. For air cargo:

{
  "mcpServers": {
    "air-cargo": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://mcp.aircargomcp.com/mcp",
               "--header", "Authorization: Bearer tmcp_YOUR_API_KEY"]
    }
  }
}

Restart the client and the tools appear. Ask it to track a container and it calls get_container_detail on its own.

What the model can call

Each server exposes the same capabilities as the REST API, named as tools. Tracking offers add_container, get_container_detail, get_shipment_summary and more. Schedules offers find_best_sailings, carrier_reliability and port_congestion. The full tool list sits on each product’s reference page.

Same key, same data

An MCP tool call and a REST call hit the same backend behind the same key. Use MCP where a model drives the work, and REST where your own code does.

On an account that holds Navo Tokens, one prepaid balance shared by the Navo products, MCP calls are paid from that balance. The JSON fields that describe the balance keep their credits_ names.

One balance opens every Navo service through MCP: TrackingMCP, AirCargoMCP, FreightRatesMCP, SchedulesMCP and LoadingMCP. You do not need separate MCP access for each product. Two things still stop a call: a product your account manager closed for your account, and a key scoped away from a product (see Access per product below).

MCP and API usage are counted separately. An MCP call never spends an API key’s monthly call limit, and a REST call on your API key never spends Navo Tokens.

CallTokens
Track a new container, bill of lading or booking250
Refresh or read a tracked shipment10 per reference
Track a new air waybill200
Refresh an air waybill10
Freight rates for a port pair100, or 10 to repeat the pair within 24 hours
Sailing schedules for a port pair80, or 10 to repeat the pair within 24 hours
A new 3D load plan50, or 10 per recalculation
Port congestion10
Schedule reliability, a carrier’s sailings10
Alerts and webhooksfree

A tool that takes several references costs once per unique reference you submitted. A booking or a bill of lading is one charge for all of its containers. An empty result is free, and a refused call charges nothing. Packages and prices are on the pricing page.

When the balance cannot pay

The call is refused, nothing is charged and no data is returned. The code depends on the product:

ProductRefusal
TrackingMCP402 INSUFFICIENT_CREDITS
AirCargoMCP402 with the code insufficient_balance (or trial_expired, wallet_inactive, no_wallet)
FreightRatesMCP402 with the code insufficient_credits (or trial_expired, wallet_inactive, no_wallet)
SchedulesMCP429 QUOTA_EXCEEDED before any data is read, or 402 INSUFFICIENT_CREDITS when the balance could no longer pay once the answer was ready
LoadingMCP402 INSUFFICIENT_CREDITS, refused before the plan is computed

On every product, beside code and message, the error object carries the same four optional fields:

FieldTypeWhat it holds
credits_requiredinteger or nullThe tokens this call needs; null when the price is not known.
credits_balanceinteger or nullThe tokens your balance holds now; null when the account has no balance yet.
top_up_urlstring or nullThe Billing page of your account settings, where you buy more tokens; null when no link can be given.
packagesarray of { plan, credits, usd }The packages you can buy: Starter 7,000 tokens for $69, Growth 40,000 tokens for $349, Scale 200,000 tokens for $1,399.
{
  "ok": false,
  "error": {
    "code": "INSUFFICIENT_CREDITS",
    "message": "Not enough Navo Tokens: this needs 10, your balance is 4. Buy more tokens: https://app.trackingmcp.com/settings?tab=billing&buy=credits (Starter 7,000 tokens for $69, Growth 40,000 tokens for $349, Scale 200,000 tokens for $1,399).",
    "severity": "warning",
    "credits_required": 10,
    "credits_balance": 4,
    "top_up_url": "https://app.trackingmcp.com/settings?tab=billing&buy=credits",
    "packages": [
      { "plan": "starter", "credits": 7000, "usd": 69 },
      { "plan": "growth", "credits": 40000, "usd": 349 },
      { "plan": "scale", "credits": 200000, "usd": 1399 }
    ]
  }
}

The fields are additive and optional: keep branching on code, and read them when they are present. Every Navo MCP server turns them into the same sentence you can show the user as is: “Not enough Navo Tokens: this needs 10, your balance is 4. Buy more tokens: <link> (Starter 7,000 tokens for $69, Growth 40,000 tokens for $349, Scale 200,000 tokens for $1,399).” Each product’s reference page has the details under Navo Tokens.

Access per product

Navo Tokens need no MCP access per product. A product your account manager closed for your account stays closed on Navo Tokens too, for example “Ship Schedules is not enabled for MCP on this account. Ask your account manager.” on SchedulesMCP. A key scoped away from a product is refused with 403, for example “Ship Schedules is not enabled for this API key.” on SchedulesMCP and “Freight Rates is not enabled for this API key. Contact your account manager to open it.” on FreightRatesMCP.