mcpbeat Sign in

Surfing Dog Inbox MCP Server

answering

Surfing Dog Inbox is answering right now. Last checked 6 min ago. It exposes 19 tools. Last commit 15 Oct 2026.

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

Uptime history 24 days of history · worst day 93%
24 days agonow
100.0%
Uptime 24h
92 of 92 checks
19
Tools
read from the server
213 ms
Response time
average over 24h
0
Stars
last commit 15 Oct 2026

What changed 21

Every tool that appeared, vanished or quietly changed what it asks for. Recorded since 24 September 2026. No other catalogue keeps this.

12 Oct a tool description was rewritten get_business_profile
29 Sep 6 tool descriptions were rewritten accept_offer, acknowledge_receipt, create_booking and 3 more
29 Sep 4 tools changed the parameters they ask for accept_offer, create_booking, create_order and 1 more
29 Sep 3 tools appeared make_offer, request_return, withdraw_from_contract
24 Sep 4 tools appeared accept_offer, decline_offer, provide_details and 1 more
24 Sep 3 tool descriptions were rewritten check_availability, get_item_status, list_services

What the code does

We read the source, 1 d ago · tools taken from the live server · rules ccca72095570

Capabilities

What this server is able to do. For an MCP server this is often the job itself — a terminal server runs commands because that is what it is for. Listed so you know what you are plugging in, not as an accusation.

Hidden recipient in outgoing message apps/inbox/src/seed.ts:356
            email: { fromAddress: "[email protected]", fromName: "Oficina Maré", replyTo: "[email protected]" },
Page executes code built at runtime apps/site/src/pages/sponsors.astro:178
            span.innerHTML = link.innerHTML;

Is this your server and something here is wrong? Tell us — corrections are free and do not require a plan.

This code can reach further than it looks

We found places where it runs commands, builds paths or queries from values it is given. None of that is a flaw by itself — it becomes one when the code changes, and code changes quietly between releases. We re-read it on every one.

Three servers free · no card

Connect this server

Endpoint below is the one we actually reach during checks — not the one copied from a README. Last verified 6 min ago.

run in your terminal
claude mcp add inbox --transport http https://inbox.surfingdog.ai/mcp
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "inbox": {
      "url": "https://inbox.surfingdog.ai/mcp"
    }
  }
}
~/.codex/config.toml
[mcp_servers.inbox]
url = "https://inbox.surfingdog.ai/mcp"
.cursor/mcp.json
{
  "mcpServers": {
    "inbox": {
      "url": "https://inbox.surfingdog.ai/mcp"
    }
  }
}
.vscode/mcp.json
{
  "mcpServers": {
    "inbox": {
      "url": "https://inbox.surfingdog.ai/mcp"
    }
  }
}

Available tools 19

Read directly from the server with tools/list, grouped by what they act on. If a tool disappears, we record the date.

request
request_quote
Ask for a price on something custom. Creates a quote_request item.
request_return
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.
accept
accept_offer
Accept 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 nothing. Without terms_sha nothing is booked: you get the terms to show them. An accepted quote 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.
acknowledge
acknowledge_receipt
Counter-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 seconds>}. The instance verifies it against the key you carry and keeps it. Acknowledging twice is harmless.
availability
check_availability
Free 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.
booking
create_booking
Request 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 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.
business
get_business_profile
Name, time zone, currency, languages and the item types this business accepts, and where it takes any other kind instead (doors_elsewhere).
cancel
cancel_item
Cancel 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.
decline
decline_offer
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.
item
get_item_status
The 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).
make
make_offer
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 of their own is their answer only where get_business_profile says price_negotiable: total_price for a time it proposed (start_time optional), unit_price on lines of changes to an order; it goes back to the business, which takes it or answers. Otherwise — a price where the business sets its prices, on a quote, on something it does not haggle, or asked too often — it goes to a person there as their message, as do a note alone and a suggestion after a few rounds (passed_on): never refused, and what the business proposed, or what was agreed, still stands.
order
create_order
Order 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 show them (confirm.summary, confirm.terms_sha); call again with that terms_sha on their clear yes.
products
list_products
Orderable products with prices in minor units.
provide
provide_details
Answer 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.
send
send_message
Start a conversation, or reply on an item you own.
services
list_services
Bookable 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.
suggest
suggest_time
Instead 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 changes a booking may have, a person there answers it instead (passed_on).
verify
verify_customer
When 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.
withdraw
withdraw_from_contract
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 instead (passed_on), or becomes a return under the business's own policy.

Endpoints

URLTransportStateLatencyChecked
https://inbox.surfingdog.ai/mcp streamable-http answering 280 ms 6 min ago

Alternatives to Surfing Dog Inbox

same job, measured the same way
Vicem
by vicem

See the calls your Vicem answered and ask it to call or message someone, with your OK first.

answering
Surfing Dog Search
by surfingdog

Find businesses an AI agent can message, book or buy from, and check what an agent can do on a site.

8 tools answering
Relayger: AI agent messaging
by relayger

AI agent messaging with durable inboxes, contacts and tasks. Connect through MCP with OAuth.

answering
CRW Web Scraper
by fastcrw

Open-source web scraper for AI agents with scrape, crawl, and map tools

local only
CRW Web Scraper
by us

Open-source web scraper for AI agents with scrape, crawl, and map tools

local only
tell.dev
by tell

Message someone through your coding agent. Their agent gets your note and explains it.

answering
Agent Weather
by agentweather

Open-source intelligence for AI agents: public readings, each with its source and timestamp.

21 tools answering
Demand Discovery AI
by demanddiscovery

Validate startup ideas with real people asking for them, each quote linked to its source.

10 tools answering

Surfing Dog Inbox — questions

Answers built from our own checks of this server.

What can Surfing Dog Inbox do?
It exposes 19 tools, read directly from the server on our last check. Among them: accept_offer, acknowledge_receipt, cancel_item, check_availability, create_booking, create_order and 13 more. The full list with descriptions is on this page — we take it from the server itself via tools/list, not from a README. How MCP servers expose tools in the first place →
Is Surfing Dog Inbox working right now?
We send a real MCP handshake every 15 minutes. Over the last 24 hours 92 of 92 checks got a reply (100.0%), average response time 213 ms. The bar chart above shows every period we have measured.
How do I connect Surfing Dog Inbox?
Copy the ready config from this page — we generate it for Claude Code, Claude Desktop, Codex, Cursor and VS Code, each with the file path that client actually reads. It is a remote server, so there is nothing to install — the client connects to the address.
Does Surfing Dog Inbox need an API key?
No. Surfing Dog Inbox completed a full MCP handshake with us as an anonymous client and listed its tools without asking for anything. All 19 of them are readable on this page. This is what we observed, not what the docs claim.
How fast is Surfing Dog Inbox?
It answers our handshake in 213 ms on average, which is faster than 59% of all working MCP servers we measure. The comparison comes from our own checks across the whole registry, every 15 minutes.
Is Surfing Dog Inbox open source?
Yes — it is published under the MIT licence, written in TypeScript and 0 stars on GitHub. The source link is on this page, so you can read exactly what it does with your data before you connect it.