ai.surfingdog/inbox

Surfing Dog Inbox

Message, ask for a quote or book a call with Surfing Dog, through its open-source inbox.

Endpointhttps://inbox.surfingdog.ai/mcp (streamable-http)
Registry version0.2.0
Now19 tools · grade D (63) · pin ts_dfbdb0fbf0d5085695ca1289616ebff5 · protocol 2025-06-18
First / last listed2026-11-01 03:04 UTC / 2026-11-01 03:04 UTC
Grade over time2026-11-01: D (63), 19 tools

Is this your server? Own a server? ToolFit hosted watch re-checks it every 24 h ($0.25 per 30 days) or 6 h ($0.60) and sends you an HMAC-signed webhook when its tools or grade change: POST https://api.youraitools.co/toolfit/v1/watch. To opt out, see About & opt-out.

Timeline

First listing · 2026-11-01 03:04 UTC
19 tools, grade D (63)

Tools: get_business_profile list_services list_products check_availability request_quote create_booking create_order get_item_status accept_offer decline_offer suggest_time make_offer provide_details withdraw_from_contract request_return cancel_item send_message acknowledge_receipt verify_customer

Current tools (19)

get_business_profileName, time zone, currency, languages and the item types this business accepts, and where it takes any other kind instead (doors_elsewhere: each with its URL, and the platform it is on when there is one).
params: none
list_servicesBookable services with duration and price. A price per person (price.per = person) is for each person in the booking: send partySize, and the total is the price times it.
params: cursor, limit
list_productsOrderable products with prices in minor units, each with its barcode (gtin, 14 digits) where it has one and whether it is in stock. ids: read the live price of products a network showed you, before your person agrees; gtin: the products with that barcode, in any of its lengths. The price here is the one that counts.
params: cursor, limit, q, ids, gtin
check_availabilityFree start times for a service between two instants (at most 14 days). A time that has started, or that starts within the business's minimum notice, is not offered.
params: service_id*, from*, to*, party_size
request_quoteAsk for a price on something custom. Creates a quote_request item.
params: payload*, contact, message, attachments, idempotency_key, pass, key
create_bookingRequest a service at a time. Check availability first. endTime and reservationFor.name may be left out: they follow from the service (its length, its name). A fixed-price service costs the business's price from list_services; a different totalPrice 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
params: payload*, contact, message, attachments, visit_for, terms_sha, idempotency_key, pass, key
create_orderOrder products. Prices are in minor units. A line naming a product (productId or sku) costs the business's price from list_products, and the total follows; a different price you send is only noted for the business. A line naming no 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
params: payload*, contact, message, attachments, terms_sha, idempotency_key, pass, key
get_item_statusThe current state of an item you created, in the business's words: what it proposed and waits for your person to answer (offer, with its terms_sha), who it waits on, what they can do next, and the conversation so far (thread: the business's replies and your person's messages).
params: item_id*, access_token, pass, key
accept_offerAccept another time the business proposed for a booking, its quote, its 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 to offer.human, and offer_id (offer.id) so an answer to an offer since replaced does nothin
params: item_id*, offer_id, terms_sha, access_token, idempotency_key, pass, key
decline_offerSay 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.
params: item_id*, offer_id, reason, reason_code, access_token, idempotency_key, pass, key
suggest_timeInstead of the time the business proposed, ask for another: start_time must be one of the free times check_availability lists (the end follows the service's length). 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 chan
params: item_id*, start_time*, note, access_token, idempotency_key, pass, key
make_offerAnswer 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
params: item_id*, offer_id, terms*, note, reason_code, access_token, idempotency_key, pass, key
provide_detailsAnswer what the business asked about an item (get_item_status says it needs a detail). The item moves on; on any other item your details are kept as a message for the business.
params: item_id*, details*, access_token, idempotency_key, pass, key
withdraw_from_contractYour 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 perso
params: item_id*, confirm_withdrawal, lines, note, access_token, idempotency_key, pass, key
request_returnOnce 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_i
params: item_id*, reason*, lines, wants, note, access_token, idempotency_key, pass, key
cancel_itemCancel an item you created. After the business's cancellation window, a confirmed booking is cancelled late where the business records late cancellations (it may count against the customer), and refused where it does not. A confirmed stay answers first with the fee under its policy and what is owed back (confirm): send its fee_sha once your person said yes.
params: item_id*, reason, fee_sha, access_token, idempotency_key, pass, key
send_messageStart a conversation, or reply on an item you own.
params: item_id, subject, body*, contact, message_id, access_token, idempotency_key, pass, key
acknowledge_receiptCounter-sign a receipt this item earned, so both sides hold 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 send a compact JWS signed with your own Ed25519 key — header {alg:'EdDSA', typ:'sdi-receipt-ack+jws', jwk:<your public jwk>}, payload {rcp:<receipt id>, sha:<base64url(SHA-256(receipt jws))>, iat:<unix seco
params: item_id*, counter_signature, receipt_id, receipt, access_token, pass, key
verify_customerWhen a result says identity.recognised is weak, the person gave the email of a customer the business knows. Call this with item_id and access_token to email them six digits; ask the person for the code and call it again with code. Then the business recognises them.
params: item_id*, access_token, code

Entries describe changes in tool definitions. They are not statements about a server, its quality or its author. The grade measures how the tool definitions fit model providers (token cost, schema compatibility, confusable names) as scored by the ToolFit engine at the time of the listing. JSON: append .json. Opt-out: how or hello@youraitools.co.