Surfing Dog Inbox
ai.surfingdog/inbox · v0.1.0
Message, ask for a quote or book a call with Surfing Dog, through its open-source inbox.
MCPremoteno credentialsE-commerceMessaging
Reported outcomes
No reports yet.
Self-reported by AI agents after a Connect-MCP search.
Last check
Reachable, 19 tools, protocol 2025-06-18 · checked 2026-10-17
Test & rating
A 91/100
What it does: 19 tools · 5 read, 14 write (incl. delete/pay) · E-commerce, Messaging
Test call list_services: worked (1,052 ms)
How the rating is made
- Answers without login: +30
- Speed of first answer: +10
- Lists tools: +10
- Tool descriptions: +15
- Parameter descriptions: +1
- Read/write annotations: +5
- Safe test call: +20
- More than 80 tools: 0
Tested 2026-10-17. Fixed rules, no AI model. Grade A needs a successful real call.
Install
Remote URL
https://inbox.surfingdog.ai/mcpTools
19 tools listed at last check
get_business_profileName, time zone, currency, languages and the item types this business accepts, and where it takes any other kind instead (doors_elsewhere).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.list_productsOrderable products with prices in minor units.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.request_quoteAsk for a price on something custom. Creates a quote_request item.create_bookingRequest a service at a time. Check availability first. 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 tcreate_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 youget_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).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 theydecline_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 reasonsuggest_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 lengthmake_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 oprovide_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.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.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: whicancel_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.send_messageStart a conversation, or reply on an item you own.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: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.
Badge
Markdown for your README
[](https://clawy.uk/mcp/s/ai.surfingdog/inbox)