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.
Added "make_offer", "request_return" and "withdraw_from_contract"; changed the definition of "accept_offer", "acknowledge_receipt", "create_booking" and 3 more (16 tools before, 19 now)
Accept another time the business proposed for a booking,orits quote, itsquote.changes to an order, or a change it asks for to a confirmed booking or an accepted order (offer.kind change: the promise moves). This binds your person, so send terms_sha — offer.terms_sha from get_item_status — only after they said yes tooffer.human.offer.human, and offer_id (offer.id) so an answer to an offer since replaced does nothing. Without terms_sha nothing is booked: you get the ⟨7 unchanged words⟩ becomes a confirmed booking or order (linked). A yes to a change that can no longer be made online goes to a person there instead (passed_on), and what was agreed stands.
⟨83 unchanged words⟩ "maxLength":200,"type":"string"},"offer_id":{"description":"The offer you answer: offer.id from get_item_status. If the business has replaced it since, nothing is done (409 offer_changed, with the current one).","maxLength":64,"minLength":1,"type":"string"},"pass":{"description":"The person's passes ( ⟨71 unchanged words⟩
Counter-sign a receipt this item earned, so both sides holdit.it: a promise, a change both sides agreed to it (kind amended), how it ended, or a refund's. Read the item to find its receipts; then ⟨50 unchanged words⟩
⟨21 unchanged words⟩ you send is only noted for the business. A priced booking binds your person only once they confirmed it: without terms_sha nothing is sent, and you get the summary to show them (confirm.summary, confirm.terms_sha); call again with that terms_sha on their clear yes. Returns the item and, if you have no account, an access_token.
⟨241 unchanged words⟩ "minimum":1,"type":"integer"},"personalised":{"properties":{"listPrice":{"properties":{"currency":{"maxLength":3,"minLength":3,"type":"string"},"value":{"maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["value","currency"],"type":"object"},"says":{"maxLength":200,"type":"string"}},"required":["listPrice"],"type":"object"},"reservationFor":{"properties":{"name":{"maxLength ⟨126 unchanged words⟩ ,"startTime","endTime"],"type":"object"},"terms_sha":{"description":"The fingerprint of the terms your person confirmed (details.terms_sha of the 409 confirm_terms a priced request without it gets). Nothing is sent to the business without it when the request carries a price.","pattern":"^[A-Za-z0-9_-]{43}$","type":"string"}},"required":["payload"],"type":"object"}
⟨40 unchanged words⟩ product waits for the business to price it. A priced order binds your person only once they confirmed it: without terms_sha nothing is sent, and you get the summary to show them (confirm.summary, confirm.terms_sha); call again with that terms_sha on their clear yes.
⟨282 unchanged words⟩ "orderedItem":{"items":{"properties":{"listPrice":{"properties":{"currency":{"maxLength":3,"minLength":3,"type":"string"},"value":{"maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["value","currency"],"type":"object"},"name":{"maxLength":200,"minLength":1, ⟨51 unchanged words⟩ "maxLength":60,"type":"string"},"personalised":{"properties":{"listPrice":{"properties":{"currency":{"maxLength":3,"minLength":3,"type":"string"},"value":{"maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["value","currency"],"type":"object"},"says":{"maxLength":200,"type":"string"}},"required":["listPrice"],"type":"object"},"shippingAddress":{"properties":{"addressCountry":{"maxLength ⟨49 unchanged words⟩ ["orderedItem","totalPrice"],"type":"object"},"terms_sha":{"description":"The fingerprint of the terms your person confirmed (details.terms_sha of the 409 confirm_terms a priced request without it gets). Nothing is sent to the business without it when the request carries a price.","pattern":"^[A-Za-z0-9_-]{43}$","type":"string"}},"required":["payload"],"type":"object"}
Say no to another time or to changes the business proposed (the booking request or the order is closed) or to its quote. To a change it asks for to a confirmed booking or an accepted order, no keeps what was agreed; on a change your person asked for (requested_change), it takes that back. Add reason (and reason_code) for anything your person wants the business to know.
⟨83 unchanged words⟩ "maxLength":200,"type":"string"},"offer_id":{"description":"The offer you answer: offer.id from get_item_status. If the business has replaced it since, nothing is done (409 offer_changed, with the current one).","maxLength":64,"minLength":1,"type":"string"},"pass":{"description":"The person's passes ( ⟨36 unchanged words⟩ wants the business to know.","maxLength":2000,"type":"string"},"reason_code":{"description":"Why: price_sensitivity, timing_deferred, quantity, delivery, returns_policy or other.","enum":["price_sensitivity","timing_deferred","quantity","delivery","returns_policy","other"],"type":"string"}},"required":[ ⟨3 unchanged words⟩
⟨26 unchanged words⟩ ). The business confirms it or proposes again. On a confirmed booking it asks the business to move it (the end keeps the booking's length), and the booking stays as agreed until the business says yes. After a few rounds, or past the changes a booking may have, a person there answers it instead (passed_on).
Suggest a change — Answer what the business proposed with only what your person would change: another start_time (a booking: one of the free times check_availability lists; a quote request: the time it is for), other quantities for the lines of changes it suggested to an order (by index in offer.terms.lines; 0 drops one), another delivery_when, or how many (quantity) for a quote request. It goes back to the business as their request. On a confirmed booking or an accepted order it asks for a change to what was agreed (lines by index in the order's orderedItem), which stands until the business says yes. A price o…
Send goods back — Once an order's goods reached your person: ask to send them back. reason faulty, not_as_described or wrong_item (the legal guarantee: it costs them nothing), or changed_mind (a withdrawal while the period runs, agreed at once; after it, a return the business answers under its own policy). lines: which, by index in orderedItem, and how many; all when left out. The return comes back as linked; get_item_status lists it under refunds.
Withdraw from contract here — Your person withdraws from their booking (one they paid for) or order, within the period the business states (withdrawal on get_item_status). Two steps: without confirm_withdrawal nothing is sent and you get the statement to show them (confirm.statement); send confirm_withdrawal: true on their yes. Before the goods went out the order ends and what was paid is refunded; once they reached your person, the goods come back (lines: only some of them) and are refunded. The business emails a copy. Never refused: past the period, or for something that cannot be returned, it goes to a person there ins…
Certificate recorded, valid to 2026-11-21
Authorization not required
Unknown → Live
First tool surface recorded: 16 tools (server version 0.1.0)
https://inbox.surfingdog.ai/mcp (mcp_streamable_http) — from mcp_registry, with the record
Showing the latest 6 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed