Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Changed the definition of "create_booking"
⟨95 unchanged words⟩ they connected one, and the invitee getsitsainvitation.confirmation email with a calendar file (.ics). Keep `manageUrl` and `token`: they are the ⟨37 unchanged words⟩
⟨57 unchanged words⟩ "the invitee's email address, which gets the confirmation and its calendarinvitationfile","format":"email","type":"string ⟨257 unchanged words⟩
Changed the definition of "create_booking"
⟨114 unchanged words⟩ maxLength(2000)","type":"string"},"phone":{"description":"the invitee's phone number with its country code, like +1 415 555 0134: required when the event type is a phone call (whereKind phone on get_public_profile), where the host calls them","maxLength":40,"minLength":0,"title":"maxLength(40)","type":"string"},"repeat":{"additionalProperties":false,"description":"book ⟨162 unchanged words⟩
Changed the definition of "create_booking"
{"additionalProperties":false,"properties":{"cover":{"description":"leave it out: the id of the painting the booking page showed, when the event type shows a different one each booking (cover \"hand\", \"light\" or \"still\"), so the booking keeps it. Anything else is ignored, and Tempi picks one","maxLength":40,"title":"maxLength(40)","type":"string"},"email":{"description":"the invitee's email address ⟨224 unchanged words⟩
Changed the definition of "check_series", "create_booking", "join_waitlist" and 1 more
⟨24 unchanged words⟩ 1, 2 or 4 weeks at thesamehost'slocalclock time, and whether each is free. Pass the invitee's `timezone` to get each meeting's `when` in it: where clocks change on other dates than the host's, some meetings move for the invitee, and `message` says which. Book it with create_booking and `repeat` when `bookable` ⟨21 unchanged words⟩
⟨34 unchanged words⟩ into a number","type":"string"}],"description":"how many meetings, first included (2 up to the event type's repeatMax)"},"every":{"anyOf":[{"description" ⟨19 unchanged words⟩ into a number","type":"string"}]
Changed the definition of "get_available_slots"
⟨77 unchanged words⟩ open times, `next` is the next one. When `timezone` was an abbreviation that names more than one zone (CST, IST, BST), `timezoneNote` says which one was used: check it with the person. For new times for an existing booking, also ⟨18 unchanged words⟩
Changed the definition of "get_public_profile"
⟨25 unchanged words⟩ their bookable event types, with duration, price, andhosts.hosts with their time zones (`hostTimezones`, so you can say what time a slot is for them). A handle from before a rename also works. ⟨10 unchanged words⟩
Changed the definition of "cancel_booking_as_invitee", "check_series", "create_booking" and 5 more
⟨14 unchanged words⟩ :"boolean"},"id":{"description":"athestringbookingatidleastfrom1create_booking,character(s)orlong","minLength":1,"title":"minLength(1)its manageUrl","type":"string"},"reason":{"description":"awhystringthe
Changed the definition of "create_booking"
⟨44 unchanged words⟩ ,"type":"string"},"name":{"allOf":[{"$ref":"#/$defs/Trim"}],"description":"the invitee's full name"},"notes":{"description":"a string ⟨144 unchanged words⟩
Changed the definition of "join_waitlist"
⟨25 unchanged words⟩ the status: pending, approved (sign inattoAPP_URL/loginthe Tempi web app), rejected, or open (no waitlist, ⟨14 unchanged words⟩
Changed the definition of "create_booking"
⟨8 unchanged words⟩ `slots` from get_available_slots. Free events are confirmed atonce.once, unless the event type has `requiresApproval`: then it's a request (status=pending_approval) that holds the time until a host approves or declines it, and the invitee hears either way by email. Tell the human it isn't confirmed yet. Paid events return status=pending_payment and a `paymentUrl`. Give ⟨59 unchanged words⟩
Certificate recorded, valid to 2026-12-24
Authorization not required
Unknown → Live
First tool surface recorded: 8 tools (server version 1.0.0)
https://meettempi.com/mcp (mcp_streamable_http) — from mcp_registry, with the record
Showing the latest 15 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
⟨39 unchanged words⟩ and the invitee hears either way by email. Nobody answering by its start (`holdExpiresAt`) lets it lapse. Tell the human it isn't confirmed yet. Paid ⟨84 unchanged words⟩
⟨77 unchanged words⟩ 1, 2 or 4 weeks at thesamehost'slocalclock time, when the event type's repeatMax allows. All or nothing: check_seriesfirstfirst. The result's `series.meetings` give each start as `when` in the invitee's time zone, and `series.clockNote` says when that moves","properties":{"count":{"description": ⟨113 unchanged words⟩
⟨11 unchanged words⟩ :"string"},"name":{"description":"athestringperson’s name (at most 100character(scharacters)long","maxLength":100,"minLength":0,"title ⟨3 unchanged words⟩ :"string"},"note":{"description":"aanythingstringtheatadminsmostshould1000know,character(s)e.g.longwhat you want to use Tempi for","maxLength":1000,"minLength":0,"title ⟨32 unchanged words⟩
⟨32 unchanged words⟩ over. Not possible after `changeableUntil` (409 change_too_late). A request (status=pending_approval) can’t be moved: cancel it and request another time.
{"$defsadditionalProperties":false,"properties":{"NumberFromStringcount":{"anyOf":[{"description":"how many meetings, first included (2 up to the event type's repeatMax)","maximum":52,"minimum":2,"title":"between(2, 52)","type":"integer"},{"description":"a string to be decoded into a number","type":"string"}]},"additionalPropertiesevery":false,{"propertiesanyOf":[{"countdescription":{"$refweeks between meetings: 1, 2 or 4","enum":[1,2,4],"#/$defs/NumberFromStringtype":"number"},{"everydescription":{"$refa string to be decoded into a number","type":"#/$defs/NumberFromStringstring"}]},"handle":{"description":"1-40 lowercase letters, digits oradasheshandle,startingtheandfirstendingpartwithof aletterbookingorlinkdigit","pattern(\":acme\"^[a-z0-9](?:[a-z0-9-]{0,38}[a-z0-9]in meettempi.com/acme/demo)?$, or the whole link","type":"string"},"slug":{"description":"1-40 lowercaseanletters,eventdigitstypeorslugdashes,fromstartingget_public_profileand(\"demo\"endinginwithmeettempi.com/acme/demo),aorlettertheorwholedigit","pattern":"^[a-z0-9](?:[a-z0-9-]{0,38}[a-z0-9])?$link","type":"string"},"start":{"description":"one of the `slots` values from get_available_slots, as given (ISO in UTC)","format":"date-time","type":"string"} ⟨8 unchanged words⟩
⟨105 unchanged words⟩ view, reschedule or cancel later. 409 slot_unavailablemeanssays why the timewascan'tjustbetaken:bookedfetchandslotslistsagain.the `nearest` open times. The result's `when` is the start in the invitee's time zone, to tell them.
{"$defsadditionalProperties":false,"properties":{"Trimemail":{"description":"athestringinvitee'sthatemailwilladdress,bewhichtrimmed","type":"string"}},"additionalPropertiesgets the calendar invitation":false,"properties":{"email":{"format":"email","type":"string"},"handle":{"description":"1-40 lowercase letters, digits oradasheshandle,startingtheandfirstendingpartwithof aletterbookingorlinkdigit","pattern(\":acme\"^[a-z0-9](?:[a-z0-9-]{0,38}[a-z0-9]in meettempi.com/acme/demo)?$, or the whole link","type":"string"},"name":{"$refdescription":"#/$defs/Trimthe invitee's full name","type":"string"},"notes":{"description":"aanythingstringtheatinviteemostwants2000thecharacter(s)hostlongto know","maxLength":2000,"minLength":0,"title ⟨80 unchanged words⟩ :"object"},"slug":{"description":"1-40 lowercaseanletters,eventdigitstypeorslugdashes,fromstartingget_public_profileand(\"demo\"endinginwithmeettempi.com/acme/demo),aorlettertheorwholedigit","pattern":"^[a-z0-9](?:[a-z0-9-]{0,38}[a-z0-9])?$link","type":"string"},"start":{"description":"one of the `slots` values from get_available_slots, as given (ISO in UTC)","format":"date-time","type":"string"},"timezone":{"description":"antheIANAinvitee's time zone,suchanasIANA\"America/New_York\"id like America/New_York or an abbreviation like EST: their emails and reminders show times in it","type":"string"}},"required":["handle","slug","start","name","email","timezone"],"type":"object"}
⟨11 unchanged words⟩ calendars, buffers and limits already applied. Pass the invitee's `timezone` and either `date` (YYYY-MM-DD in `timezone`) or `from` and ⟨16 unchanged words⟩ `days` groups the slots by date in `timezone`,(defaultandUTC).`times` gives each slot as a local time to show people. People can book up to `bookableUntil`. When the range has no open times, `next` is the next one. For new times for an existing booking, ⟨19 unchanged words⟩
{"additionalProperties":false,"properties":{"bookingId":{"description":"athestringbookingatidleastfrom1create_booking,character(s)orlong","minLength":1,"title":"minLength(1)its manageUrl","type":"string"},"date":{"description":"one day to look at, as YYYY-MM-DD in `timezone`","format":"date","type":"string"},"from":{"description":"start of the range, ISO with an offset","format":"date-time","type":"string"},"handle":{"description":"1-40 lowercase letters, digits oradasheshandle,startingtheandfirstendingpartwithof aletterbookingorlinkdigit","pattern(\":acme\"^[a-z0-9](?:[a-z0-9-]{0,38}[a-z0-9]in meettempi.com/acme/demo)?$, or the whole link","type":"string"},"slug":{"description":"1-40 lowercaseanletters,eventdigitstypeorslugdashes,fromstartingget_public_profileand(\"demo\"endinginwithmeettempi.com/acme/demo),aorlettertheorwholedigit","pattern":"^[a-z0-9](?:[a-z0-9-]{0,38}[a-z0-9])?$link","type":"string"},"timezone":{"description":"antheIANAinvitee's time zone,suchanasIANA\"America/New_York\"id like America/New_York or an abbreviation like EST: days, dates and times are in it","type":"string"},"to":{"description":"end of the range, ISO with an offset","format":"date-time","type":"string"},"token":{"description":"athestringtokenatfromleastcreate_booking,10orcharacter(s)thelong","minLength":10,"title":"minLength(10)manageUrl","type":"string"}},"required":["handle","slug","timezone"],"type":"object"}
Returns a booking by its id and token (from create_booking), or its manageUrl)passed as both, with `changeableUntil`, `refundableUntil`, `canCancel` and `cancelReasonRequired`. ⟨11 unchanged words⟩
{"additionalProperties":false,"properties":{"id":{"description":"athestringbookingatidleastfrom1create_booking,character(s)orlong","minLength":1,"title":"minLength(1)its manageUrl","type":"string"},"token":{"description":"athestringtokenatfromleastcreate_booking,10orcharacter(s)thelong","minLength":10,"title":"minLength(10)manageUrl","type":"string"}},"required": ⟨4 unchanged words⟩
⟨9 unchanged words⟩ booking link (https://host/acme/demo → "acme")., or the link itself. Returns the person or team and their bookable ⟨25 unchanged words⟩
{"additionalProperties":false,"properties":{"handle":{"description":"1-40 lowercase letters, digits oradasheshandle,startingtheandfirstendingpartwithof aletterbookingorlinkdigit","pattern(\":acme\"^[a-z0-9](?:[a-z0-9-]{0,38}[a-z0-9]in meettempi.com/acme/demo)?$, or the whole link","type":"string"}},"required": ⟨3 unchanged words⟩
{"additionalProperties":false,"properties":{"email":{"description":"an email address","format":"email","type":"string"}, ⟨18 unchanged words⟩ :"string"},"note":{"description":"anything the admins should know, e.g. whatayoustringwantattomostuse1000Tempicharacter(s)forlong","maxLength":1000,"minLength":0,"title ⟨32 unchanged words⟩
{"additionalProperties":false,"properties":{"id":{"description":"athestringbookingatidleastfrom1create_booking,character(s)orlong","minLength":1,"title":"minLength(1)its manageUrl","type":"string"},"start":{"description":"one of the `slots` values from get_available_slots, as given (ISO in UTC)","format":"date-time","type":"string"},"token":{"description":"athestringtokenatfromleastcreate_booking,10orcharacter(s)thelong","minLength":10,"title":"minLength(10)manageUrl","type":"string"}},"required": ⟨5 unchanged words⟩