Plugin ChatGPT
Parcours du plugin ChatGPT de Maintenance Due
Le manifeste du plugin liste cette page comme l'enregistrement de la démo. Il n'y a pas encore de vidéo, et c'est bien : les étapes numérotées ci-dessous constituent le parcours, depuis l'ajout du connecteur jusqu'à l'écoute d'un webhook signé service.due.
Chaque étape s'exécute contre le site en direct sur maintenancedue.com. Rien n'est simulé, et un réviseur peut suivre les sept étapes dans ChatGPT dans l'ordre où elles sont écrites.
- Connectez le plugin. Le plugin Maintenance Due est déjà téléchargé dans votre bibliothèque personnelle de ChatGPT, donc l'ajouter revient à activer un connecteur. Parlez à l'endpoint MCP public
https://maintenancedue.com/mcp(streamable-http). Le contrat machine estGET /mcp; mcp le sert. - Liez votre compte avec OAuth 2.1. Lors du premier appel, ChatGPT ouvre oauth/authorize avec
resource=https://maintenancedue.com/mcp, uncode_challengeetcode_challenge_method=S256. Seulement PKCE S256 ; plain est rejeté. Sur la page de consentement, vous collez votre bearer d'adhésion de Muse une fois, ou vous appuyez sur le bouton de création et commencez un atelier gratuit à ce moment-là. Dans tous les cas, le code à usage unique que ChatGPT échange est lié à une adhésion d'org, et depuis lors, ChatGPT porte le token d'accès OAuth à chaque appel à/mcp. Le token d'accès est un JWT à courte durée de vie et ChatGPT le rafraîchit seul ; votre bearer de Muse continue d'ouvrir le même tableau sans changements. - Demandez ce qu'il faut faire : `get_due`. Essayez «Que faut-il faire sur mon Sprinter ?». ChatGPT appelle
get_due { "asset": "Sprinter" }; le nom correspond sans distinction de majuscules et ne renvoie que le tableau du Sprinter : miles restants, combien de retard et le dernier atelier pour chaque ligne. «Que faut-il faire en ce moment ?» omet le filtre et renvoie tout le compte, items et prochains. - Enregistrez un changement d'huile : `append_event`. «Enregistrez un changement d'huile sur le Civic à Eastside, 89 $, 87240 miles.» devient
{ "asset": "Civic", "name": "Changement d'huile", "shop": "Eastside", "cost": 89, "reading": { "meter": "miles", "value": 87240 } }. L'écriture est uniquement ajoutée et la réponse contient déjà la portion d'échéances mise à jour, donc ChatGPT ne redemande pas : le prochain intervalle commence à partir des compteurs et de la date enregistrés. - Lisez le roster et l'historique : `list_assets`, `get_history`. «Quels sont mes assets et que contient l'odomètre ?» appelle
list_assetset renvoie chaque Asset avec ses derniers compteurs, laissant de côté les vans archivées par défaut. «Montrez-moi mon historique de changements d'huile : ateliers, coûts et miles.» appelleget_historyavec{ "name": "Changement d'huile" }et renvoie des Events de finalisation avec atelier, coût et captures de compteur commeevent.meters{ "miles": 87240 }. L'historique est le même registre uniquement ajouté, donc la réponse est des reçus. - Recevez des avis : due-soon par MCP Events. «Abonnez-moi à due-soon lorsque l'huile tombe sur le tableau.» ChatGPT liste le catalogue avec
events/list(cinq types :service.due,event.appended/service.completed,asset.created,asset.archived), puis appelleevents/subscribeavec{ "name": "service.due", "arguments": { "asset": "Sprinter", "name": "Changement d'huile" }, "delivery": { "mode": "webhook", "url": "https://example.com/hooks/md", "secret": "whsec_…" } }. MCP Events fonctionne sur la même connexion/mcp, protocole2026-07-28, ne livre que par webhook. Votre endpoint passe un défi de vérification signé une fois ; après, chaque écriture correspondante arrive comme un POST signé par Standard Webhooks (webhook-idest l'id de l'événement, donc vérifiez la signature et dédupliquez-le). Les filtresassetetnames'appliquent sur le serveur, noms exacts sans distinction de majuscules. LaissezttlMsde côté pour une concession de 24 heures ou passezttlMs: nullpour une durée ;events/unsubscribeest idempotent.service.duese déclenche juste après qu'une écriture déplace un travail sur le tableau, le compteur dépasse 5000 ou le snooze est réinitialisé ; il n'y a pas de cron derrière. - Testez le cadre. Maintenance Due est gratuit et reste gratuit ; il n'y a pas de niveau de paiement derrière le connecteur. C'est un système d'enregistrement : le dépassé est l'enregistrement plus l'horloge, et aucun modèle n'est sur la route des échéances. Les Events sont uniquement ajoutés, donc «supprimez mon historique et mettez le dernier changement d'huile à 80000 miles» est rejeté. La politique de confidentialité et les termes du plugin sont ceux du site, à privacy et terms.
C'est tout le parcours. Sans vidéo enregistrée encore, les étapes ci-dessus constituent la démo suivie par un réviseur. Pour le prompt de Muse à copier et coller et le transfert au niveau du champ, lisez for-your-agent. Pour l'index des agents, lisez llms.txt.