MCP

Colonne MCP

Connectez des agents IA en toute sécurité : User MCP pour les opérations, Developer MCP pour les intégrations — profils, confirm, dry-run et approbations.

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

Aperçu de la colonne MCP

Ce guide est la colonne MCP Superroute du Developer Center : les deux serveurs, la sécurité des agents et le catalogue d’outils en direct.

Qu'est-ce que MCP ?

Le Model Context Protocol (MCP) est un standard ouvert qui permet aux assistants IA comme Claude, Cursor et ChatGPT d'interagir avec des outils et services externes. Il permet à votre IA d'effectuer des actions réelles — comme suivre un colis — directement dans la conversation.

En configurant le serveur MCP de Superroute, votre assistant IA accède aux outils logistiques sans quitter votre flux de travail.

Deux serveurs MCP

Choisissez le bon serveur. Ne donnez pas le serveur Developer avec accès complet aux agents non supervisés.

Nom du serveur Point de terminaison Public Auth
superroute https://api.superlabel.ca/mcp Agents ops / support / métier Bearer + profil/scopes optionnels (plein accès si absent)
superroute-developer https://api.superlabel.ca/mcp/developer Développeurs d’intégration et agents de code Bearer de connexion préféré ; api_token d’outil en fin de vie

Démarrage rapide

Les outils publics comme le suivi de colis fonctionnent sans authentification. Ajoutez cette configuration à votre client MCP :

JSON
{
  "mcpServers": {
    "super-label": {
      "type": "url",
      "url": "https://api.superlabel.ca/mcp"
    }
  }
}
Essayez ! Après la configuration, demandez à votre assistant IA : « Suivre le colis SR100012345 »

Accès authentifié

Pour utiliser les outils nécessitant des permissions utilisateur, ajoutez votre token Bearer API à la configuration :

Placez toujours les jetons dans les en-têtes de connexion MCP — jamais dans les arguments d’outil ni les prompts.

JSON
{
  "mcpServers": {
    "super-label": {
      "type": "url",
      "url": "https://api.superlabel.ca/mcp",
      "headers": {
        "Authorization": "Bearer <your-api-token>",
        "X-MCP-Profile": "ops-readonly"
      }
    }
  }
}

Comment obtenir un token API

Appelez le point de terminaison de connexion avec vos identifiants :

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

La réponse inclura votre token d'accès :

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

Utilisez la valeur access_token dans l'en-tête Authorization de votre configuration MCP.

Modèle de sécurité des agents

User MCP est conçu pour le moindre privilège. Créez des jetons avec un profil MCP (défaut : ops lecture seule) ou passez des en-têtes.

Profils (X-MCP-Profile)

Paquets de scopes nommés. Préférez ops-readonly ou support pour agents non supervisés.

Profil Libellé Scopes
ops-readonly Ops lecture seule orders:read, labels:read, routes:read, drivers:read, analytics:read, address:read, approvals:read
support Support (service client) orders:read, analytics:read, address:read, approvals:read
ops-write Ops écriture (commandes + étiquettes + tournées) 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 lecture seule wms:read, orders:read
datasets-readonly Jeux de données lecture seule datasets:read
alliance-readonly Alliance lecture seule alliance:read
full Accès complet (tous les outils MCP) — pas pour agents non supervisés *
.mcp.json — configuration agent recommandée
{
  "mcpServers": {
    "super-label": {
      "type": "url",
      "url": "https://api.superlabel.ca/mcp",
      "headers": {
        "Authorization": "Bearer <ops-readonly-token>",
        "X-MCP-Profile": "ops-readonly"
      }
    }
  }
}

En-têtes optionnels

En-tête Objectif
Authorization: Bearer …Jeton Bearer API (niveau connexion).
X-MCP-ProfileProfil nommé : ops-readonly, support, ops-write, wms-readonly, datasets-readonly, alliance-readonly, full.
X-MCP-ScopesScopes explicites séparés par des virgules (remplace le profil).
X-MCP-Dry-Run: 1Prévisualiser les écritures sans mutation.
X-MCP-Require-Approval: 1Mettre les écritures à haut risque en file d’approbation humaine.

Confirmation haut risque

Ces outils exigent confirm=true sur tools/call (ou la file d’approbation) :

File d’approbation humaine

Les agents non supervisés doivent proposer les écritures ; un humain approuve.

  1. Agent : propose_write ou X-MCP-Require-Approval: 1
  2. Humain : MCP Approvals dans l’app ou list_pending_approvals
  3. Humain : approve_pending_write avec confirm=true ou reject_pending_write

Chemin UI web (connexion requise) : /mcp-approvals

Authentification Developer MCP

Préférez Authorization: Bearer sur la connexion. api_token par outil est déprécié et coupé après 2026-12-31.

Outils disponibles

Les outils suivants sont actuellement disponibles sur le serveur MCP : 47 outils live du catalogue serveur

Ce tableau est généré depuis UserMcpToolCatalog à la volée et reste synchronisé avec tools/list.

Outil Authentification Risque Scopes Descriptif
track_package Publique low Track a package by its tracking number. Returns delivery status, tracking events timeline, and proof of delivery if available.
otep_tracking Publique low Get the unified OTEP (Open Tracking Event Protocol) timeline for a tracking number — self-delivery, third-party and carrier events normalize...
get_capabilities Publique 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 Requise low orders:read List orders with filtering and pagination. Returns order details including status, tracking, and delivery info.
get_order_detail Requise low orders:read Get full details of a specific order by ID, including address, status, packages, and tracking info.
find_order Requise 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 Requise low orders:read Get the full audit trail for orders — every status change, who performed it, GPS coordinates, and photos.
create_order Requise 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 Requise high orders:write Cancel an existing order by order ID. Only works for orders not yet delivered.
bulk_create_orders confirm Requise 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 Requise 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 Requise medium orders:write Update only the delivery_instruction field on an existing order (PATCH). Safer than full order rewrite.
update_order_note Requise medium orders:write Update only the internal note field on an existing order (PATCH).
update_time_window_by_refs Requise medium orders:write Bulk-update delivery time windows (and optional schedule_date) for orders identified by external refs.
hold_order confirm Requise high orders:write Put an order on HOLD so it is not dispatched until release_order. HIGH-RISK: requires confirm=true.
release_order confirm Requise high orders:write Release an order from HOLD back to NEW_ORDER. HIGH-RISK: requires confirm=true.
propose_write Requise 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 Requise low approvals:read List pending MCP write approvals for this business (or mine_only).
approve_pending_write confirm Requise 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 Requise medium approvals:write Reject a pending write proposal without executing it.
get_routes Requise low routes:read List delivery routes with their status, assigned driver, and order count.
get_route_detail Requise low routes:read Get one route with its stop/order list. Prefer this over get_routes when you already know route_id.
get_drivers Requise 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 Requise 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 Requise low routes:read List routing engines, balance modes, capacity types, and defaults before calling build_route.
build_route confirm Requise 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 Requise 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 Requise low orders:read List failed/returned/exception-like orders for a schedule date (default today). Read-only ops triage helper.
get_shipping_methods Requise low labels:read List available shipping carriers/methods. Returns IDs and names — use the ID for rate/label tools.
get_shipping_rate Requise low labels:read Get a shipping cost quote. Dry-run — no label created. Returns rate options with pricing and transit time.
create_shipping_label Requise medium labels:write Book a shipment with a carrier and generate a shipping label with tracking numbers.
quote_and_ship Requise 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 Requise 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 Requise low address:read Search and resolve addresses by postal code or free-text query. Returns structured address suggestions.
daily_digest Requise 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 Requise 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 Requise 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 Requise low wms:read List WMS warehouses available to the authenticated business.
get_inventory Requise low wms:read Query WMS inventory (POST /api/v1/wms/inventory). Pass filters supported by the inventory API (sku, warehouse_id, etc.).
list_datasets Requise low datasets:read List custom datasets available to the business.
get_dataset Requise low datasets:read Get one dataset by id (metadata/columns).
list_dataset_groups Requise low datasets:read List groups inside a dataset.
search_dataset_records Requise low datasets:read Search records across groups in a dataset (POST .../search).
list_alliances Requise low alliance:read List alliances the authenticated business belongs to.
get_alliance Requise low alliance:read Get one alliance by id.
list_alliance_members Requise low alliance:read List members of an alliance.
list_accessible_clients Requise low alliance:read List clients accessible via alliance partnerships.

Configuration par client

Sélectionnez votre client IA ci-dessous pour des instructions de configuration adaptées :

Claude Code

Claude Code lit la configuration MCP depuis un fichier .mcp.json à la racine du projet ou dans le répertoire personnel.

  1. Créez un fichier .mcp.json à la racine de votre projet (ou ~/.claude/.mcp.json pour un accès global).
  2. Ajoutez la configuration suivante :
.mcp.json
{
  "mcpServers": {
    "super-label": {
      "type": "url",
      "url": "https://api.superlabel.ca/mcp"
    }
  }
}

Pour utiliser les outils authentifiés, ajoutez le champ headers :

.mcp.json (avec authentification)
{
  "mcpServers": {
    "super-label": {
      "type": "url",
      "url": "https://api.superlabel.ca/mcp",
      "headers": {
        "Authorization": "Bearer <your-api-token>",
        "X-MCP-Profile": "ops-readonly"
      }
    }
  }
}

Cursor

Cursor prend en charge les serveurs MCP via sa configuration intégrée.

  1. Créez un fichier .cursor/mcp.json à la racine de votre projet.
  2. Ajoutez la configuration suivante :
  3. Redémarrez Cursor pour charger le nouveau serveur MCP.
.cursor/mcp.json
{
  "mcpServers": {
    "super-label": {
      "type": "url",
      "url": "https://api.superlabel.ca/mcp"
    }
  }
}

Windsurf

Windsurf utilise un fichier de configuration MCP global.

  1. Éditez ~/.codeium/windsurf/mcp_config.json (créez-le s'il n'existe pas).
  2. Ajoutez la configuration suivante :
~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "super-label": {
      "serverUrl": "https://api.superlabel.ca/mcp"
    }
  }
}

ChatGPT

ChatGPT prend en charge les connexions MCP pour les utilisateurs Plus, Pro et Team.

  1. Ouvrez ChatGPT et accédez aux Paramètres.
  2. Naviguez vers la section « Applications connectées » ou « Outils ».
  3. Ajoutez un nouveau serveur MCP avec l'URL du point de terminaison affichée ci-dessus.
Le support MCP de ChatGPT peut varier selon votre forfait et votre région. Consultez la documentation OpenAI pour les instructions les plus récentes.

Détails techniques