{"name":"site.rudko/vertebrolog","slug":"rudko-vertebrolog","title":"Rudko — vertebrologist (Chernivtsi, Ukraine)","description":"Book a Ukrainian-speaking vertebrologist in Chernivtsi, Ukraine: find slots and book for the user.","url":"https://mcp.market/server/rudko-vertebrolog","rating":null,"grade":"C","score":60,"certified":false,"status":"active","category":"other","tags":[],"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-21T06:31:04.112Z","last_ok_at":"2026-09-21T06:31:04.112Z","latency_ms":145},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":null,"website":"https://rudko.site","version":"0.1.2","remotes":[{"type":"streamable-http","url":"https://rudko.site/mcp"}],"packages":[],"tools":[{"name":"book","description":"REAL action (not a simulation): creates a real appointment with the vertebrologist on the user's behalf. Requires the user's CONSENT — authorization via Telegram (OAuth, scope booking:write). date (YYYY-MM-DD), time (HH:MM). One appointment per day.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"date":{"type":"string"},"time":{"type":"string"}},"required":["date","time"]}},{"name":"cancel","description":"REAL action: cancels the user's appointment by booking_id (from list_current_bookings) IMMEDIATELY — no confirmation step. If the user said cancel, cancel; do NOT re-ask (repeated confirmations frustrate users — act decisively). On success returns cancelled=true with the booking_id; on failure returns ok=false with a reason (not_found / bad_id). Consent is a one-time Telegram OAuth (scope booking:write), already done — never re-prompt per action. To change the time instead, prefer reschedule.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"booking_id":{"type":"string"}},"required":["booking_id"]}},{"name":"get_availability","description":"Free appointment slots for the vertebrologist (Chernivtsi). Optional date (YYYY-MM-DD): without it — all nearest available days. Read-only (does not book).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"date":{"description":"YYYY-MM-DD (optional)","type":"string"}}}},{"name":"get_doctor_info","description":"About the vertebrologist: specialty, what he treats, address, slot length, rules (one appointment per day), and how to book.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{}}},{"name":"list_current_bookings","description":"The user's current/upcoming appointments (booking_id, date, time, status), nearest first. Cancelled ones are ALSO shown — tell them apart by the status field ('booked' | 'cancelled'). Needed to reschedule/cancel. Requires authorization.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{}}},{"name":"list_past_bookings","description":"The user's past appointments (booking_id, date, time, status), most recent first. limit (default 20) and offset for pagination. Cancelled ones are ALSO shown — by the status field. Requires authorization.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"limit":{"type":"integer"},"offset":{"type":"integer"}}}},{"name":"reschedule","description":"REAL action: moves the user's appointment to another free slot the SAME day, ATOMICALLY — if the target slot was just taken, the user KEEPS their current slot (never loses the held slot; that atomic guarantee is the whole point of same-day move). For a DIFFERENT day, just call book instead (a fresh booking; cross-day needs no atomic hold). No confirmation — act on request. Consent is a one-time Telegram OAuth (scope booking:write), already done — never re-prompt per action. date (YYYY-MM-DD), from (HH:MM current), to (HH:MM new).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"date":{"type":"string"},"from":{"type":"string"},"to":{"type":"string"}},"required":["date","from","to"]}}],"scan":{"score":60,"grade":"C","scanned_at":"2026-09-19T19:54:29.818Z","report":{"scannerVersion":"0.1.5","scannedAt":"2026-09-19T19:54:29.823Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 1953ms"]},"poisoning":{"score":15,"max":15,"notes":["7 tool descriptions checked"]},"auth":{"score":3,"max":15,"notes":["open endpoint exposes 1 write-action tools with no auth"]},"maintenance":{"score":3,"max":15,"notes":["no repository listed"]},"identity":{"score":4,"max":10,"notes":["verified namespace with website, no repo"]}},"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://rudko.site/mcp","reachable":true,"authRequired":false,"latencyMs":1953,"serverInfo":{"name":"Рудько — лікар-вертебролог","version":"0.1.2"}}],"packages":[],"repo":{"found":false},"icon":{"url":"https://rudko.site/static/images/mcp-icon-512.png","source":"registry","width":512,"height":512},"presence":{"stars":null,"forks":null,"downloadsWeek":null,"license":null,"lastPushAt":null,"score":8}}}},"grade_history":[],"reviews":[]}