MCP

MCP kolumna

Bezbedno povežite AI agente: User MCP za operacije, Developer MCP za integracije — profili, confirm, dry-run i odobrenja.

MCP track_package(tracking_number) Tool
RPC tools/list JSON-RPC 2.0
RPC tools/call JSON-RPC 2.0
Documentation

Pregled MCP kolumne

Ovaj vodič je Superroute MCP kolumna u Developer Centeru: oba servera, bezbednost agenata i live katalog alata.

Šta je MCP?

Model Context Protocol (MCP) je otvoreni standard koji omogućava AI asistentima kao što su Claude, Cursor i ChatGPT da komuniciraju sa spoljnim alatima i servisima. Omogućava vašem AI da izvršava stvarne radnje — kao što je praćenje paketa — direktno u razgovoru.

Konfigurisanjem Superroute MCP servera, vaš AI asistent dobija pristup logističkim alatima bez napuštanja radnog toka.

Dva MCP servera

Koristite pravi server. Ne dajte nenadgledanim agentima Developer server sa punim pristupom.

Ime servera Endpoint Publika Auth
superroute https://api.miliexpress.com/mcp Ops / support / business agenti Bearer + opcionalni profil/scopes (pun ako nije setovan)
superroute-developer https://api.miliexpress.com/mcp/developer Programeri integracija i coding agenti Connection Bearer poželjan; tool api_token se ukida

Brzi početak

Javni alati poput praćenja paketa rade bez autentifikacije. Dodajte ovu konfiguraciju svom MCP klijentu:

JSON
{
  "mcpServers": {
    "mili-express": {
      "type": "url",
      "url": "https://api.miliexpress.com/mcp"
    }
  }
}
Isprobajte! Nakon podešavanja, pitajte svog AI asistenta: „Prati paket SR100012345"

Autentifikovan pristup

Da biste koristili alate koji zahtevaju korisničke dozvole, dodajte svoj API Bearer token u konfiguraciju:

Tokene stavljajte samo u MCP connection headere — nikad u argumente alata ili promptove.

JSON
{
  "mcpServers": {
    "mili-express": {
      "type": "url",
      "url": "https://api.miliexpress.com/mcp",
      "headers": {
        "Authorization": "Bearer <your-api-token>",
        "X-MCP-Profile": "ops-readonly"
      }
    }
  }
}

Kako dobiti API token

Pozovite endpoint za prijavu sa vašim akreditivima:

Bash
curl -X POST https://api.miliexpress.com/api/v1/user/login \
  -H "Content-Type: application/json" \
  -d '{"email": "you@example.com", "password": "your-password"}'

Odgovor će sadržati vaš pristupni token:

JSON Response
{
  "access_token": "eyJ0eXAiOiJKV1Qi...",
  "token_type": "Bearer",
  "expires_at": "2026-02-20 00:00:00"
}

Koristite vrednost access_token u Authorization zaglavlju vaše MCP konfiguracije.

Model bezbednosti agenata

User MCP je za least privilege. Kreirajte tokene sa MCP profilom (podrazumevano ops samo čitanje) ili pošaljite headere.

Profili (X-MCP-Profile)

Imenovani scope paketi. Preferirajte ops-readonly ili support za nenadgledane agente.

Profil Oznaka Scopes
ops-readonly Ops samo čitanje orders:read, labels:read, routes:read, drivers:read, analytics:read, address:read, approvals:read
support Podrška (korisnička služba) orders:read, analytics:read, address:read, approvals:read
ops-write Ops pisanje (porudžbine + nalepnice + rute) orders:read, orders:write, labels:read, labels:write, routes:read, routes:write, drivers:read, analytics:read, address:read, approvals:read, approvals:write
wms-readonly WMS samo čitanje wms:read, orders:read
datasets-readonly Skupovi podataka samo čitanje datasets:read
alliance-readonly Alijansa samo čitanje alliance:read
full Pun pristup (svi MCP alati) — ne za nenadgledane agente *
.mcp.json — preporučena konfiguracija agenta
{
  "mcpServers": {
    "mili-express": {
      "type": "url",
      "url": "https://api.miliexpress.com/mcp",
      "headers": {
        "Authorization": "Bearer <ops-readonly-token>",
        "X-MCP-Profile": "ops-readonly"
      }
    }
  }
}

Opcioni headeri

