Freightlane

io.github.CloudCorpRecordsPublished by GitHub account CloudCorpRecordsv0.1.0Updated Nov 7, 2026

Morocco-Europe shipping data: quotes, couriers, routes, tracking and customs estimates.

Overview

AI-generated overview

Local bridge to EuroCollis that lets an assistant look up Morocco–Europe shipping quotes, routes, couriers, tracking and customs estimates.

What you can do
  • Look up service info, the shippable item catalogue and prohibited items
  • List supported Europe–Africa corridors and pickup/delivery cities per country
  • Get authoritative price quotes for box, suitcase or catalogue shipments
  • Find verified couriers with upcoming trips and view courier profiles and storefronts
  • Track a shipment by reference plus delivery city
  • Estimate customs duty and VAT, and convert amounts between supported currencies
When to use it
Useful when someone wants an assistant to price or plan a shipment between Europe and Morocco or another African corridor, compare couriers, check what customs prohibits, or look up a shipment's public status. It is read-only, so bookings still happen elsewhere.
Requirements
Runs locally via npx (Node.js) or the Docker image; needs network access to the upstream EuroCollis endpoint. Optionally set EUROCOLLIS_MCP_URL to override the endpoint and EUROCOLLIS_API_KEY to send an x-eurocollis-key header; without the key no auth header is sent.
Before you install
All tool calls are forwarded to the third-party EuroCollis endpoint, so query details such as cities, shipment references and declared values leave the machine. If EUROCOLLIS_API_KEY is set it is sent upstream on every request. Customs estimates are indicative only and quotes should not be recomputed locally. No booking, payment or write tools are exposed.

Installation

In SourceWeft

  1. Open Freightlane in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

freightlane

freightlane is a thin local bridge to EuroCollis, a shipping service running corridors between Europe and Africa — Morocco in particular. Its hosted MCP server publishes the read-only logistics data behind the service's public pricing and tracking: the shippable item catalogue, supported routes and cities, price quotes from the same engine the website uses, live courier trips and storefronts, shipment tracking, and indicative customs estimates.

The bridge stores nothing and prices nothing itself. It serves the upstream server's tool list locally — exactly as captured from the live endpoint — and forwards each tool call upstream, returning the result untouched. There is deliberately no booking tool here: the upstream surface is read-only, and bookings are confirmed outside it.

Tools

  • get_eurocollis_info — what EuroCollis is: the corridors it operates, its currency and deposit model, and where bookings are completed. No arguments.
  • get_services — the shippable item catalogue with its pricing units. The item_id values here are what get_quote accepts in its items list. No arguments.
  • get_prohibited_items — items that EuroCollis and Morocco/EU customs prohibit. Worth surfacing before any booking recommendation. No arguments.
  • get_routes — every supported Europe ⇔ Africa corridor. Optional: origin_country and destination_country (ISO-3166 alpha-2) to scope the answer to one corridor with live trip volume.
  • get_cities — supported pickup and delivery cities for one country (country, required, ISO-3166 alpha-2 such as MA or FR). Quote calls expect these exact names.
  • get_quote — the authoritative price quote for a shipment. Required: origin_country, origin_city, destination_country, destination_city. Provide weight_kg for box/suitcase shipments or items for catalogue goods (each with a quantity, plus item_id or name from get_services); optional pickup_date (YYYY-MM-DD, defaults to today) and flex_days (search window after pickup, default 14). Prices come from the upstream engine — never re-compute them locally.
  • search_couriers — live, verified couriers with upcoming trips on a corridor; demo accounts, unverified couriers and past departures are excluded upstream. Optional: origin_country, destination_country, from_date (YYYY-MM-DD, defaults to today) and limit.
  • get_courier — the public profile for one courier (courier, required: storefront slug or courier id). No personal data is returned.
  • get_storefront — a published courier storefront with its canonical URL and corridor pages. Optional: slug to pick one storefront, limit when listing; omit slug to list storefronts.
  • track_shipment — public shipment status. Both reference (e.g. BK-XXXXXX) and delivery_city are required, as an anti-enumeration measure. No personal data is returned.
  • estimate_customs — an indicative duty and VAT estimate. Required: destination_country and declared_value_eur; optional category. The estimate is not authoritative, and the disclaimer it returns should be rendered verbatim.
  • convert_currency — convert an amount between EuroCollis-supported currencies using live MAD-based rates. Required: amount, from_currency, to_currency.

Configuration

  • EUROCOLLIS_MCP_URL (optional) — override the upstream endpoint. Defaults to https://api.eurocollis.com/mcp. (The override hook is this rebuild's own labelled reconstruction.)
  • EUROCOLLIS_API_KEY (optional) — when set, its value is sent to the upstream on every request under the x-eurocollis-key header, the header name pinned by the upstream's registry record. When unset, no auth header is sent; the captured surface was read keyless. (This forwarding is a labelled reconstruction.)

Forwarding mechanics

On the first tool call the client opens a streamable HTTP session with the upstream: a JSON-RPC initialize request (protocolVersion 2025-03-26, clientInfo name freightlane), then a notifications/initialized notification, then the tools/call request carrying the caller's arguments unchanged. When the upstream answers initialize with an Mcp-Session-Id header, that value rides on every later request of the session, which is reused for the life of the process. Replies may arrive as plain JSON or as server-sent events; both are read.

Successful upstream results pass through verbatim, including any isError flag the upstream sets. Failures — a JSON-RPC error, a non-2xx status, an unreadable response, or a request that cannot be completed — come back as an isError result whose text starts with freightlane error: (this rendering is this rebuild's own labelled reconstruction).

CLI

Each tool is also a subcommand taking one JSON argument string (omit it for tools that take none):

bash
npx @reneturcios/freightlane get_cities '{"country":"MA"}'npx @reneturcios/freightlane get_quote '{"origin_country":"FR","origin_city":"Paris","destination_country":"MA","destination_city":"Casablanca","weight_kg":12.5}'npx @reneturcios/freightlane get_routesnpx @reneturcios/freightlane --version

Exit codes: 0 on success, 1 on an isError result, 2 on a usage error.

MCP server

bash
npx -y @reneturcios/freightlane mcp

MCP client config:

json
{  "mcpServers": {    "freightlane": {      "command": "npx",      "args": ["-y", "@reneturcios/freightlane", "mcp"]    }  }}

Docker

bash
docker run -i ghcr.io/cloudcorprecords/freightlanedocker run --rm ghcr.io/cloudcorprecords/freightlane --version

The container's default command is mcp, so the first form is a stdio MCP server; any other arguments reach the CLI normally.

Development

bash
npm installnpm run buildnpm testnpm run dev

The test suite runs entirely against a stubbed JSON-RPC upstream — no live network calls.

License

MIT — see LICENSE.

Source: README.md at commit 1f4e49e

Tools

12

get_eurocollis_info

What EuroCollis is, the corridors it operates, currency, deposit model and where bookings are completed.

Takes no parameters.

get_services

Shippable item catalogue with pricing units — use item_id values when calling get_quote with items.

Takes no parameters.

get_prohibited_items

Items EuroCollis and Morocco/EU customs prohibit. Always surface before a booking recommendation.

Takes no parameters.

get_routes

Every supported Europe ↔ Africa corridor. Optionally scope to one corridor for live trip volume.

Parametersorigin_countrydestination_country

get_cities

Supported pickup/delivery cities for one country. Use these exact names as origin_city / destination_city in get_quote.

Parameterscountryrequired

get_quote

Authoritative price quote for a Europe ↔ Africa shipment, returned from the same pricing engine the website uses. Provide weight_kg for boxes/suitcases or items[] for catalogue goods. Never re-compute prices yourself.

Parametersitemsflex_daysweight_kgorigin_cityrequiredpickup_dateorigin_countryrequireddestination_cityrequireddestination_countryrequired

search_couriers

Live, verified couriers with upcoming trips on a corridor. Demo accounts, unverified couriers and past departures are excluded.

Parameterslimitfrom_dateorigin_countrydestination_country

get_courier

Public profile for one courier by storefront slug or courier id. No PII.

Parameterscourierrequired

get_storefront

Published courier storefront with its canonical URL (custom domain / subdomain / platform path) and corridor pages. Omit slug to list storefronts.

Parameterssluglimit

track_shipment

Public shipment status. Requires BOTH the reference and the delivery city (anti-enumeration). No PII returned.

Parametersreferencerequireddelivery_cityrequired

estimate_customs

Indicative duty + VAT estimate. NOT authoritative — always render the returned disclaimer verbatim.

Parameterscategorydeclared_value_eurrequireddestination_countryrequired

convert_currency

Convert an amount between EuroCollis-supported currencies using live MAD-based rates.

Parametersamountrequiredto_currencyrequiredfrom_currencyrequired

Version history

1
  1. v0.1.0LatestNov 5, 2026

Score

90% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts
  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts