{
 "name": "Angahi Mobility",
 "description": "Reservez des courses VTC Angahi au nom d'un utilisateur (agentic commerce).",
 "version": "1.0",
 "url": "https://angahi.ci/api/method/angahi_mobility.api.mcp.endpoint",
 "provider": {
  "organization": "Angahi",
  "url": "https://angahi.ci"
 },
 "capabilities": {
  "streaming": false,
  "pushNotifications": false
 },
 "authentication": {
  "schemes": [
   "X-Angahi-Agent-Token"
  ]
 },
 "defaultInputModes": [
  "application/json"
 ],
 "defaultOutputModes": [
  "application/json"
 ],
 "skills": [
  {
   "id": "estimate_ride",
   "name": "estimate_ride",
   "description": "Devis ferme d'une course (prix, ETA) ; renvoie un quote_id (2 min)."
  },
  {
   "id": "book_ride",
   "name": "book_ride",
   "description": "Reserve une course. confirm=1 obligatoire (engage la depense). Accepte un quote_id."
  },
  {
   "id": "get_status",
   "name": "get_status",
   "description": "Statut de la course (active ou par order_id)."
  },
  {
   "id": "book_scheduled",
   "name": "book_scheduled",
   "description": "Reserve une course PROGRAMMEE (scheduled_at futur obligatoire). confirm=1 obligatoire."
  },
  {
   "id": "cancel_ride",
   "name": "cancel_ride",
   "description": "Annule une course (immediate ou programmee) du delegant."
  },
  {
   "id": "list_history",
   "name": "list_history",
   "description": "Historique des courses du delegant (vue sure)."
  },
  {
   "id": "list_my_tokens",
   "name": "list_my_tokens",
   "description": "Liste les jetons delegues du meme compte (self-service ; jamais le secret)."
  },
  {
   "id": "plan_trip",
   "name": "plan_trip",
   "description": "Decompose une requete multi-intention (course, arret/colis, repas, course programmee, rappel) en plan chiffre. N'engage rien."
  },
  {
   "id": "execute_plan",
   "name": "execute_plan",
   "description": "Execute un plan previsualise. confirm=1 obligatoire (engage la depense)."
  },
  {
   "id": "get_plan",
   "name": "get_plan",
   "description": "Etat courant d'un plan (etapes, statuts, references)."
  },
  {
   "id": "discover_partners",
   "name": "discover_partners",
   "description": "Liste les partenaires verifies d'un domaine (restaurant/garage/insurer)."
  },
  {
   "id": "request_offer",
   "name": "request_offer",
   "description": "Demande une offre a un partenaire (dispo/devis/creneau). N'engage rien. criteria = objet JSON (items, budget, delivery_window, garage, vehicle, problem_type, estimated_amount...)."
  },
  {
   "id": "negotiate_offer",
   "name": "negotiate_offer",
   "description": "Negocie une offre : action = accept | reject | counter (counter_amount / counter_slot)."
  },
  {
   "id": "accept_offer",
   "name": "accept_offer",
   "description": "Accepte et reserve chez le partenaire. confirm=1 obligatoire (engage la depense)."
  },
  {
   "id": "get_offer",
   "name": "get_offer",
   "description": "Etat courant d'une offre (montant, statut, tours de negociation)."
  },
  {
   "id": "get_wallet_balance",
   "name": "get_wallet_balance",
   "description": "Solde du wallet du delegant et budget de delegation restant. Lecture seule."
  },
  {
   "id": "list_courses",
   "name": "list_courses",
   "description": "Catalogue de formation publie (recherche translingue FR/EN). Lecture seule ; inscription et paiement dans l'application Angahi."
  }
 ],
 "x-angahi-governance": {
  "data_residency": "region of operation",
  "kyc_verified_drivers": true,
  "minor_safety": true,
  "right_to_erasure": true,
  "local_ai": "Ollama (souverain)"
 }
}