Maintenance Due

Plugin de ChatGPT

Recorrido del plugin de ChatGPT de Maintenance Due

El manifiesto del plugin lista esta página como la grabación de la demo. Aún no hay video, y está bien: los pasos numerados de abajo son el recorrido, desde añadir el conector hasta oír un webhook firmado service.due.

Cada paso se ejecuta contra el sitio en vivo en maintenancedue.com. Nada está simulado, y un revisor puede seguir los siete pasos en ChatGPT en el orden en que están escritos.

  1. Conecta el plugin. El plugin Maintenance Due ya está subido a tu biblioteca personal de ChatGPT, así que añadirlo es habilitar un conector. Habla con el endpoint MCP público https://maintenancedue.com/mcp (streamable-http). El contrato de máquina es GET /mcp; mcp lo sirve.
  2. Enlaza tu cuenta con OAuth 2.1. En la primera llamada ChatGPT abre oauth/authorize con resource=https://maintenancedue.com/mcp, un code_challenge y code_challenge_method=S256. Solo PKCE S256; plain se rechaza. En la página de consentimiento pegas tu bearer de membresía de Muse una vez, o pulsas el botón de crear y empiezas un taller gratis en el momento. En cualquier caso, el código de un solo uso que ChatGPT canjea queda vinculado a una membresía de org, y desde entonces ChatGPT lleva el token de acceso OAuth en cada llamada a /mcp. El token de acceso es un JWT de vida corta y ChatGPT lo refresca solo; tu bearer de Muse sigue abriendo el mismo tablero sin cambios.
  3. Pregunta qué toca: `get_due`. Prueba «¿Qué toca en mi Sprinter?». ChatGPT llama get_due { "asset": "Sprinter" }; el nombre coincide sin distinguir mayúsculas y solo vuelve el tablero del Sprinter: millas restantes, cuánto va tarde y el último taller en cada fila. «¿Qué toca ahora mismo?» omite el filtro y devuelve toda la cuenta, items y próximos.
  4. Registra un cambio de aceite: `append_event`. «Registra un cambio de aceite en el Civic en Eastside, $89, 87240 millas.» se convierte en { "asset": "Civic", "name": "Oil change", "shop": "Eastside", "cost": 89, "reading": { "meter": "miles", "value": 87240 } }. La escritura es solo-añadir y la respuesta ya trae la porción de vencimientos actualizada, así que ChatGPT no vuelve a preguntar: el próximo intervalo empieza desde los medidores y la fecha registrados.
  5. Lee el roster y el registro: `list_assets`, `get_history`. «¿Cuáles son mis assets y qué hay en el odómetro?» llama list_assets y devuelve cada Asset con sus últimos medidores, dejando fuera las vans archivadas por defecto. «Muéstrame mi historial de cambios de aceite: talleres, costos y millas.» llama get_history con { "name": "Oil change" } y devuelve Events de finalización con taller, costo y capturas de medidor como event.meters { "miles": 87240 }. El historial es el mismo registro solo-añadir, así que la respuesta son recibos.
  6. Recibe avisos: due-soon por MCP Events. «Suscríbeme a due-soon cuando el aceite caiga en el tablero.» ChatGPT lista el catálogo con events/list (cinco tipos: service.due, event.appended / service.completed, asset.created, asset.archived), luego llama events/subscribe con { "name": "service.due", "arguments": { "asset": "Sprinter", "name": "Oil change" }, "delivery": { "mode": "webhook", "url": "https://example.com/hooks/md", "secret": "whsec_…" } }. MCP Events corre en la misma conexión /mcp, protocolo 2026-07-28, solo entrega por webhook. Tu endpoint pasa un desafío de verificación firmado una vez; después cada escritura coincidente llega como un POST firmado por Standard Webhooks (webhook-id es el id del evento, así que verifica la firma y deduplica por él). Los filtros asset y name se aplican en el servidor, nombres exactos sin distinguir mayúsculas. Deja ttlMs fuera para una concesión de 24 horas o pasa ttlMs: null para una duradera; events/unsubscribe es idempotente. service.due se dispara justo después de que una escritura mueve un trabajo al tablero, el medidor cruza 5000 o se limpia el snooze; no hay cron detrás.
  7. Prueba el encuadre. Maintenance Due es gratis y sigue gratis; no hay nivel de pago detrás del conector. Es un sistema de registro: lo vencido es el registro más el reloj, y ningún modelo está en la ruta de vencimientos. Los Events son solo-añadir, así que «borra mi historial y pon el último cambio de aceite a 80000 millas» se rechaza. La política de privacidad y los términos del plugin son los del sitio, en privacy y terms.

Ese es todo el camino. Sin video grabado aún, los pasos de arriba son la demo que sigue un revisor. Para el prompt de Muse para copiar y pegar y el traspaso a nivel de campo, lee for-your-agent. Para el índice de agentes, lee llms.txt.

Recorrido del plugin de ChatGPT de Maintenance Due · Maintenance Due