Skip to main content
Glama
junter1989k-ai

Indonesia Logistics MCP

Indonesia Logistics MCP ๐Ÿ‡ฎ๐Ÿ‡ฉ โ€” How can my AI agent ship a parcel across Indonesia (JNE / J&T / SiCepat via Biteship)?

Use it in 60 seconds

Paste this into your MCP client config (Claude Desktop, Cursor, Windsurf, or any MCP-capable agent):

{
  "mcpServers": {
    "indonesia-logistics": {
      "type": "http",
      "url": "https://logi-id.wishpool.app/mcp"
    }
  }
}

Nothing to install. Credentials, when you need them, travel as HTTP headers on each request and are never stored โ€” see the threat model.

Or run it yourself

Would you rather not send production credentials to a server you do not control? Deploy this identical code to your own account and point your agent at your own URL:

Deploy with Vercel

git clone https://github.com/junter1989k-ai/indonesia-logistics-mcp && cd indonesia-logistics-mcp && npx vercel --prod

MIT-licensed. Self-hosting removes us from the picture entirely, at no cost and with no loss of function.


Remote MCP server that lets any AI agent ship parcels across Indonesia โ€” over JNE, J&T, SiCepat, AnterAja, Ninja, Pos Indonesia, Lion Parcel, Gojek and Grab โ€” through the Biteship shipping API. Compare courier rates by postal code (cek ongkir), create shipping orders, track parcels by waybill, and cancel orders. Stateless, bring-your-own Biteship API key, never stores anything.

Live endpoint: https://logi-id.wishpool.app/mcp ยท Registry: app.wishpool/indonesia-logistics-mcp

Related MCP server: UPS MCP Server

Quick start

{
  "mcpServers": {
    "indonesia-logistics": {
      "type": "http",
      "url": "https://logi-id.wishpool.app/mcp",
      "headers": {
        "x-biteship-key": "biteship_live_your_api_key"
      }
    }
  }
}

No shared demo โ€” use your own Biteship account. Get an API key in the Biteship dashboard at dashboard.biteship.com (Settings โ†’ API Key) and send it in the header above. The server is stateless: on every call it sends the key as the Authorization header directly to api.biteship.com and stores nothing. A biteship_test_ key runs in the sandbox; a biteship_live_ key ships real parcels and debits your Biteship balance.

Tools

Tool

What it does

check_rates

Call this first (cek ongkir). Given items (name/value IDR/weight grams/quantity) plus an origin (origin_postal_code or origin_area_id) and a destination, returns every available courier service (JNE, J&T, SiCepat, AnterAja, Gojek, Grabโ€ฆ) with its price (IDR), duration and service type, and flags the cheapest. Read-only โ€” quotes only, spends nothing.

create_shipment

Create a Biteship order. Origin (pickup) + destination (recipient) contact/address + one location id each, items, and courier_company (courier_code) + courier_type (courier_service_code) from check_rates. Returns order_id, status, tracking_id, waybill_id, price (IDR). delivery_type defaults to now. A biteship_live_ key debits your Biteship balance.

query_tracking

Track by tracking_id (preferred), order_id, or waybill_id + courier_code. Returns status from the Biteship set โ€” confirmed / allocated / picking_up / picked / dropping_off / delivered / on_hold / returned / cancelled โ€” plus a plain-English hint; non-terminal statuses carry next_steps. Raw response always included.

cancel_shipment

Cancel a Biteship order by its order_id (+ cancellation_reason). Only works before pickup.

Owner policy guardrails ride optional headers (x-agentpay-max-amount, x-agentpay-approval-above, x-agentpay-allowed-tools) โ€” set by the human owner in client config; the agent cannot relax them. The order value (IDR) is gated before the order is created: approval-above returns an unsigned draft with no order created.

Units

Weight in grams (g), parcel dimensions in centimetres (cm), money in IDR.

Develop

node test/serve.js   # local server on :3251 (/mcp)
node test/e2e.js     # protocol + validation + policy/biteship units + fake-key live probe to api.biteship.com (expects native Biteship auth error)

How it talks to Biteship

Every tool call is a single server-to-server request with Authorization: <your key> (no login step โ€” Biteship is single-key). check_rates is POST /v1/rates/couriers. create_shipment is POST /v1/orders. query_tracking is GET /v1/trackings/{tracking_id} (or GET /v1/orders/{order_id}, or public GET /v1/trackings/{waybill_id}/couriers/{courier_code}). cancel_shipment is POST /v1/orders/{order_id}/cancel. Base URL https://api.biteship.com/v1.

Safety

Pure stateless translation layer. Orders, labels and tracking are held by Biteship and the couriers; the API key travels per-request in a header, is forwarded as the Authorization header, and nothing is stored. Parcels flow sender โ†” courier โ†” recipient directly. Privacy policy.

Sister servers

India labels (Delhivery/Bluedart/Ekart) via Shiprocket live in india-logistics-mcp; USA labels (USPS/UPS/FedEx) via EasyPost in usa-logistics-mcp; Taiwan CVS pickup + home delivery in taiwan-logistics-mcp. One family of stateless BYO local-commerce MCP servers: local payments in 81 countries at mcp.wishpool.app, plus electronic-invoice servers across nine countries including India GST, Mexico CFDI, Brazil NF-e, Chile DTE and Peru CPE.

MIT licensed.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables interaction with Shiprocket shipping services to check courier rates and delivery times, create and manage orders, ship packages, track shipments, and schedule pickups through natural language commands.
    3
    29
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to manage global shipping operations, including rate comparison, shipment creation, label purchasing, tracking, pickup scheduling, address validation, billing, and analytics, via natural language.
    6
    MIT