Rudko — vertebrologist (Chernivtsi, Ukraine)
Book a Ukrainian-speaking vertebrologist in Chernivtsi, Ukraine: find slots and book for the user.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"vertebrolog": {
"url": "https://rudko.site/mcp"
}
}
}Remote endpoints
https://rudko.site/mcpstreamable-httpWhat it can do
Tool inventory
Tools (7)
🟢get_availability(date)
Free appointment slots for the vertebrologist (Chernivtsi). Optional date (YYYY-MM-DD): without it — all nearest available days. Read-only (does not book).
Input Schema
{
"type": "object",
"properties": {
"date": {
"description": "YYYY-MM-DD (optional)",
"type": "string"
}
}
}🟢get_doctor_info
About the vertebrologist: specialty, what he treats, address, slot length, rules (one appointment per day), and how to book.
Input Schema
{
"type": "object",
"properties": {}
}🟢list_current_bookings
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.
Input Schema
{
"type": "object",
"properties": {}
}🟢list_past_bookings(limit, offset)
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.
Input Schema
{
"type": "object",
"properties": {
"limit": {
"type": "integer"
},
"offset": {
"type": "integer"
}
}
}⚪book(date, time)
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.
Input Schema
{
"type": "object",
"properties": {
"date": {
"type": "string"
},
"time": {
"type": "string"
}
},
"required": [
"date",
"time"
]
}⚪reschedule(date, from, to)
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).
Input Schema
{
"type": "object",
"properties": {
"date": {
"type": "string"
},
"from": {
"type": "string"
},
"to": {
"type": "string"
}
},
"required": [
"date",
"from",
"to"
]
}🔴cancel(booking_id)
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.
Input Schema
{
"type": "object",
"properties": {
"booking_id": {
"type": "string"
}
},
"required": [
"booking_id"
]
}Recommended Prompts
get_availabilityget_availabilitylist_current_bookingslist_current_bookingslist_current_bookingsget_availabilityCommunity
Evidence