Maintenance Due

एजेंट बनाने वाले

Maintenance Due पर Personal Agent Protocol

एक पर्सनल एजेंट Personal Agent Protocol v0.1 के ज़रिए मालिक के ड्यू बोर्ड और सर्विस लॉग तक पहुँच सकता है। मालिक हमारे पेज पर साइन इन करता है और देखना या बदलना चुनता है। Maintenance Due मुफ़्त है, और ड्यू का हिसाब किसी मॉडल को कॉल नहीं करता।

यह पेज पर्सनल एजेंट बनाने वालों के लिए है। अगर आप बस चाहते हैं कि Muse वैन का तेल समय पर रखे, तो for-your-agent पर प्रॉम्प्ट कॉपी करें। स्पेसिफ़िकेशन personalagentprotocol.org पर है।

खोज

GET https://maintenancedue.com/.well-known/poppy.json संगठन (maintenancedue.com), इश्यूअर https://maintenancedue.com, poppy:read और poppy:write वाला Direct Sign-In, और दो API बताता है: https://maintenancedue.com/mcp पर MCP सर्वर, और /api/v1 के तहत REST के लिए https://maintenancedue.com/openapi.json पर OpenAPI विवरण। /.well-known/oauth-authorization-server पर इश्यूअर मेटाडेटा poppy_domains में maintenancedue.com सूचीबद्ध करता है और /oauth/ के तहत टोकन, ऑथराइज़ेशन और रिवोकेशन एंडपॉइंट देता है।

Session और साइन इन

  1. अपना क्लाइंट प्रकाशित करें। आपका client_id एक https URL है जो आपका क्लाइंट मेटाडेटा डॉक्यूमेंट देता है, और jwks_uri व redirect_uris उसी डोमेन पर होते हैं। हर टोकन अनुरोध में उसी jwks_uri की कुंजी से साइन किया गया private_key_jwt क्लाइंट असर्शन होता है।
  2. एक Session शुरू करें। POST /oauth/token पर grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer भेजें, ऐसे असर्शन के साथ जिसका iss आपका client_id, sub User ID, और aud एक ही स्ट्रिंग https://maintenancedue.com/oauth/token हो, साथ में एक DPoP प्रूफ़। आपको साइन-आउट Session Token (token_type DPoP, एक घंटा) और एक session_id मिलता है। नवीनीकरण के लिए नए असर्शन के साथ session_id भेजें।
  3. मालिक को हमारे पेज पर भेजें। /oauth/authorize खोलें, response_type=code, अपने client_id और redirect_uri, scope=poppy:read poppy:write (या सिर्फ़ poppy:read), एक state, और PKCE S256 code_challenge के साथ। मालिक आपका नाम और डोमेन देखता है, View only या View and change चुनता है, फिर एक मुफ़्त शॉप बनाता है या अपने मौजूदा मेंबरशिप टोकन से साइन इन करता है। रीडायरेक्ट code, state और iss लौटाता है। जाँचें कि iss https://maintenancedue.com है।
  4. कोड बदलें। POST /oauth/token पर grant_type=authorization_code, code, redirect_uri, code_verifier और अपना session_id भेजें, साथ में क्लाइंट असर्शन और DPoP प्रूफ़। जवाब में refresh_token में Account Token (pat_…, 30 दिन), एक साइन-इन Session Token, और दिया गया scope होता है। आपने बदलने की पहुँच माँगी हो तब भी मालिक सिर्फ़ देखना चुन सकता है, इसलिए scope पढ़ें।
  5. बाद में साइन-इन के साथ शुरू करें। POST /oauth/token पर grant_type=refresh_token और Account Token भेजें, session_id के साथ या उसके बिना। किसी खोज के लिए रीड-ओनली टोकन पाने को scope=poppy:read जोड़ें। Account Token घुमाया नहीं जाता, इसलिए समानांतर Session उसे साझा कर सकते हैं।
  6. साइन आउट करें। POST /oauth/revoke पर Account Token और अपना क्लाइंट असर्शन भेजें। उससे साइन इन हर Session अपनी अगली कॉल पर साइन आउट हो जाता है और साइन-आउट के रूप में नवीनीकृत होता है।

बोर्ड को कॉल करना

REST, DPoP लेता है: /api/v1 की हर कॉल पर Authorization: DPoP <token> के साथ htm, htu और ath वाला नया DPoP प्रूफ़। MCP, Bearer लेता है: DPoP प्रूफ़ के बिना और resource=https://maintenancedue.com/mcp के साथ नवीनीकरण करें, फिर /mcp पर Authorization: Bearer <token> भेजें। Bearer Session Token सिर्फ़ /mcp पर चलता है, और वहाँ DPoP टोकन अस्वीकार होता है। MCP टूल, उनके स्कीमा, और MCP-Protocol-Version 2025-06-18 हेडर वही हैं जो ChatGPT इस्तेमाल करता है।

देखना या बदलना

poppy:read से /api/v1 पर हर GET और readOnlyHint वाला हर MCP टूल खुलता है, जैसे get_due, get_history और list_assets। poppy:write से बाकी हर REST मेथड और MCP टूल खुलता है, जैसे append_event, append_reading, create_service और set_rule, साथ में events/subscribe। scope न होने पर 403 मिलता है, और WWW-Authenticate में error="insufficient_scope" तथा ज़रूरी scope होता है। अकाउंट कॉल पर साइन-आउट टोकन 403 sign_in_required है। समय-सीमा पार टोकन, या साइन आउट से पहले जारी टोकन, 401 invalid_token है। संगठन के सदस्यों को आमंत्रित करना, हटाना या संगठन छोड़ना सदस्य के अपने टोकन से ही होता है।

mcp scope के साथ /oauth/authorize से बने ChatGPT कनेक्शन, और मौजूदा Muse मेंबरशिप टोकन, पहले की तरह काम करते रहते हैं। फ़ील्ड नाम skill.md पर हैं, REST अनुबंध openapi.json पर, और एजेंट इंडेक्स llms.txt पर।