Header Svrha
Authorization: Bearer …API Bearer token (nivo veze).
X-MCP-ProfileProfil: ops-readonly, support, ops-write, wms-readonly, datasets-readonly, alliance-readonly, full.
X-MCP-ScopesEksplicitni scopes odvojeni zarezom (prepisuje profil).
X-MCP-Dry-Run: 1Pregled upisa bez mutacije.
X-MCP-Require-Approval: 1Stavi high-risk upise u red za ljudsko odobrenje.

High-risk potvrda

Ovi alati zahtevaju confirm=true na tools/call (ili red odobrenja):

Red za ljudsko odobrenje

Nenadgledani agenti predlažu upise; ljudi odobravaju.

  1. Agent: propose_write ili X-MCP-Require-Approval: 1
  2. Čovek: MCP Approvals u aplikaciji ili list_pending_approvals
  3. Čovek: approve_pending_write sa confirm=true ili reject_pending_write

Putanja Web UI (potrebna prijava): /mcp-approvals

Developer MCP autentifikacija

Preferirajte Authorization: Bearer na vezi. api_token po alatu je zastareo i seče se posle 2026-12-31.

Dostupni alati

Sledeći alati su trenutno dostupni na MCP serveru: 93 live alata iz serverskog kataloga

Ova tabela se generiše iz UserMcpToolCatalog u runtime-u i ostaje usklađena sa tools/list.

