{"name":"io.github.makloai/yoya-booking","slug":"makloai-yoya-booking","title":"Yoya Booking","description":"Book meetings on a host's real availability. No auth - mirrors their public Yoya page.","url":"https://mcp.market/server/makloai-yoya-booking","rating":null,"grade":"C","score":57,"certified":false,"status":"active","category":"security","tags":["security"],"presence":{"score":8,"stars":null,"forks":null,"downloads_week":null,"last_push_at":null,"license":null},"uptime":{"percent":100,"checks":7,"ok":7,"last_checked_at":"2026-09-21T04:15:58.647Z","last_ok_at":"2026-09-21T04:15:58.647Z","latency_ms":175},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":null,"website":"https://yoya.ai","version":"1.0.0","remotes":[{"type":"streamable-http","url":"https://yoya.ai/api/mcp/book"}],"packages":[],"tools":[{"name":"book_meeting","description":"Creates a booking and sends invitations. 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.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"requestId":{"description":"Reuse the ID returned by preview_booking for retries.","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"slug":{"type":"string","minLength":1,"maxLength":2048},"name":{"type":"string","minLength":1,"maxLength":200},"email":{"type":"string","maxLength":320},"slotId":{"type":"string","pattern":"^s_\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}Z$"},"purpose":{"default":"","type":"string","maxLength":2000},"meetingType":{"type":"string","enum":["google_meet","zoom","in_person"]},"timezone":{"type":"string","maxLength":100},"fieldAnswers":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":60},"additionalProperties":{"type":"string","maxLength":2000}},"confirmationToken":{"type":"string","maxLength":1000},"confirmed":{"type":"boolean","const":true}},"required":["slug","name","email","slotId","confirmationToken","confirmed"],"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"cancel_booking","description":"Cancel using a private manage token. Ask the guest for explicit approval first; this sends cancellation notifications.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"token":{"type":"string","pattern":"^[a-f0-9]{64}$"},"confirmed":{"type":"boolean","const":true},"reason":{"type":"string","maxLength":500}},"required":["token","confirmed"],"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"get_booking","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"token":{"type":"string","pattern":"^[a-f0-9]{64}$"}},"required":["token"],"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"get_booking_page","description":"Read a public Yoya booking link or slug. Includes required guest fields and meeting options. No host account access.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"slug":{"type":"string","minLength":1,"maxLength":2048}},"required":["slug"],"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"list_available_times","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"slug":{"type":"string","minLength":1,"maxLength":2048},"timezone":{"type":"string","maxLength":100},"timeOfDay":{"type":"string","enum":["morning","afternoon","evening"]},"from":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"to":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"limit":{"default":10,"type":"integer","minimum":1,"maximum":50},"cursor":{"type":"string","pattern":"^s_\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}Z$"}},"required":["slug"],"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"preview_booking","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"requestId":{"description":"Reuse the ID returned by preview_booking for retries.","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"slug":{"type":"string","minLength":1,"maxLength":2048},"name":{"type":"string","minLength":1,"maxLength":200},"email":{"type":"string","maxLength":320},"slotId":{"type":"string","pattern":"^s_\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}Z$"},"purpose":{"default":"","type":"string","maxLength":2000},"meetingType":{"type":"string","enum":["google_meet","zoom","in_person"]},"timezone":{"type":"string","maxLength":100},"fieldAnswers":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":60},"additionalProperties":{"type":"string","maxLength":2000}}},"required":["slug","name","email","slotId"],"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"reschedule_booking","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"token":{"type":"string","pattern":"^[a-f0-9]{64}$"},"slotId":{"type":"string","pattern":"^s_\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}Z$"},"confirmed":{"type":"boolean","const":true},"reason":{"type":"string","maxLength":500}},"required":["token","slotId","confirmed"],"$schema":"https://json-schema.org/draft/2020-12/schema"}}],"scan":{"score":57,"grade":"C","scanned_at":"2026-09-20T20:12:16.570Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-20T20:12:16.531Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 760ms"]},"poisoning":{"score":15,"max":15,"notes":["7 tool descriptions checked"]},"auth":{"score":3,"max":15,"notes":["open endpoint exposes 2 write-action tools with no auth"]},"maintenance":{"score":3,"max":15,"notes":["no repository listed"]},"identity":{"score":2,"max":10,"notes":["no repository or website to verify"]}},"findings":[{"id":"auth.open-write","severity":"high","component":"auth","title":"Write-action tools reachable without authentication"},{"id":"maint.no-repo","severity":"low","component":"maintenance","title":"No source repository listed"}],"inputs":{"probes":[{"url":"https://yoya.ai/api/mcp/book","reachable":true,"authRequired":false,"latencyMs":760,"serverInfo":{"name":"yoya-booking","version":"2.0.0"}}],"packages":[],"repo":{"found":false},"icon":{"url":"https://yoya.ai/logo-180.png","source":"site","width":180,"height":180},"presence":{"stars":null,"forks":null,"downloadsWeek":null,"license":null,"lastPushAt":null,"score":8}}}},"grade_history":[],"reviews":[]}