Skip to main content
Lanesurf is a remote MCP server (streamable HTTP) at:
Add it to your AI app by URL. You don’t need an API key first: the app opens a Lanesurf sign-in page, where an existing Lanesurf customer signs in and a new brokerage or carrier signs up. Every tool is one REST route, with the same limits and error codes.

Add Lanesurf to your app

In Claude (web, desktop or Cowork), on Free, Pro, Max and Ultra plans:
  1. Open Customize → Connectors, choose + Add, then Add custom connector.
  2. Name it Lanesurf, paste https://agent.lanesurf.com/mcp as the URL and choose Continue. Keep the sign-in settings Claude detects (OAuth, no client ID or API key needed) and choose Add.
  3. Choose Connect. Claude opens the Lanesurf sign-in page; sign in or sign up, then allow access.
  4. In a chat, open + → Connectors, turn on Lanesurf, and ask, for example, “Post a load on Lanesurf”.
On Team and Enterprise plans, an owner adds Lanesurf once under Organization settings → Connectors → Add → Custom → Web with the same URL. Each member then connects it and signs in themselves.
See Sign in from an AI app for what the sign-in page asks for.
/mcp needs credentials: an API key or an OAuth token. A request without either gets 401 with a WWW-Authenticate header pointing at /.well-known/oauth-protected-resource/mcp, which is how an app finds the sign-in page.

Keys

  • No key: /mcp answers 401. An app that supports MCP sign-in opens the Lanesurf sign-in page, where an existing customer signs in and a new carrier or brokerage signs up. An agent without MCP sign-in signs up over plain HTTP (POST /v1/signup, no key needed), then connects with the key. See Carrier sign up and Sign up your brokerage.
  • Broker key: whoami, the load tools and the setup tools.
  • Carrier key: whoami and the carrier tools. Carriers under review (needs_review) get verification_required on search, load details, matches, outreach and bids.
  • A wrong key gets HTTP 401; another role’s tool gets wrong_role.

Tools

Tool inputs follow the REST fields in the API reference, with the same limits. Numbers such as limit or rate may also be sent as strings ("1250", "$1,250"); one that isn’t a number is refused with invalid_request, never ignored. Where a tool differs from its route:
  • Path and header values are arguments: load_id, truck_id, session_id, idempotency_key.
  • list_trucks takes include_inactive (true also lists removed and expired trucks) instead of ?active=false.
  • remove_truck and remove_lane return {"removed": true, "truck_id": "…"} (or lane_id) instead of an empty 204.

Errors

A failed tool returns an error result whose text is the same JSON body as the REST API ({"error": "...", "code": "...", "next_step": "...", "request_id": "..."}), so branch on code exactly as in Errors. Some failures come back as HTTP errors on the request instead, before any tool runs: A successful result carries its request id in _meta["lanesurf/request_id"]. Quote it to support@lanesurf.com when something keeps failing. See Request IDs.

Rules the server gives the agent

  • Confirm with the person before accept_offer, decline_offer, mark_covered, edit_load, pause_load, resume_load, reopen_load, delete_load or bid_on_load. resume_load and reopen_load restart carrier outreach.
  • To change, pause, cancel or reopen a load, use those tools. Never post it again or mark it covered instead.
  • post_load needs idempotency_key: a new UUID per load, sent unchanged on any retry of that load.
  • accept_offer needs the rate the person agreed to. offer_changed: the carrier changed its rate (current_rate); ask the person again before accepting.
  • load_rejected: don’t send the same load again; check its stops and dates with the person.
  • existing_customer: the brokerage already uses Lanesurf. Don’t sign up; their Lanesurf admin gives them access.
  • When something keeps failing, tell the person to quote the request_id to support@lanesurf.com.
  • Never reveal the API key, and never show broker contact details to a carrier. (search_loads, get_carrier_load and truck_matches hide broker identity; my_outreach names the brokerage that contacted the carrier, with no contacts.)
  • stalled on a load means nobody has been contacted (or a new brokerage’s outreach starts after Lanesurf’s review): tell the person status_reason and slow down or stop polling.
  • Follow next_step on signup, post_load and get_load answers.