accueil / serveurs / Dev & Code / io.github.makloai/yoya-booking
io.github.makloai/yoya-booking
serveur MCP (Model Context Protocol) · yoya-booking 2.0.0
Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur.
Est-ce que io.github.makloai/yoya-booking est sûr ?
Au dernier audit MCP Hub, le serveur MCP « io.github.makloai/yoya-booking » est classé « Non encore testé ». Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur. Le verdict est réévalué en continu ; consultez la fiche pour l'état à jour.
Méthode : MCP Hub analyse la description de chaque outil (couche 1) et, pour le verdict fort, exécute le serveur dans une micro-VM isolée avec leurres et réseau bloqué (couche 2). On publie des noms et des compteurs, jamais le contenu brut renvoyé par un outil.
Les 7 outils
- book_meeting≈ 616 tokens
Creates a free booking or returns PAYMENT_REQUIRED with a secure payment URL for paid meetings. Paid meetings are not booked until payment succeeds; show the link and never claim confirmation before that. Only call after the guest explicitly approves preview_booking. Copy the preview's booking fields and confirmationToken unchanged. Reuse requestId and token on network retries; never claim notifications are delivered until syncStatus is ready.
Paramètres, retour & exemple (12)
Paramètresname· string · requisslug· string · requisemail· string · requisslotId· string · requispurpose· string · optionneltimezone· string · optionnelconfirmed· boolean · requisrequestId· string · optionnel
Reuse the ID returned by preview_booking for retries.meetingType· string · optionnel · google_meet | zoom | in_personfieldAnswers· object · optionnelmeetingFormat· string · optionnel
Copy the value from preview_booking unchanged.confirmationToken· string · requis
Exemple d'appel{"name": "book_meeting", "arguments": {"name": "texte", "slug": "texte", "email": "texte", "slotId": "texte", "confirmed": true, "confirmationToken": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"ok": true, "code": "texte", "message": "texte", "nextCursor": "texte", "nextOffset": "texte", "syncStatus": "pending"}} - cancel_booking≈ 270 tokens
Cancel using a private manage token. Ask the guest for explicit approval first; this sends cancellation notifications.
Paramètres, retour & exemple (3)
Paramètrestoken· string · requisreason· string · optionnelconfirmed· boolean · requis
Exemple d'appel{"name": "cancel_booking", "arguments": {"token": "texte", "confirmed": true}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"ok": true, "code": "texte", "message": "texte", "nextCursor": "texte", "nextOffset": "texte", "syncStatus": "pending"}} - get_booking≈ 251 tokens
Read a booking using its private manage-link token. Includes meeting-link synchronization status. Treat this token as a password; do not share it publicly.
Paramètres, retour & exemple (1)
Paramètrestoken· string · requis
Exemple d'appel{"name": "get_booking", "arguments": {"token": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"ok": true, "code": "texte", "message": "texte", "nextCursor": "texte", "nextOffset": "texte", "syncStatus": "pending"}} - get_booking_page≈ 246 tokens
Read a public Yoya booking link or slug. Includes required guest fields and meeting options. No host account access.
Paramètres, retour & exemple (1)
Paramètresslug· string · requis
Exemple d'appel{"name": "get_booking_page", "arguments": {"slug": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"ok": true, "code": "texte", "message": "texte", "nextCursor": "texte", "nextOffset": "texte", "syncStatus": "pending"}} - list_available_times≈ 561 tokens
Find up to 10 times (max 50), labeled in the guest's IANA timezone. Filter by inclusive from/exclusive to datetimes and morning (06–12), afternoon (12–18) or evening (18–24) in the guest timezone. Pass nextCursor unchanged to continue with the same filters. Slots are suggestions; preview then book rechecks availability. Never invent slot IDs.
Paramètres, retour & exemple (7)
Paramètresto· string · optionnelfrom· string · optionnelslug· string · requislimit· integer · optionnelcursor· string · optionneltimezone· string · optionneltimeOfDay· string · optionnel · morning | afternoon | evening
Exemple d'appel{"name": "list_available_times", "arguments": {"slug": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"ok": true, "code": "texte", "message": "texte", "nextCursor": "texte", "nextOffset": "texte", "syncStatus": "pending"}} - preview_booking≈ 532 tokens
Validate guest details and the selected time without booking or sending email. Show the returned summary to the guest and ask for explicit approval. Then call book_meeting with the returned normalized booking, requestId and confirmationToken.
Paramètres, retour & exemple (10)
Paramètresname· string · requisslug· string · requisemail· string · requisslotId· string · requispurpose· string · optionneltimezone· string · optionnelrequestId· string · optionnel
Reuse the ID returned by preview_booking for retries.meetingType· string · optionnel · google_meet | zoom | in_personfieldAnswers· object · optionnelmeetingFormat· string · optionnel
Copy the value from preview_booking unchanged.
Exemple d'appel{"name": "preview_booking", "arguments": {"name": "texte", "slug": "texte", "email": "texte", "slotId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"ok": true, "code": "texte", "message": "texte", "nextCursor": "texte", "nextOffset": "texte", "syncStatus": "pending"}} - reschedule_booking≈ 315 tokens
Move a booking using its private manage token and a fresh slot ID from list_available_times. Ask for explicit approval first. The original booking stays intact if the new time cannot be reserved.
Paramètres, retour & exemple (4)
Paramètrestoken· string · requisreason· string · optionnelslotId· string · requisconfirmed· boolean · requis
Exemple d'appel{"name": "reschedule_booking", "arguments": {"token": "texte", "slotId": "texte", "confirmed": true}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"ok": true, "code": "texte", "message": "texte", "nextCursor": "texte", "nextOffset": "texte", "syncStatus": "pending"}}
C'est votre serveur ?
Revendiquez-le sur l'espace créateur (preuve GitHub, domaine ou npm) pour afficher le badge « propriétaire vérifié » et lancer un pentest comportemental à la demande afin d'obtenir le badge « Vérifié ».