Rudko — vertebrologist (Chernivtsi, Ukraine)
by rudko.site · remote · no sign-in to list tools · v0.1.2 · published by site.rudko
Book a Ukrainian-speaking vertebrologist in Chernivtsi, Ukraine: find slots and book for the user.
7 tools: 1 can delete or cancel things, 1 do something that can't be undone, 1 change things and 4 only read.
Scanned Oct 21, 2026
- Deletes or cancels1Claude Code: deny: see these tools
- Can't be undone1Claude Code: ask: see these tools
- Changes things1Claude Code: ask: see these tools
- Only reads4Claude Code: allow: see these tools
1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http vertebrolog https://rudko.site/mcpFindings
Matches of fixed checks, with the text they matched.
- Warncancel
The server marks "cancel" not destructive (destructiveHint: false), and its own name, description or input give the class "destructive".
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "cancel" says "cancel": a word for removing or ending something.
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
7 tools
Deletes or cancels 1Claude Code: deny
cancelREAL action: cancels the user's appointment by booking_id (from list_current_bookings) IMMEDIATELY — no confirmation step.1 finding
Why it is in this group
- The name "cancel" says "cancel": a word for removing or ending something.
- The server marks it not destructive (destructiveHint: false), but an annotation never lowers a class.
Findings
- Warn
The server marks "cancel" not destructive (destructiveHint: false), and its own name, description or input give the class "destructive".
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "cancel" says "cancel": a word for removing or ending something.
Description, as the server wrote it 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.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: false
- title: Cancel appointment
Can't be undone 1Claude Code: ask
rescheduleREAL 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…No findings
Why it is in this group
- The name "reschedule" says "reschedule": a word for a change.
- The input addresses people (input.to): what it sends cannot be taken back.
Description, as the server wrote it 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).
Annotations the server declares
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
- readOnlyHint: false
- title: Reschedule appointment
Changes things 1Claude Code: ask
bookREAL action (not a simulation): creates a real appointment with the vertebrologist on the user's behalf.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it 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.
Annotations the server declares
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
- readOnlyHint: false
- title: Book appointment
Only reads 4Claude Code: allow
get_availabilityFree appointment slots for the vertebrologist (Chernivtsi).No findings
Why it is in this group
- The name "get_availability" says "get": a word for reading.
Description, as the server wrote it Free appointment slots for the vertebrologist (Chernivtsi). Optional date (YYYY-MM-DD): without it — all nearest available days. Read-only (does not book).
Annotations the server declares
- openWorldHint: true
- readOnlyHint: true
- title: Free slots
get_doctor_infoAbout the vertebrologist: specialty, what he treats, address, slot length, rules (one appointment per day), and how to book.No findings
Why it is in this group
- The name "get_doctor_info" says "get": a word for reading.
Description, as the server wrote it About the vertebrologist: specialty, what he treats, address, slot length, rules (one appointment per day), and how to book.
Annotations the server declares
- openWorldHint: false
- readOnlyHint: true
- title: About the doctor
list_current_bookingsThe user's current/upcoming appointments (booking_id, date, time, status), nearest first.No findings
Why it is in this group
- The name "list_current_bookings" says "list": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- openWorldHint: true
- readOnlyHint: true
- title: Current appointments
list_past_bookingsThe user's past appointments (booking_id, date, time, status), most recent first.No findings
Why it is in this group
- The name "list_past_bookings" says "list": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- openWorldHint: true
- readOnlyHint: true
- title: Past appointments
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 0.1.2. Values in angle brackets are yours to fill in.
claude mcp add --transport http vertebrolog https://rudko.site/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__vertebrolog__get_availability",
"mcp__vertebrolog__get_doctor_info",
"mcp__vertebrolog__list_current_bookings",
"mcp__vertebrolog__list_past_bookings"
],
"ask": [
"mcp__vertebrolog__book",
"mcp__vertebrolog__reschedule"
],
"deny": [
"mcp__vertebrolog__cancel"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as vertebrolog. Review it before you use it.