Skip to content
CargoFlow

Developers

Build on CargoFlow

Everything the website does is open: a REST API with an OpenAPI spec, TypeScript and Python SDKs, an edge agent for data loggers and an MCP server so assistants can read shipments and prepare transactions for your wallet.

Use CargoFlow in Claude

The @cargoflow/mcp server gives assistants read tools (shipments, evidence, explanations, cover, the market) and prepare tools that return unsigned transactions with a link to sign them here. No private keys, ever.

Remote MCP server · Streamable HTTP

Add CargoFlow to Claude

Read shipments, evidence, cover and the market, and prepare transactions for your own wallet to sign. The server holds no keys.

MCP URLhttps://cargoflow-mcp.adoranto737.workers.dev/mcp
  1. 1Open Claude → Settings → Connectors
  2. 2Choose “Add custom connector”
  3. 3Paste the URL above, name it CargoFlow
  4. 4Press Add, then enable it in a chat

The button opens Claude on its “Add custom connector” dialog: name it CargoFlow, paste the URL, then Add. Custom connectors need a Claude plan that supports them.

Claude Code · remote
claude mcp add --transport http cargoflow https://cargoflow-mcp.adoranto737.workers.dev/mcp
Claude Code · local (stdio)
claude mcp add cargoflow -- npx -y @cargoflow/mcp
Claude Desktop · claude_desktop_config.json
{
  "mcpServers": {
    "cargoflow": {
      "command": "npx",
      "args": [
        "-y",
        "@cargoflow/mcp"
      ],
      "env": {
        "CARGOFLOW_API_URL": "https://cargoflow-api-75ul.onrender.com"
      }
    }
  }
}

Libraries and tools

Install, then copy the example. Each README has the full reference.

TypeScript · Node 18+, browsers, Workers

@cargoflow/sdk

A typed client for every public endpoint, every wallet message byte-identical to the backend, ABIs and unsigned transaction builders, gateway signing, the CSV parser and document fingerprints.

README and full reference (opens in a new tab)
Install
pnpm add @cargoflow/sdk viem
Example
import { createClient } from "@cargoflow/sdk";

const cf = createClient(); // the live API
const { shipments } = await cf.shipments.list({ status: ["PAUSED", "DISPUTED"] });
const why = await cf.shipments.explanation(shipments[0].id);

CLI · Linux, macOS, Windows, Raspberry Pi

@cargoflow/gateway

Runs next to your temperature loggers: parses their exports (generic CSV or vendor presets), de-duplicates, signs each batch with the gateway's own key and delivers it, with a durable offline queue.

README and full reference (opens in a new tab)
Install
npm install -g @cargoflow/gateway
Example
cargoflow-gateway init --key ~/Downloads/cargoflow-gateway-<ref>-<id>.json
cargoflow-gateway send trip-0411.csv         # one shot
cargoflow-gateway watch ~/logger-exports     # keep running

Python 3.10+ · pandas or polars

cargoflow (Python)

Analytics-first: typed models of the read API, tidy data frames, exposure, excursion and conflict statistics, and a seeded Monte Carlo of default and recovery. Read-only.

README and full reference (opens in a new tab)
Install
pip install cargoflow                 # pandas
pip install "cargoflow[polars]"       # + polars frames
Example
from cargoflow import CargoFlow
from cargoflow import analytics as cfa

cf = CargoFlow()
pf = cf.portfolio()
cfa.exposure(pf)
cfa.simulate_default_recovery(pf, n_sims=20_000, seed=2026).summary()