Alat Autentifikacija Rizik Scopes Opis
track_package Javno low — Track a package by its tracking number. Returns delivery status, tracking events timeline, and proof of delivery if available.
otep_tracking Javno low — Get the unified OTEP (Open Tracking Event Protocol) timeline for a tracking number — self-delivery, third-party and carrier events normalize...
get_capabilities Javno low — List MCP tools available to the current connection, with risk level, required scopes, and whether confirm=true is needed. Call this first wh...
get_orders Potrebna low orders:read List orders with filtering and pagination. Returns order details including status, tracking, and delivery info.
get_order_detail Potrebna low orders:read Get full details of a specific order by ID, including address, status, packages, and tracking info.
find_order Potrebna low orders:read Fuzzy-find orders across tracking number, external tracking, ref, recipient name, and phone in a single query. Use this instead of get_order...
get_operation_events Potrebna low orders:read Get the full audit trail for orders — every status change, who performed it, GPS coordinates, and photos.
create_order Potrebna medium orders:write Create a delivery/pickup order. D=delivery (warehouse→customer), P=pickup (customer→warehouse), P2P=peer-to-peer. Returns order ID and track...
cancel_order confirm Potrebna high orders:write Cancel an existing order by order ID. Only works for orders not yet delivered.
bulk_create_orders confirm Potrebna high orders:write Create up to 100 delivery orders in one call. Returns a per-order success/failure summary; partial failures do not abort the batch unless st...
reroute_to_address confirm Potrebna high orders:write Change the delivery address of an order that has not been picked up yet: cancels the original order and recreates it with the new address. R...
update_delivery_instruction Potrebna medium orders:write Update only the delivery_instruction field on an existing order (PATCH). Safer than full order rewrite.
update_order_note Potrebna medium orders:write Update only the internal note field on an existing order (PATCH).
update_time_window_by_refs Potrebna medium orders:write Bulk-update delivery time windows (and optional schedule_date) for orders identified by external refs.
hold_order confirm Potrebna high orders:write Put an order on HOLD so it is not dispatched until release_order. HIGH-RISK: requires confirm=true.
release_order confirm Potrebna high orders:write Release an order from HOLD back to NEW_ORDER. HIGH-RISK: requires confirm=true.
propose_write Potrebna low approvals:read Queue a write/high-risk tool for human approval instead of executing it. Reviewers use list_pending_approvals + approve_pending_write.
list_pending_approvals Potrebna low approvals:read List pending MCP write approvals for this business (or mine_only).
approve_pending_write confirm Potrebna high approvals:write Approve and execute a pending write proposal. HIGH-RISK: requires confirm=true. Reviewer must have scopes for the underlying tool.
reject_pending_write Potrebna medium approvals:write Reject a pending write proposal without executing it.
get_routes Potrebna low routes:read List delivery routes with their status, assigned driver, and order count.
get_route_detail Potrebna low routes:read Get one route with its stop/order list. Prefer this over get_routes when you already know route_id.
get_drivers Potrebna low drivers:read List drivers for the authenticated business (ids, names, capacity defaults). Use driver id with get_driver_routes_today or route tools.
get_driver_routes_today Potrebna low routes:read, drivers:read Orders assigned to a driver on a given date (defaults to today). Useful for "what is driver X running today?"
get_build_route_options Potrebna low routes:read List routing engines, balance modes, capacity types, and defaults before calling build_route.
build_route confirm Potrebna high routes:write Build/optimize a delivery route (POST /api/v3/client/build-route). HIGH-RISK: assigns orders to drivers. Call get_build_route_options first....
order_snapshot Potrebna low orders:read One-call order context for support: order detail + operation events + public tracking (when tracking number is known). Pass order_id or trac...
list_exceptions Potrebna low orders:read List failed/returned/exception-like orders for a schedule date (default today). Read-only ops triage helper.
get_shipping_methods Potrebna low labels:read List available shipping carriers/methods. Returns IDs and names — use the ID for rate/label tools.
get_shipping_rate Potrebna low labels:read Get a shipping cost quote. Dry-run — no label created. Returns rate options with pricing and transit time.
create_shipping_label Potrebna medium labels:write Book a shipment with a carrier and generate a shipping label with tracking numbers.
quote_and_ship Potrebna medium labels:write One-shot: rate across all enabled carriers, pick the best one by strategy, create the shipping label, return tracking number. Saves 3+ tool...
compare_all_carriers Potrebna low labels:read Get rate quotes from every enabled carrier for the same shipment, in one call. Returns a sorted comparison (cheapest first) with price + tra...
search_address Potrebna low address:read Search and resolve addresses by postal code or free-text query. Returns structured address suggestions.
daily_digest Potrebna low analytics:read One-call summary of today's logistics activity: total orders, by status, exceptions (failed/returned), pending pickups. Designed as the firs...
get_orders_summary Potrebna low analytics:read Aggregate order metrics over a time window: counts by status, top carriers, on-time rate, exception count. Use period=today|week|month or pa...
get_account_credits Potrebna low analytics:read Get the authenticated customer's wallet balance, currency, and recent topup history. Customer (B2C) accounts only — returns an error for cli...
get_warehouses Potrebna low wms:read List WMS warehouses available to the authenticated business.
get_inventory Potrebna low wms:read Query WMS inventory (POST /api/v1/wms/inventory). Pass filters supported by the inventory API (sku, warehouse_id, etc.).
list_datasets Potrebna low datasets:read List custom datasets available to the business.
get_dataset Potrebna low datasets:read Get one dataset by id (metadata/columns).
list_dataset_groups Potrebna low datasets:read List groups inside a dataset.
search_dataset_records Potrebna low datasets:read Search records across groups in a dataset (POST .../search).
list_alliances Potrebna low alliance:read List alliances the authenticated business belongs to.
get_alliance Potrebna low alliance:read Get one alliance by id.
list_alliance_members Potrebna low alliance:read List members of an alliance.
list_accessible_clients Potrebna low alliance:read List clients accessible via alliance partnerships.
quote_delivery Potrebna low orders:read Get the local delivery price for a shipment before creating the order (POST /api/v1/orders/rate). No order is created.
print_local_label Potrebna low orders:read Get the printable label of a local delivery order as a base64 PDF, with its label code and tracking numbers (POST /api/v2/shipping/getShippi...
bulk_create_orders_async confirm Potrebna high orders:write Queue a large batch of delivery orders for creation (POST /api/v1/client/batchOrderCreateAsync). Returns an asyncId at once; read the per-or...
get_async_batch_result Potrebna low orders:read Read the status and per-order results of a batch queued with bulk_create_orders_async (GET /api/v1/client/async/{id}).
get_shipping_detail confirm Potrebna high labels:write Get the carrier shipping detail of a label order: tracking numbers, price and the label (POST /api/v1/labelservice/getShippingDetail). The f...
download_shipping_label confirm Potrebna high labels:write Download the label PDF of an order as base64 (POST /api/v1/shipping/getShippingLabel with base64). For a carrier label order whose label was...
cancel_shipping_label confirm Potrebna high labels:write Cancel (void) a carrier label with the carrier (POST /api/v1/labelservice/cancelShippingLabel). Pass the order id, or one package tracking n...
submit_shipping_information confirm Potrebna high labels:write Submit the shipping information of one or more label orders to their carriers (POST /api/v1/labelservice/submitShippingInformation).
end_of_day confirm Potrebna high labels:write Close the day with the carriers: submit the shipping information of every open label order (POST /api/v1/labelservice/endofday).
uniorder_rate Potrebna low uniorder:read Quote one shipment across self delivery and, with quote_labels=true, every label carrier service of the account (POST /api/v1/uniorder/rate)...
uniorder_create Potrebna medium uniorder:write Create an order at a rate_id from uniorder_rate (POST /api/v1/uniorder). The rate decides the service: a self delivery order, or a label ord...
uniorder_get Potrebna low uniorder:read Read one uniorder order in the uniorder shape (GET /api/v1/uniorder/{orderId}).
uniorder_label Potrebna low uniorder:read Get the label PDF of a uniorder order, base64 (GET /api/v1/uniorder/{orderId}/label).
uniorder_tracking Potrebna low uniorder:read Get the tracking timeline of a uniorder order (GET /api/v1/uniorder/{orderId}/tracking).
uniorder_cancel confirm Potrebna high uniorder:write Cancel a uniorder order, self delivery or label (POST /api/v1/uniorder/{orderId}/cancel). A label order voids its carrier label.
uniorder_purchase_label confirm Potrebna high uniorder:write Buy the carrier label of a uniorder label order that was kept without one (LABEL_PURCHASE_FAILED), at the service chosen at create or at a n...
uniorder_rate_batch Potrebna low uniorder:read Quote up to 20 shipments in one call (POST /api/v1/uniorder/rate/batch). Each shipment takes the uniorder_rate shape plus an optional refere...
uniorder_create_batch confirm Potrebna high uniorder:write Create up to 20 orders in one call, each at its own rate_id (POST /api/v1/uniorder/batch). Returns a result per order.
uniorder_rate_batch_async Potrebna low uniorder:read Queue up to 500 shipments to quote (POST /api/v1/uniorder/rate/batch-async). Returns a job id; read the quotes with uniorder_job.
uniorder_create_batch_async confirm Potrebna high uniorder:write Queue up to 500 orders to create, each at its own rate_id (POST /api/v1/uniorder/batch-async). Returns a job id; read the results with unior...
uniorder_job Potrebna low uniorder:read Read a queued uniorder batch and, once done, its results (GET /api/v1/uniorder/jobs/{jobId}).
list_shipping_services Potrebna low customer_shipping:read List the shipping services the customer may order (GET /api/v1/customer/shipping-orders/services). Step 1 of a shipping order. Needs a custo...
get_shipping_service_config Potrebna low customer_shipping:read Get one shipping service's order form: warehouses, surcharges, packaging, supplies, units and form fields (GET /api/v1/customer/shipping-ord...
estimate_shipping_order Potrebna low customer_shipping:read Estimate the price of a shipping order on a service (POST /api/v1/customer/shipping-orders/services/{serviceCode}/estimate-price). No order...
create_shipping_order Potrebna medium customer_shipping:write Create a shipping order on a service (POST /api/v1/customer/shipping-orders/services/{serviceCode}/orders). Note the package list field is `...
pay_shipping_order confirm Potrebna high customer_shipping:write Pay the full remaining balance of a shipping order from the customer wallet (POST /api/v1/customer/shipping-orders/{id}/pay). A fully paid p...
get_shipping_order Potrebna low customer_shipping:read Get one shipping order of the customer (GET /api/v1/customer/shipping-orders/{id}). Needs a customer account token.
list_shipping_orders Potrebna low customer_shipping:read List the customer's shipping orders on one service, paginated (GET /api/v1/customer/shipping-orders/services/{serviceCode}/orders). Needs a...
cancel_shipping_order confirm Potrebna high customer_shipping:write Cancel a pending or confirmed shipping order of the customer (POST /api/v1/customer/shipping-orders/{id}/cancel). Needs a customer account t...
get_storage_order_config Potrebna low storage:read Get what a storage order form needs: warehouses, packaging, supplies, pickup timeframes, units, surcharges and form fields (GET /api/v1/cust...
quote_storage_order Potrebna low storage:read Calculate the price of a storage order before creating it (POST /api/v1/customer/storage-orders/calculate-price). Storage order form fields...
create_storage_order Potrebna medium storage:write Create a storage order (POST /api/v1/customer/storage-orders). Storage order form fields as returned by get_storage_order_config: warehouse_...
pay_storage_order confirm Potrebna high storage:write Pay a storage order from the customer wallet (POST /api/v1/customer/storage-orders/{id}/pay). Needs a customer account token.
get_storage_order Potrebna low storage:read Get one storage order of the customer, with can_edit, can_cancel and each package's received flag (GET /api/v1/customer/storage-orders/{id})...
list_storage_orders Potrebna low storage:read List the customer's storage orders, paginated (GET /api/v1/customer/storage-orders). Needs a customer account token.
cancel_storage_order confirm Potrebna high storage:write Cancel a storage order of the customer while its status allows it (POST /api/v1/customer/storage-orders/{id}/cancel). Needs a customer accou...
list_stored_packages Potrebna low storage:read List the customer's stored packages that can be shipped out: received, not stocked out and not held by another ship-out, grouped by storage...
list_shipout_services Potrebna low storage:read List the shipping services that ship out from a warehouse (GET /api/v1/customer/shipout-orders/services). pricing_method 1 = priced at once,...
estimate_shipout Potrebna low storage:read Estimate the price of a ship-out (POST /api/v1/customer/shipout-orders/services/{serviceCode}/estimate). A manually priced service answers h...
create_shipout Potrebna medium storage:write Create a ship-out of stored packages from one warehouse (POST /api/v1/customer/shipout-orders/services/{serviceCode}/orders). The chosen pac...
pay_shipout confirm Potrebna high storage:write Pay a priced ship-out from the customer wallet (POST /api/v1/customer/shipout-orders/{id}/pay). Default is the full remaining balance. Needs...
get_shipout Potrebna low storage:read Get one ship-out of the customer with paid amount, remaining balance, can_be_paid, can_be_cancelled and its packages (GET /api/v1/customer/s...
list_shipouts Potrebna low storage:read List the customer's ship-outs, paginated (GET /api/v1/customer/shipout-orders). Needs a customer account token.
cancel_shipout confirm Potrebna high storage:write Cancel a pending or confirmed ship-out and release its stored packages (POST /api/v1/customer/shipout-orders/{id}/cancel). A payment is not...
otep_client_tracking Potrebna low orders:read Get the OTEP timeline and details (addresses, dates, proof of delivery, item counts) of one of your own shipments: a parcel tracking number,...
otep_client_locker_storage Potrebna low orders:read Get the OTEP timeline (storage profile) and details of one of your locker storage rentals, by rental id. Requires a token.

Podešavanje po klijentu

Izaberite svog AI klijenta ispod za prilagođena uputstva za podešavanje:

Claude Code

Claude Code čita MCP konfiguraciju iz .mcp.json datoteke u korenu projekta ili home direktorijumu.

  1. Kreirajte .mcp.json datoteku u korenu projekta (ili ~/.claude/.mcp.json za globalni pristup).
  2. Dodajte sledeću konfiguraciju:
.mcp.json
{
  "mcpServers": {
    "mili-express": {
      "type": "url",
      "url": "https://api.miliexpress.com/mcp"
    }
  }
}

Za korišćenje autentifikovanih alata, dodajte polje headers:

.mcp.json (sa autentifikacijom)
{
  "mcpServers": {
    "mili-express": {
      "type": "url",
      "url": "https://api.miliexpress.com/mcp",
      "headers": {
        "Authorization": "Bearer <your-api-token>",
        "X-MCP-Profile": "ops-readonly"
      }
    }
  }
}

Cursor

Cursor podržava MCP servere kroz svoju ugrađenu konfiguraciju.

  1. Kreirajte .cursor/mcp.json datoteku u korenu projekta.
  2. Dodajte sledeću konfiguraciju:
  3. Restartujte Cursor da biste učitali novi MCP server.
.cursor/mcp.json
{
  "mcpServers": {
    "mili-express": {
      "type": "url",
      "url": "https://api.miliexpress.com/mcp"
    }
  }
}

Windsurf

Windsurf koristi globalnu MCP konfiguracionu datoteku.

  1. Uredite ~/.codeium/windsurf/mcp_config.json (kreirajte ako ne postoji).
  2. Dodajte sledeću konfiguraciju:
~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "mili-express": {
      "serverUrl": "https://api.miliexpress.com/mcp"
    }
  }
}

ChatGPT

ChatGPT podržava MCP konekcije za Plus, Pro i Team korisnike.

  1. Otvorite ChatGPT i idite na Podešavanja.
  2. Navigirajte do odeljka „Povezane aplikacije" ili „Alati".
  3. Dodajte novi MCP server sa URL-om endpointa prikazanim iznad.
MCP podrška ChatGPT-a može varirati u zavisnosti od vašeg plana i regiona. Pogledajte OpenAI dokumentaciju za najnovija uputstva.

Tehnički detalji