Skip to content

Guides

SDKs and clients

Generate a typed client from the OpenAPI spec, or call the API directly with the snippets.

Official SDKs are on the way. Until they land, two paths get you a clean, typed integration today.

Generate a client from the OpenAPI spec

TrackingMCP, SchedulesMCP and LoadingMCP each publish an OpenAPI spec (linked from their reference overview). Point a generator at it and get a typed client in your language.

npx @openapitools/openapi-generator-cli generate \
  -i https://trackingmcp.com/openapi.json \
  -g typescript-fetch \
  -o ./navo-tracking-client

Swap -g for python, go, java or any target the generator supports. The spec is the source of truth, so a regenerate keeps your client in step with the API.

Or call it directly

Every endpoint in the reference ships copy-paste samples in curl, JavaScript and Python. For most integrations a thin fetch or requests wrapper is all you need:

const NAVO_KEY = process.env.NAVO_KEY;

async function track(reference) {
  const res = await fetch("https://api.trackingmcp.com/v1/containers", {
    method: "POST",
    headers: {
      "Authorization": `Bearer ${NAVO_KEY}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({ reference }),
  });
  if (!res.ok) throw new Error(`Navo ${res.status}`);
  return res.json();
}

Keep the key on your backend, read it from the environment, and branch on the status code. See errors and rate limits.

Let a model call the tools

If an assistant is doing the work, skip the client entirely and wire the MCP server. See the MCP quickstart.