Skip to main content
Glama

Surfing Dog Search

Server Details

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

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

Score is being calculated.

Available Tools

7 tools
check_businessCheck a business's website
Idempotent
Inspect

Checks what an AI agent can do with a business's website: message, book, order, sign up, pay, change or cancel. Waits up to 25 seconds; if the read isn't finished, returns what it found so far, and you call it again for the score. A result read in the last hour is answered as it is; after a business changes its site, set fresh to true to read it again (allowed a few minutes after the last read). Use it when a person asks how agent-ready a business is, or wants to improve their own. To find businesses, use search_businesses instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe business's website, as a URL or a bare domain like salon.example.
freshNoRead the site again rather than answer the stored result: for a business that just changed its site. Allowed a few minutes after the last read; before that, the stored result is answered with when to ask again.

Output Schema

ParametersJSON Schema
NameRequiredDescription
urlYesIts result page.
rankNoOnly when done, not hidden and of a kind the directory ranks.
siteNoThe business's own site.
badgeNo
fixesNo
gradeNo
levelNo
ownerNo
queueNoOnly while queued, checking or scoring.
rulesNoThe score rules applied (GET /v1/score-rules?version=N).
stateYes
domainYes
answersNoMessage, book, order, sign up, cancel and negotiate, in that order.
profileNo
excludedNo
indexableYes
scored_atNo
checked_atNo
capabilitiesNo
track_recordNoA member's track record, from the same nightly count as its standing and shown under the same rules: the promises it kept and broke, and when. From rules version 8, one that rests on the business's own word is self_reported: its counts, with no score and no count of customers. Only what its state can say is present; a business that is not a member has none.
agentic_scoreNo
not_certificationNo
web_person_messageNo
get_businessOne business
Read-onlyIdempotent
Inspect

One business's full listing, by its domain: its address (a town and country for one this network found), the week's opening hours and closures, its doors and what each takes, its services, its standing in words, a member's track record (promises kept, broken and still open, and when, once enough have closed; self_reported when it rests on the business's own word, with no score and no count of customers), and how many of its promises closed with each outcome; for one that is not a member, every fact with its source and date. This server takes no bookings or orders; the listing names the business's own doors. Its agentic score, if checked, is at https://surfingdog.ai/b/.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesThe business's domain, like ana-salon.example, as search_businesses gave it.

Output Schema

ParametersJSON Schema
NameRequiredDescription
whyNoWhy it is in this place of the list, in plain words.
cityNo
nameYesAs the business wrote it.
tagsYesOther words the business gave for what it does.
doorsNo
factsNoEvery displayed value of an entry that is not a member, with its source and date.
foundNo
hoursNoThe whole week, and the closures that have not ended.
inboxNoThe business's own inbox, where it takes bookings, orders and questions; this server takes no bookings or orders. Present whenever has_inbox is true or absent.
levelNoThe highest level of its live doors (§4.9).
placeNoFor entries that are not members; a member keeps city, country and address.
proofNo
rulesNo
takesYesWhat its inbox takes: booking, order, quote_request, message, refund.
domainYesThe business's own domain, where its inbox is.
sourceNomember: through its inbox; registered: by the business, with a proof; found: by the network's crawler.
acceptsNo
addressNoThe street only when the business published one.
claimedNo
countryNoISO 3166-1 alpha-2.
websiteNo
categoryNo
open_nowYesOpen at the moment of the answer by the hours it published, in its own time zone; null when it published none.
outcomesYesHow many of the promises made at this business closed with each outcome (ADR-017 §3).
servicesYesNames and how each is taken; prices, durations and free times are at its inbox.
standingNoFrom the last nightly count of the promises it kept; absent while the directory's order is neutral.
answeringYesIts inbox answered this network within the last day.
has_inboxNoIt has an inbox door: ours or any compatible inbox.
languagesYes
attributesNoKeys of GET /v1/attributes.
categoriesYesSlugs of the categories list.
descriptionNoAs the business wrote it.
distance_kmNoSearches near a point only.
hours_todayYesToday's hours in its own time zone, like "09:00–13:00, 14:00–19:00", or "closed today"; null when it published none.
listing_urlYesIts full listing on this network (GET /v1/businesses/{domain}).
requestableNoThe kinds a live door declared it answers; never from what the crawler saw alone.
track_recordNoA member's track record, from the same nightly count as its standing and shown under the same rules: the promises it kept and broke, and when. From rules version 8, one that rests on the business's own word is self_reported: its counts, with no score and no count of customers. Only what its state can say is present; a business that is not a member has none.
human_contact_onlyNoIt publishes only human channels; never served while nothing below askable is listed.
list_attributesAttributes
Read-onlyIdempotent
Inspect

The attributes a search may ask for (delivery, walk_ins, wifi…), each with its labels, and the payments accepts takes. Pass keys as attributes to search_businesses, and payments as accepts.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
keysYes
versionYes
paymentsYes
list_categoriesCategories
Read-onlyIdempotent
Inspect

The categories list: every slug with its English and Portuguese labels and its kind (local_and_retail, or software_and_ai for software, API and AI companies, kept apart). Pass a slug as category to search_businesses.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
versionYes
taxonomyNo
categoriesYes
place_categoriesNoWith ?group: every place category of that group; parent is null at the taxonomy's top.
register_businessPut a business in the directoryInspect

For a business's own AI: put the business in this directory with its doors (MCP, A2A, OpenAPI, an API, UCP, ACP, a platform's door) and its facts: name, what it is (a category of list_categories or a place category, and one line), where (a storefront, a service area, or online with the countries it ships to), its languages, and agree. One call when its proof is already in place; otherwise the answer gives a challenge to put on its domain (a well-known file, its inbox manifest, a DNS record), a key's signature, or a code sent to an address at its domain, and the next call proves it. The answer names every part not taken and why, its readiness level, and what the next level takes. Doors count once this network's crawler has checked them; a door on another host counts only when the site leads to it or its own document names the business's domain. Mail, phone, messaging, forms and web pages are never doors. Every kind of business is listed except adult services, gambling, weapons, tobacco, cannabis and vaping, payday loans and bail bonds. agree accepts the listing terms (/bot#terms). Being listed is free, and nothing about the order can be bought.

ParametersJSON Schema
NameRequiredDescriptionDefault
payNoPayment tokens of list_attributes.
nameYesAs the business writes it.
agreeYesThe business agrees to be listed by the network's published rules (GET /v1/ranking) and listing terms.
doorsNo
hoursNoAs a profile's hours: {"timezone": "Europe/Paris", "weekly": {"tue": [["09:00", "19:00"]]}}.
proofNo
whereYesA storefront needs an address or geo, a service area its radius or countries, online its ships_to.
domainYesThe business's own website domain. A business without a website is not supported yet.
localeNoThe language to answer in.
categoryYesWhat the business is: one category, and at most two more.
languagesYesLanguage tags, like pt or fr-CA.
attributesNoKeys of list_attributes.
currenciesNoISO 4217.
price_bandNo1 (cheapest) to 4.
want_inboxNo
claim_tokenNoGiven by a successful register_business: proof again for 90 days, for this listing only.
descriptionYesOne line on what it does; the first line is at most 160.
alternate_namesNoOther names the business goes by; a name longer than the network keeps is dropped (the reference network keeps 60 characters and 4 words at most).

Output Schema

ParametersJSON Schema
NameRequiredDescription
cardNoThe card search_businesses gives, as it stands now.
levelNo
notesNo
proofNo
detailNoThe answer in one plain sentence.
domainYes
listedNoWhether search shows it now.
statusYeslisted: in search now; not_agent_ready: claimed, below askable; probe_pending: doors declared, not yet probed; proof_needed: see challenge; code_sent: call again with the code; member: it is listed through its inbox; refused: see detail.
claimedNo
droppedNoEach part not taken and why: refused_kind, category_not_listed, contact_detail, not_in_vocabulary, and the like.
challengeNoPut the token in place one of these ways, then call again with proof.method and challenge_id.
next_levelNoWhat it takes to reach the next level, in plain words.
want_inboxNo
claim_tokenNoGiven by a successful register_business: proof again for 90 days, for this listing only.
claim_token_expires_atNo
search_businessesFind businesses
Read-onlyIdempotent
Inspect

Find businesses in the directory by what they do (query, category: a group or a place category), where (near, country), the language they speak, whether they are open now, their attributes (list_attributes), price band, what their doors take and what they accept (accepts), whether a door answers asks or quotes (requestable), the type of door, their readiness level, whether they have an inbox, and whether they are members, registered or found. Results come in the directory's published order, which nobody can pay to change; every filter only leaves businesses out. This server takes no bookings or orders; each result lists the business's own doors. A business this network found on its own website is marked as found, with the date it was checked. Software, API and AI companies (category software-ai) are kept apart: they come only when category names that group or one of its categories, query names their kind, or every word of query is in one's name. Pages of up to 20; pass next_cursor as cursor for more.

ParametersJSON Schema
NameRequiredDescriptionDefault
nearNoOnly businesses within radius_km of this point, each with its distance.
levelNoAt this readiness level or above: askable (an AI can ask), bookable or orderable, payable. Nothing below askable is listed yet. This only leaves businesses out.
limitNoHow many to return: 10 when left out.
orderNorank: the published order (the default); nearest: by distance, and it needs near.
queryNoA few words about what the business does or where, like "florist" or "coffee singapore". Every word must match its name, town, description, categories, tags or services, ignoring capitals and accents. Words like "open" or "near me" belong in open_now and near instead.
cursorNonext_cursor from the previous answer, for the next page of the same search.
sourceNomember (through its inbox), registered (by the business), found (by this network on the business's own website); any of them. This only leaves businesses out.
acceptsNoWhat its live doors take and what it accepts as payment, all of them: ask, quote, book, order, pay, or a payment from list_attributes like card or pix. This only leaves businesses out.
countryNoA country code like PT or BR: a business located there, serving it or shipping there. This only leaves businesses out.
categoryNoA slug from list_categories, like hair-beauty, or a place category id like hair_salon, with every category below it. Its label or a synonym works too. Under rules before version 7 any other word matches the tags businesses gave themselves; from version 7 it is an error that names up to 5 categories to try.
languageNoOnly businesses that speak this language, as a tag like pt or en; pt also finds pt-br.
open_nowNotrue: only businesses open right now by the hours they published. One that published no hours is left out.
door_typeNoA live door of any of these types: inbox, mcp, a2a, openapi, api, ucp, acp, nlweb, other, "platform" for any platform, or platform:<name>. This only leaves businesses out.
has_inboxNotrue: with an inbox door; false: without one. This only leaves businesses out.
item_typeNoOnly businesses whose inbox takes this.
attributesNoKeys from list_attributes, like "delivery" or "walk_ins", or key=value for one with values; every one must hold. This only leaves businesses out.
price_bandNo1 (cheapest) to 4, as "2" or a range "1-2". This only leaves businesses out.
requestableNoA live door that declared it answers this kind. This only leaves businesses out.

Output Schema

ParametersJSON Schema
NameRequiredDescription
rulesYesThe rules that ordered these businesses (GET /v1/ranking?version=N).
businessesYesIn the directory's published order: no one can pay to move in it.
next_cursorYesPass it as cursor for the next page; null on the last.
update_businessChange a business's listing
Destructive
Inspect

For a business's own AI: correct its listing (set any field register_business takes), add or remove doors, turn the listing off or on, or hide its agentic score result (score_page), with its claim_token or a proof as register_business asks. opt_out stops this network listing the site (list), reading it (crawl), or both (all). With no proof it removes only a listing nobody claimed; a claimed or registered listing is taken out only with its claim_token or a proof as strong as its claim.

ParametersJSON Schema
NameRequiredDescriptionDefault
setNoAny field register_business takes, but domain.
doorsNo
proofNo
domainYes
listingNooff hides it from search and keeps it in the index.
opt_outNoStops the listing (list), the crawl (crawl) or both (all). Without a claim token or a proof it removes an entry the network found that nobody claimed, and never a claimed or registered listing, which needs its claim_token or a proof as strong as its claim. A business that opted out comes back with a domain or key proof.
score_pageNohidden takes the business's agentic score result page out of view, its ranks and leaderboards included; shown brings it back. It needs the claim token or a proof, as set does.
claim_tokenNoGiven by a successful register_business: proof again for 90 days, for this listing only.

Output Schema

ParametersJSON Schema
NameRequiredDescription
cardNoThe card search_businesses gives, as it stands now.
levelNo
notesNo
proofNo
detailNoThe answer in one plain sentence.
domainYes
listedNoWhether search shows it now.
statusYesAs register_business's, and: off, hidden from search; removed, after an opt-out.
claimedNo
droppedNoEach part not taken and why: refused_kind, category_not_listed, contact_detail, not_in_vocabulary, and the like.
challengeNoPut the token in place one of these ways, then call again with proof.method and challenge_id.
next_levelNoWhat it takes to reach the next level, in plain words.
score_pageNoWhether its agentic score result page is hidden or shown, when the call set it.
want_inboxNo
claim_tokenNoGiven by a successful register_business: proof again for 90 days, for this listing only.
claim_token_expires_atNo

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 7 tool updates
    • First observedcheck_business
    • First observedget_business
    • First observedlist_attributes
    • First observedlist_categories
    • First observedregister_business
    • First observedsearch_businesses
    • First observedupdate_business

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Provides AI agents with access to real, verifiable businesses with provenance and source URLs, enabling natural-language business search and profile retrieval.
    2
    MIT
  • A
    license
    A
    quality
    F
    maintenance
    Enables AI agents to discover and interact with businesses by reading structured NOD manifests. Provides tools to look up business capabilities and check if specific actions like ordering food or booking appointments are supported.
    2
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Country-agnostic MCP-callable directory for AI agents to find local SMBs — realtors, insurance agents, medical practitioners — by category, location, or natural-language query. Returns business catalog data and UTM-tagged booking URLs (zero PII).
    5
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Lets AI agents search merchant product catalogs, obtain signed offers with agent pricing, and run checkout sessions that always settle on the merchant's own payment page. It also scores any website's agent-readiness and exposes the published rubric checks.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources