Skip to main content
Glama

One business

get_business
Read-onlyIdempotent

One business's full listing, by its domain as search_businesses gave it: address, the week's hours and closures, its doors and what each takes, services, standing, track record and how its promises closed, every fact's source and date for one that is not a member, and its doors' history from this network's own reads. Asking may start a fresh read of a site last read over a day ago (checking_again).

Input Schema

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

Output Schema

NameRequiredDescriptionDefault
whyNo
cityNo
nameYes
tagsYes
doorsNo
factsNo
foundNo
hoursNo
inboxNo
levelNo
placeNo
proofNo
rulesNo
takesYes
domainYes
reportNo
sourceNo
acceptsNo
addressNo
claimedNo
countryNo
lodgingNo
websiteNo
categoryNo
cuisinesNo
open_nowYes
outcomesYes
servicesYes
standingNo
answeringYes
has_inboxNo
languagesYes
attributesNo
categoriesYes
descriptionNo
distance_kmNo
hours_todayYes
listing_urlYes
requestableNo
door_historyNo
reservationsNo
track_recordNo
checking_againNo
human_contact_onlyNo
location_precisionNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed6 schema fields changed
    • addedOutput schema / properties / attributes / additionalProperties / properties / at
      Added value: +{
      +  "format": "date-time",
      +  "type": "string"
      +}
    • addedOutput schema / properties / attributes / additionalProperties / properties / url
      Added value: +{
      +  "format": "uri",
      +  "type": "string"
      +}
    • addedOutput schema / properties / attributes / additionalProperties / properties / via
      Added value: +{
      +  "enum": [
      +    "business",
      +    "website"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / cuisines
      Added value: +{
      +  "items": {
      +    "properties": {
      +      "at": {
      +        "format": "date-time",
      +        "type": "string"
      +      },
      +      "label": {
      +        "type": "string"
      +      },
      +      "slug": {
      +        "type": "string"
      +      },
      +      "src": {
      +        "enum": [
      +          "declared",
      +          "seen",
      +          "probably"
      +        ],
      +        "type": "string"
      +      },
      +      "url": {
      +        "format": "uri",
      +        "type": "string"
      +      },
      +      "via": {
      +        "enum": [
      +          "business",
      +          "website"
      +        ],
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "slug",
      +      "label",
      +      "src"
      +    ],
      +    "type": "object"
      +  },
      +  "maxItems": 5,
      +  "type": "array"
      +}
    • addedOutput schema / properties / lodging
      Added value: +{
      +  "properties": {
      +    "answer_hours": {
      +      "maximum": 168,
      +      "minimum": 1,
      +      "type": "integer"
      +    },
      +    "at": {
      +      "format": "date-time",
      +      "type": "string"
      +    },
      +    "check_in_from": {
      +      "pattern": "^([01][0-9]|2[0-3]):[0-5][0-9]$",
      +      "type": "string"
      +    },
      +    "check_out_until": {
      +      "pattern": "^([01][0-9]|2[0-3]):[0-5][0-9]$",
      +      "type": "string"
      +    },
      +    "confirmation": {
      +      "enum": [
      +        "request",
      +        "instant_some",
      +        "instant"
      +      ],
      +      "type": "string"
      +    },
      +    "kind": {
      +      "enum": [
      +        "hotel",
      +        "bnb",
      +        "guesthouse",
      +        "hostel",
      +        "rental",
      +        "apartment",
      +        "campsite",
      +        "ryokan",
      +        "other"
      +      ],
      +      "type": "string"
      +    },
      +    "registration": {
      +      "maxLength": 60,
      +      "type": "string"
      +    },
      +    "rooms": {
      +      "maximum": 5000,
      +      "minimum": 1,
      +      "type": "integer"
      +    },
      +    "src": {
      +      "enum": [
      +        "declared",
      +        "seen",
      +        "probably"
      +      ],
      +      "type": "string"
      +    },
      +    "url": {
      +      "format": "uri",
      +      "type": "string"
      +    },
      +    "via": {
      +      "enum": [
      +        "business",
      +        "website"
      +      ],
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "kind",
      +    "check_in_from",
      +    "check_out_until",
      +    "confirmation",
      +    "answer_hours",
      +    "src"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / reservations
      Added value: +{
      +  "properties": {
      +    "at": {
      +      "format": "date-time",
      +      "type": "string"
      +    },
      +    "src": {
      +      "enum": [
      +        "declared",
      +        "seen",
      +        "probably"
      +      ],
      +      "type": "string"
      +    },
      +    "url": {
      +      "format": "uri",
      +      "type": "string"
      +    },
      +    "v": {
      +      "enum": [
      +        "required",
      +        "recommended",
      +        "accepted",
      +        "walk_in_only"
      +      ],
      +      "type": "string"
      +    },
      +    "via": {
      +      "enum": [
      +        "business",
      +        "website"
      +      ],
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "v",
      +    "src"
      +  ],
      +  "type": "object"
      +}
  2. Changed1 schema field changed
    • changedOutput schema / properties / outcomes / propertyNames / enum
      Previous value: -[
      -  "booking.completed",
      -  "order.fulfilled",
      -  "booking.cancelled_by_business",
      -  "order.not_fulfilled",
      -  "booking.no_show_business",
      -  "order.not_received",
      -  "promise.unclosed",
      -  "promise.closed_late",
      -  "booking.no_show_customer",
      -  "booking.cancelled_late_by_customer",
      -  "order.payment_failed",
      -  "order.charged_back",
      -  "booking.cancelled_by_customer",
      -  "order.cancelled_by_customer",
      -  "order.lapsed",
      -  "refund.honoured",
      -  "refund.late",
      -  "refund.cancelled_by_customer",
      -  "order.refund_refused"
      -]New value: +[
      +  "booking.completed",
      +  "order.fulfilled",
      +  "booking.cancelled_by_business",
      +  "order.not_fulfilled",
      +  "booking.no_show_business",
      +  "order.not_received",
      +  "promise.unclosed",
      +  "promise.closed_late",
      +  "booking.no_show_customer",
      +  "booking.cancelled_late_by_customer",
      +  "order.payment_failed",
      +  "order.charged_back",
      +  "booking.cancelled_by_customer",
      +  "order.cancelled_by_customer",
      +  "order.lapsed",
      +  "refund.honoured",
      +  "refund.late",
      +  "refund.cancelled_by_customer",
      +  "order.refund_refused",
      +  "order.id_refused"
      +]
  3. Changed2 schema fields changed
    • addedOutput schema / properties / accepts / properties / pay_with / items / properties / currencies
      Added value: +{
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / accepts / properties / pay_with / items / properties / to
      Added value: +{
      +  "maxLength": 120,
      +  "type": "string"
      +}
  4. Changed1 schema field changed
    • addedOutput schema / properties / checking_again
      Added value: +{
      +  "properties": {
      +    "asked_at": {
      +      "format": "date-time",
      +      "type": "string"
      +    },
      +    "last_read_at": {
      +      "format": "date-time",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "asked_at"
      +  ],
      +  "type": "object"
      +}
  5. Changed133 schema fields changed
    • removedInput schema / $schema
      Removed value: -"https://json-schema.org/draft/2020-12/schema"
    • removedInput schema / title
      Removed value: -"MCP get_business: arguments"
    • removedOutput schema / $schema
      Removed value: -"https://json-schema.org/draft/2020-12/schema"
    • addedOutput schema / description
      Added value: +"Every field is described in this tool's outputSchema at https://network.surfingdog.ai/.well-known/mcp/server-card.json."
    • removedOutput schema / properties / accepts / properties / pay / description
      Removed value: -"Payment tokens of GET /v1/attributes' payments."
    • removedOutput schema / properties / accepts / properties / pay_with / description
      Removed value: -"Each of pay with its evidence, in the vocabulary's order. Absent from a listing built before it."
    • removedOutput schema / properties / accepts / properties / pay_with / items / properties / label / description
      Removed value: -"Its English name: Apple Pay for apple_pay."
    • removedOutput schema / properties / accepts / properties / pay_with / items / properties / token / description
      Removed value: -"A payment token of GET /v1/attributes."
    • removedOutput schema / properties / accepts / properties / pay_with / items / properties / url / description
      Removed value: -"The page, file, profile, manifest or door the evidence is at."
    • removedOutput schema / properties / accepts / properties / pay_with / items / properties / via / description
      Removed value: -"Where the evidence is: registration, manifest, schema_org, ucp, acp, door, file or page today. A later network may add one: read a via you do not know as evidence of its src."
    • removedOutput schema / properties / address / description
      Removed value: -"The street only when the business published one."
    • removedOutput schema / properties / answering / description
      Removed value: -"Its inbox answered this network within the last day."
    • removedOutput schema / properties / attributes / description
      Removed value: -"Keys of GET /v1/attributes."
    • removedOutput schema / properties / categories / description
      Removed value: -"Slugs of the categories list."
    • removedOutput schema / properties / category / properties / group / description
      Removed value: -"Its group: a slug of GET /v1/categories."
    • removedOutput schema / properties / category / properties / path / description
      Removed value: -"Ancestor ids of the primary, root first, the primary last."
    • removedOutput schema / properties / country / description
      Removed value: -"ISO 3166-1 alpha-2."
    • removedOutput schema / properties / description / description
      Removed value: -"As the business wrote it."
    • removedOutput schema / properties / distance_km / description
      Removed value: -"Searches near a point only."
    • removedOutput schema / properties / domain / description
      Removed value: -"The business's own domain, where its inbox is."
    • removedOutput schema / properties / door_history / description
      Removed value: -"The history of the doors this listing shows (§4.8)."
    • removedOutput schema / properties / door_history / properties / as_of / description
      Removed value: -"The UTC day it was read on."
    • removedOutput schema / properties / door_history / properties / as_of / pattern
      Removed value: -"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
    • removedOutput schema / properties / door_history / properties / doors / items / properties / checks / description
      Removed value: -"A door the network reads every day (a member's, a claimed listing's), from 14 checked days."
    • removedOutput schema / properties / door_history / properties / doors / items / properties / checks / properties / answered / description
      Removed value: -"Of them, days on which every check answered: one missed check (failed, or blocked while the door is down by the network's reads) makes the day missed, and one refused check (blocked otherwise) makes it refused."
    • removedOutput schema / properties / door_history / properties / doors / items / properties / checks / properties / answered / maximum
      Removed value: -9007199254740991
    • removedOutput schema / properties / door_history / properties / doors / items / properties / checks / properties / days / description
      Removed value: -"Days checked: days on which the network's daily read of the door concluded. A read an agent's report or the business asked for is no check."
    • removedOutput schema / properties / door_history / properties / doors / items / properties / checks / properties / days / maximum
      Removed value: -9007199254740991
    • removedOutput schema / properties / door_history / properties / doors / items / properties / checks / properties / first_checked / description
      Removed value: -"The first day checked."
    • removedOutput schema / properties / door_history / properties / doors / items / properties / checks / properties / first_checked / pattern
      Removed value: -"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
    • removedOutput schema / properties / door_history / properties / doors / items / properties / checks / properties / last_checked / description
      Removed value: -"The last day checked."
    • removedOutput schema / properties / door_history / properties / doors / items / properties / checks / properties / last_checked / pattern
      Removed value: -"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
    • removedOutput schema / properties / door_history / properties / doors / items / properties / checks / properties / recent / description
      Removed value: -"The last 90 days ending on as_of, oldest first: a every check answered, x one was missed, b one was refused and none missed, . no check that day."
    • removedOutput schema / properties / door_history / properties / doors / items / properties / checks / properties / refused / description
      Removed value: -"Of them, days on which a check was refused and none was missed: never answered days."
    • removedOutput schema / properties / door_history / properties / doors / items / properties / checks / properties / refused / maximum
      Removed value: -9007199254740991
    • removedOutput schema / properties / door_history / properties / doors / items / properties / current / description
      Removed value: -"Whether a door of this type is at this host now (not gone)."
    • removedOutput schema / properties / door_history / properties / doors / items / properties / days_seen / description
      Removed value: -"On how many days a read of the network's found it answering: a door read about once a month is seen on few days, and nothing is said of the days between."
    • removedOutput schema / properties / door_history / properties / doors / items / properties / days_seen / maximum
      Removed value: -9007199254740991
    • removedOutput schema / properties / door_history / properties / doors / items / properties / first_seen / description
      Removed value: -"The first UTC day a read of the network's found a door of this type at this host answering."
    • removedOutput schema / properties / door_history / properties / doors / items / properties / first_seen / pattern
      Removed value: -"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
    • removedOutput schema / properties / door_history / properties / doors / items / properties / host / description
      Removed value: -"The door's host, lower case."
    • removedOutput schema / properties / door_history / properties / doors / items / properties / last_seen / description
      Removed value: -"The last such day."
    • removedOutput schema / properties / door_history / properties / doors / items / properties / last_seen / pattern
      Removed value: -"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
    • removedOutput schema / properties / door_history / properties / doors / items / properties / summary / description
      Removed value: -"With checks, in English: \"Answered every check on 41 of 42 days checked since 3 Oct 2026 (97%).\", the share floored, the days refused after it (\"(75%; refused our check on 5)\"), \"from … to …\" when the last check is more than 7 days old. Informative: another network may word it its own way."
    • removedOutput schema / properties / doors / items / properties / checked / description
      Removed value: -"A member's inbox door, on its detail: what the network's own reads last found in the past 24 hours (§4.8). answered; failing; could_not_check, the door refused the read (403, 429, a challenge page), so the business's signed ping alone says it answers. Absent when the network made no read."
    • removedOutput schema / properties / doors / items / properties / checked / properties / at / pattern
      Removed value: -"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
    • removedOutput schema / properties / doors / items / properties / checked_at / pattern
      Removed value: -"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
    • removedOutput schema / properties / doors / items / properties / level / description
      Removed value: -"What this door alone reaches, from the network's own probe."
    • removedOutput schema / properties / doors / items / properties / protocol / description
      Removed value: -"The protocol it speaks, for type \"other\" only."
    • removedOutput schema / properties / doors / items / properties / src / description
      Removed value: -"declared: the business said so; seen: read from the door's own tools."
    • removedOutput schema / properties / doors / items / properties / status / description
      Removed value: -"failing: 3 failures in 7 days; it counts for nothing until it works."
    • removedOutput schema / properties / facts / description
      Removed value: -"Every displayed value of an entry that is not a member, with its source and date."
    • removedOutput schema / properties / facts / items / properties / at / pattern
      Removed value: -"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
    • removedOutput schema / properties / facts / items / properties / url / description
      Removed value: -"The page or door it was read from."
    • removedOutput schema / properties / facts / items / properties / via / description
      Removed value: -"How it came: model, read by a language model; business, the business's own word (its registration, or a correction it made)."
    • removedOutput schema / properties / found / properties / about_url / description
      Removed value: -"The network's page for businesses: why it is here, and how to correct it or opt out."
    • removedOutput schema / properties / found / properties / checked_at / pattern
      Removed value: -"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
    • removedOutput schema / properties / found / properties / note / description
      Removed value: -"\"found on its own website · not a member · checked <YYYY-MM-DD>\""
    • removedOutput schema / properties / has_inbox / description
      Removed value: -"It has an inbox door: ours or any compatible inbox."
    • removedOutput schema / properties / hours / description
      Removed value: -"The whole week, and the closures that have not ended."
    • removedOutput schema / properties / hours / properties / closures / items / properties / from / pattern
      Removed value: -"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
    • removedOutput schema / properties / hours / properties / closures / items / properties / to / pattern
      Removed value: -"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
    • removedOutput schema / properties / hours_today / description
      Removed value: -"Today's hours in its own time zone, like \"09:00–13:00, 14:00–19:00\", or \"closed today\"; null when it published none."
    • removedOutput schema / properties / human_contact_only / description
      Removed value: -"It publishes only human channels; never served while nothing below askable is listed."
    • removedOutput schema / properties / inbox / description
      Removed value: -"The business's own inbox, where it takes bookings, orders and questions; this server takes no orders or payments and books nothing itself. Present whenever has_inbox is true or absent."
    • removedOutput schema / properties / inbox / properties / mcp / description
      Removed value: -"Where an assistant books, orders or asks."
    • removedOutput schema / properties / level / description
      Removed value: -"The highest level of its live doors (§4.9)."
    • removedOutput schema / properties / listing_url / description
      Removed value: -"Its full listing on this network (GET /v1/businesses/{domain})."
    • removedOutput schema / properties / location_precision / description
      Removed value: -"town: distance_km is from the centre of the town its own site names (GeoNames), not its own place, in whole kilometres."
    • removedOutput schema / properties / name / description
      Removed value: -"As the business wrote it."
    • removedOutput schema / properties / open_now / description
      Removed value: -"Open at the moment of the answer by the hours it published, in its own time zone; null when it published none."
    • removedOutput schema / properties / outcomes / additionalProperties / maximum
      Removed value: -9007199254740991
    • removedOutput schema / properties / outcomes / description
      Removed value: -"How many of the promises made at this business closed with each outcome (ADR-017 §3)."
    • removedOutput schema / properties / place / description
      Removed value: -"For entries that are not members; a member keeps city, country and address."
    • removedOutput schema / properties / place / properties / country / description
      Removed value: -"ISO 3166-1 alpha-2."
    • removedOutput schema / properties / place / properties / ships_to / description
      Removed value: -"ISO 3166-1 alpha-2 codes, or [\"*\"] for anywhere."
    • removedOutput schema / properties / report / description
      Removed value: -"Report how each use of a door went, done or not: see the guide."
    • removedOutput schema / properties / report / properties / guide / description
      Removed value: -"How to report, for an agent: <network>/report.md."
    • removedOutput schema / properties / report / properties / reward / description
      Removed value: -"What the agent gets for reporting, in one sentence."
    • removedOutput schema / properties / report / properties / tool / description
      Removed value: -"The MCP tool that takes door reports: report_door."
    • removedOutput schema / properties / report / properties / url / description
      Removed value: -"The same over REST: POST <network>/v1/door-reports."
    • removedOutput schema / properties / requestable / description
      Removed value: -"The kinds a live door declared it answers; never from what the crawler saw alone."
    • removedOutput schema / properties / rules / properties / version / maximum
      Removed value: -9007199254740991
    • removedOutput schema / properties / services / description
      Removed value: -"Names and how each is taken; prices, durations and free times are at its inbox."
    • removedOutput schema / properties / source / description
      Removed value: -"member: through its inbox; registered: by the business, with a proof; found: by the network's crawler."
    • removedOutput schema / properties / standing / description
      Removed value: -"From the last nightly count of the promises it kept; absent while the directory's order is neutral."
    • removedOutput schema / properties / standing / properties / broken / description
      Removed value: -"From rules version 8: the broken outcomes the night scored."
    • removedOutput schema / properties / standing / properties / broken / maximum
      Removed value: -9007199254740991
    • removedOutput schema / properties / standing / properties / in_words / description
      Removed value: -"The tier in one plain sentence, or a self-reported record's counts; never a mark against the business."
    • removedOutput schema / properties / standing / properties / kept / description
      Removed value: -"From rules version 8: the kept outcomes the night scored."
    • removedOutput schema / properties / standing / properties / kept / maximum
      Removed value: -9007199254740991
    • removedOutput schema / properties / standing / properties / open / description
      Removed value: -"From rules version 8: its v2 promises still open."
    • removedOutput schema / properties / standing / properties / open / maximum
      Removed value: -9007199254740991
    • removedOutput schema / properties / standing / properties / ranked / description
      Removed value: -"Its record puts it before the daily shuffle."
    • removedOutput schema / properties / standing / properties / self_reported / description
      Removed value: -"From rules version 8: its record rests on its own word (less than a fifth of it kept outcomes a verified acknowledgement backs), so it is not ranked and has no score; in_words says its counts."
    • removedOutput schema / properties / standing / properties / verified_kept_share / description
      Removed value: -"From rules version 8, when not self_reported: the share of its record that is kept outcomes a verified acknowledgement backs (0.2 or more)."
    • removedOutput schema / properties / standing / properties / verified_share / description
      Removed value: -"From rules version 8, when not self_reported: the share of its record that is verified evidence."
    • removedOutput schema / properties / tags / description
      Removed value: -"Other words the business gave for what it does."
    • removedOutput schema / properties / takes / description
      Removed value: -"What its inbox takes: booking, order, quote_request, message, refund."
    • removedOutput schema / properties / track_record / description
      Removed value: -"A 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."
    • removedOutput schema / properties / track_record / properties / as_of / description
      Removed value: -"The nightly count it is from (00:00 UTC)."
    • removedOutput schema / properties / track_record / properties / as_of / pattern
      Removed value: -"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
    • removedOutput schema / properties / track_record / properties / broken / description
      Removed value: -"shown: closed as not kept by the business or by a customer's report that stands, left open 9 days past due, or a refund paid late."
    • removedOutput schema / properties / track_record / properties / broken / maximum
      Removed value: -9007199254740991
    • removedOutput schema / properties / track_record / properties / closed / description
      Removed value: -"gathering and shown: kept plus broken."
    • removedOutput schema / properties / track_record / properties / closed / maximum
      Removed value: -9007199254740991
    • removedOutput schema / properties / track_record / properties / confirmable / description
      Removed value: -"shown: whether this network can verify any acknowledgement yet (a recognised platform's agent key, or an established person's)."
    • removedOutput schema / properties / track_record / properties / confirmed / description
      Removed value: -"shown: how many of the closed are kept outcomes a verified acknowledgement backs, confirmed by the customer's side (a customer's report is not a confirmation); the rest are the business's own word."
    • removedOutput schema / properties / track_record / properties / confirmed / maximum
      Removed value: -9007199254740991
    • removedOutput schema / properties / track_record / properties / customers / description
      Removed value: -"gathering and shown, unless self_reported: the distinct customers the closed promises came from, as its receipts name them (the customer's mailbox when known, else, before rules version 8, the receipt's sub; from rules version 8 a sub that names no person is never a customer, and every receipt at a business that names nobody is one anonymous customer). Not reputation.customers, which counts only customers this network can tell apart."
    • removedOutput schema / properties / track_record / properties / customers / maximum
      Removed value: -9007199254740991
    • removedOutput schema / properties / track_record / properties / from / description
      Removed value: -"shown: the earliest day of the evidence counted, at 00:00 UTC (a day, never the moment of a promise)."
    • removedOutput schema / properties / track_record / properties / from / pattern
      Removed value: -"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
    • removedOutput schema / properties / track_record / properties / held_until / description
      Removed value: -"held: the night its record is counted from."
    • removedOutput schema / properties / track_record / properties / held_until / pattern
      Removed value: -"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
    • removedOutput schema / properties / track_record / properties / in_words / description
      Removed value: -"The record in one or two plain sentences, with how many of its closed promises the customer's side confirmed; the rest are the business's own word."
    • removedOutput schema / properties / track_record / properties / kept / description
      Removed value: -"shown."
    • removedOutput schema / properties / track_record / properties / kept / maximum
      Removed value: -9007199254740991
    • removedOutput schema / properties / track_record / properties / open / description
      Removed value: -"shown, from rules version 8: its v2 promises still open (reputation.open)."
    • removedOutput schema / properties / track_record / properties / open / maximum
      Removed value: -9007199254740991
    • removedOutput schema / properties / track_record / properties / refunds_late / description
      Removed value: -"shown, of broken: refunds paid late (refund.late)."
    • removedOutput schema / properties / track_record / properties / refunds_late / maximum
      Removed value: -9007199254740991
    • removedOutput schema / properties / track_record / properties / self_reported / description
      Removed value: -"gathering and shown, from rules version 8: the record rests on the business's own word (less than a fifth of it is kept outcomes a verified acknowledgement backs, as its reputation's self_reported), so it has no customers, and its threshold none."
    • removedOutput schema / properties / track_record / properties / state / description
      Removed value: -"held: a new member's 30 days after it joins, when nothing is counted; none: no receipts yet; pending: receipts the next nightly count reaches; gathering: fewer closed promises, or customers, than threshold; shown: the record."
    • removedOutput schema / properties / track_record / properties / threshold / description
      Removed value: -"What a record shows from: closed promises, from customers distinct customers; a self_reported record is not asked for customers, and has none here."
    • removedOutput schema / properties / track_record / properties / threshold / properties / closed / maximum
      Removed value: -9007199254740991
    • removedOutput schema / properties / track_record / properties / threshold / properties / customers / maximum
      Removed value: -9007199254740991
    • removedOutput schema / properties / track_record / properties / to / description
      Removed value: -"shown: the latest day of the evidence counted, at 00:00 UTC (a day, never the moment of a promise)."
    • removedOutput schema / properties / track_record / properties / to / pattern
      Removed value: -"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
    • removedOutput schema / properties / track_record / properties / unclosed / description
      Removed value: -"shown, of broken: left open 9 days past due (promise.unclosed)."
    • removedOutput schema / properties / track_record / properties / unclosed / maximum
      Removed value: -9007199254740991
    • removedOutput schema / properties / why / description
      Removed value: -"Why it is in this place of the list, in plain words."
    • removedOutput schema / title
      Removed value: -"MCP get_business: structuredContent"
  6. Changed7 schema fields changed
    • removedOutput schema / properties / hours / properties / weekly / properties / fri / items / items
      Removed value: -false
    • removedOutput schema / properties / hours / properties / weekly / properties / mon / items / items
      Removed value: -false
    • removedOutput schema / properties / hours / properties / weekly / properties / sat / items / items
      Removed value: -false
    • removedOutput schema / properties / hours / properties / weekly / properties / sun / items / items
      Removed value: -false
    • removedOutput schema / properties / hours / properties / weekly / properties / thu / items / items
      Removed value: -false
    • removedOutput schema / properties / hours / properties / weekly / properties / tue / items / items
      Removed value: -false
    • removedOutput schema / properties / hours / properties / weekly / properties / wed / items / items
      Removed value: -false
  7. Changed1 schema field changed
    • changedOutput schema / properties / outcomes / propertyNames / enum
      Previous value: -[
      -  "booking.completed",
      -  "order.fulfilled",
      -  "booking.cancelled_by_business",
      -  "order.not_fulfilled",
      -  "booking.no_show_business",
      -  "order.not_received",
      -  "promise.unclosed",
      -  "booking.no_show_customer",
      -  "booking.cancelled_late_by_customer",
      -  "order.payment_failed",
      -  "order.charged_back",
      -  "booking.cancelled_by_customer",
      -  "order.cancelled_by_customer",
      -  "order.lapsed",
      -  "refund.honoured",
      -  "refund.late",
      -  "refund.cancelled_by_customer",
      -  "order.refund_refused"
      -]New value: +[
      +  "booking.completed",
      +  "order.fulfilled",
      +  "booking.cancelled_by_business",
      +  "order.not_fulfilled",
      +  "booking.no_show_business",
      +  "order.not_received",
      +  "promise.unclosed",
      +  "promise.closed_late",
      +  "booking.no_show_customer",
      +  "booking.cancelled_late_by_customer",
      +  "order.payment_failed",
      +  "order.charged_back",
      +  "booking.cancelled_by_customer",
      +  "order.cancelled_by_customer",
      +  "order.lapsed",
      +  "refund.honoured",
      +  "refund.late",
      +  "refund.cancelled_by_customer",
      +  "order.refund_refused"
      +]
  8. Changed1 schema field changed
    • addedOutput schema / properties / location_precision
      Added value: +{
      +  "description": "town: distance_km is from the centre of the town its own site names (GeoNames), not its own place, in whole kilometres.",
      +  "enum": [
      +    "town"
      +  ],
      +  "type": "string"
      +}
  9. Changed3 schema fields changed
    • addedOutput schema / properties / accepts / properties / pay_with
      Added value: +{
      +  "description": "Each of pay with its evidence, in the vocabulary's order. Absent from a listing built before it.",
      +  "items": {
      +    "properties": {
      +      "label": {
      +        "description": "Its English name: Apple Pay for apple_pay.",
      +        "type": "string"
      +      },
      +      "src": {
      +        "enum": [
      +          "declared",
      +          "seen"
      +        ],
      +        "type": "string"
      +      },
      +      "token": {
      +        "description": "A payment token of GET /v1/attributes.",
      +        "type": "string"
      +      },
      +      "url": {
      +        "description": "The page, file, profile, manifest or door the evidence is at.",
      +        "format": "uri",
      +        "type": "string"
      +      },
      +      "via": {
      +        "description": "Where the evidence is: registration, manifest, schema_org, ucp, acp, door, file or page today. A later network may add one: read a via you do not know as evidence of its src.",
      +        "pattern": "^[a-z][a-z0-9_]{0,31}$",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "token",
      +      "label",
      +      "src",
      +      "via"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / facts / items / properties / via / description
      Added value: +"How it came: model, read by a language model; business, the business's own word (its registration, or a correction it made)."
    • changedOutput schema / properties / inbox / description
      Previous value: -"The 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."New value: +"The business's own inbox, where it takes bookings, orders and questions; this server takes no orders or payments and books nothing itself. Present whenever has_inbox is true or absent."
  10. Changed1 schema field changed
    • addedOutput schema / properties / door_history
      Added value: +{
      +  "description": "The history of the doors this listing shows (§4.8).",
      +  "properties": {
      +    "as_of": {
      +      "description": "The UTC day it was read on.",
      +      "format": "date",
      +      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +      "type": "string"
      +    },
      +    "doors": {
      +      "items": {
      +        "properties": {
      +          "checks": {
      +            "description": "A door the network reads every day (a member's, a claimed listing's), from 14 checked days.",
      +            "properties": {
      +              "answered": {
      +                "description": "Of them, days on which every check answered: one missed check (failed, or blocked while the door is down by the network's reads) makes the day missed, and one refused check (blocked otherwise) makes it refused.",
      +                "maximum": 9007199254740991,
      +                "minimum": 0,
      +                "type": "integer"
      +              },
      +              "days": {
      +                "description": "Days checked: days on which the network's daily read of the door concluded. A read an agent's report or the business asked for is no check.",
      +                "maximum": 9007199254740991,
      +                "minimum": 1,
      +                "type": "integer"
      +              },
      +              "first_checked": {
      +                "description": "The first day checked.",
      +                "format": "date",
      +                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +                "type": "string"
      +              },
      +              "last_checked": {
      +                "description": "The last day checked.",
      +                "format": "date",
      +                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +                "type": "string"
      +              },
      +              "recent": {
      +                "description": "The last 90 days ending on as_of, oldest first: a every check answered, x one was missed, b one was refused and none missed, . no check that day.",
      +                "pattern": "^[axb.]{90}$",
      +                "type": "string"
      +              },
      +              "refused": {
      +                "description": "Of them, days on which a check was refused and none was missed: never answered days.",
      +                "maximum": 9007199254740991,
      +                "minimum": 0,
      +                "type": "integer"
      +              }
      +            },
      +            "required": [
      +              "first_checked",
      +              "last_checked",
      +              "days",
      +              "answered",
      +              "refused",
      +              "recent"
      +            ],
      +            "type": "object"
      +          },
      +          "current": {
      +            "description": "Whether a door of this type is at this host now (not gone).",
      +            "type": "boolean"
      +          },
      +          "days_seen": {
      +            "description": "On how many days a read of the network's found it answering: a door read about once a month is seen on few days, and nothing is said of the days between.",
      +            "maximum": 9007199254740991,
      +            "minimum": 1,
      +            "type": "integer"
      +          },
      +          "first_seen": {
      +            "description": "The first UTC day a read of the network's found a door of this type at this host answering.",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "host": {
      +            "description": "The door's host, lower case.",
      +            "type": "string"
      +          },
      +          "last_seen": {
      +            "description": "The last such day.",
      +            "format": "date",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +            "type": "string"
      +          },
      +          "summary": {
      +            "description": "With checks, in English: \"Answered every check on 41 of 42 days checked since 3 Oct 2026 (97%).\", the share floored, the days refused after it (\"(75%; refused our check on 5)\"), \"from … to …\" when the last check is more than 7 days old. Informative: another network may word it its own way.",
      +            "type": "string"
      +          },
      +          "type": {
      +            "pattern": "^(inbox|mcp|a2a|openapi|api|ucp|acp|nlweb|webhook|other|platform:[a-z0-9-]{1,40})$",
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "type",
      +          "host",
      +          "first_seen",
      +          "last_seen",
      +          "days_seen",
      +          "current"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "as_of",
      +    "doors"
      +  ],
      +  "type": "object"
      +}
  11. Changed2 schema fields changed
    • changedOutput schema / properties / doors / items / properties / level / enum
      Previous value: -[
      -  "listed",
      -  "readable",
      -  "askable",
      -  "bookable",
      -  "payable"
      -]New value: +[
      +  "listed",
      +  "readable",
      +  "askable",
      +  "bookable",
      +  "orderable",
      +  "payable"
      +]
    • changedOutput schema / properties / level / enum
      Previous value: -[
      -  "listed",
      -  "readable",
      -  "askable",
      -  "bookable",
      -  "payable"
      -]New value: +[
      +  "listed",
      +  "readable",
      +  "askable",
      +  "bookable",
      +  "orderable",
      +  "payable"
      +]
  12. Changed7 schema fields changed
    • changedOutput schema / properties / hours / properties / weekly / properties / fri / items / prefixItems
      Previous value: -[
      -  {
      -    "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
      -    "type": "string"
      -  },
      -  {
      -    "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
      -    "type": "string"
      -  }
      -]New value: +[
      +  {
      +    "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
      +    "type": "string"
      +  },
      +  {
      +    "pattern": "^(([01]\\d|2[0-3]):[0-5]\\d|24:00)$",
      +    "type": "string"
      +  }
      +]
    • changedOutput schema / properties / hours / properties / weekly / properties / mon / items / prefixItems
      Previous value: -[
      -  {
      -    "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
      -    "type": "string"
      -  },
      -  {
      -    "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
      -    "type": "string"
      -  }
      -]New value: +[
      +  {
      +    "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
      +    "type": "string"
      +  },
      +  {
      +    "pattern": "^(([01]\\d|2[0-3]):[0-5]\\d|24:00)$",
      +    "type": "string"
      +  }
      +]
    • changedOutput schema / properties / hours / properties / weekly / properties / sat / items / prefixItems
      Previous value: -[
      -  {
      -    "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
      -    "type": "string"
      -  },
      -  {
      -    "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
      -    "type": "string"
      -  }
      -]New value: +[
      +  {
      +    "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
      +    "type": "string"
      +  },
      +  {
      +    "pattern": "^(([01]\\d|2[0-3]):[0-5]\\d|24:00)$",
      +    "type": "string"
      +  }
      +]
    • changedOutput schema / properties / hours / properties / weekly / properties / sun / items / prefixItems
      Previous value: -[
      -  {
      -    "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
      -    "type": "string"
      -  },
      -  {
      -    "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
      -    "type": "string"
      -  }
      -]New value: +[
      +  {
      +    "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
      +    "type": "string"
      +  },
      +  {
      +    "pattern": "^(([01]\\d|2[0-3]):[0-5]\\d|24:00)$",
      +    "type": "string"
      +  }
      +]
    • changedOutput schema / properties / hours / properties / weekly / properties / thu / items / prefixItems
      Previous value: -[
      -  {
      -    "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
      -    "type": "string"
      -  },
      -  {
      -    "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
      -    "type": "string"
      -  }
      -]New value: +[
      +  {
      +    "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
      +    "type": "string"
      +  },
      +  {
      +    "pattern": "^(([01]\\d|2[0-3]):[0-5]\\d|24:00)$",
      +    "type": "string"
      +  }
      +]
    • changedOutput schema / properties / hours / properties / weekly / properties / tue / items / prefixItems
      Previous value: -[
      -  {
      -    "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
      -    "type": "string"
      -  },
      -  {
      -    "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
      -    "type": "string"
      -  }
      -]New value: +[
      +  {
      +    "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
      +    "type": "string"
      +  },
      +  {
      +    "pattern": "^(([01]\\d|2[0-3]):[0-5]\\d|24:00)$",
      +    "type": "string"
      +  }
      +]
    • changedOutput schema / properties / hours / properties / weekly / properties / wed / items / prefixItems
      Previous value: -[
      -  {
      -    "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
      -    "type": "string"
      -  },
      -  {
      -    "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
      -    "type": "string"
      -  }
      -]New value: +[
      +  {
      +    "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
      +    "type": "string"
      +  },
      +  {
      +    "pattern": "^(([01]\\d|2[0-3]):[0-5]\\d|24:00)$",
      +    "type": "string"
      +  }
      +]
  13. Changed2 schema fields changed
    • addedOutput schema / properties / doors / items / properties / checked
      Added value: +{
      +  "description": "A member's inbox door, on its detail: what the network's own reads last found in the past 24 hours (§4.8). answered; failing; could_not_check, the door refused the read (403, 429, a challenge page), so the business's signed ping alone says it answers. Absent when the network made no read.",
      +  "properties": {
      +    "at": {
      +      "format": "date-time",
      +      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
      +      "type": "string"
      +    },
      +    "by": {
      +      "const": "network",
      +      "type": "string"
      +    },
      +    "status": {
      +      "enum": [
      +        "answered",
      +        "failing",
      +        "could_not_check"
      +      ],
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "status",
      +    "at",
      +    "by"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / report
      Added value: +{
      +  "description": "Report how each use of a door went, done or not: see the guide.",
      +  "properties": {
      +    "guide": {
      +      "description": "How to report, for an agent: <network>/report.md.",
      +      "format": "uri",
      +      "type": "string"
      +    },
      +    "reward": {
      +      "description": "What the agent gets for reporting, in one sentence.",
      +      "type": "string"
      +    },
      +    "tool": {
      +      "description": "The MCP tool that takes door reports: report_door.",
      +      "type": "string"
      +    },
      +    "url": {
      +      "description": "The same over REST: POST <network>/v1/door-reports.",
      +      "format": "uri",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "tool",
      +    "url",
      +    "guide",
      +    "reward"
      +  ],
      +  "type": "object"
      +}
  14. First observed

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/idempotent annotations, the description discloses a real side effect: asking may trigger a fresh site read when the last read is over a day old, flagged as checking_again. It also discloses that non-member businesses return fact-level sources and dates, which is genuine behavioral context not present in the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The resource is front-loaded ('One business's full listing'), and the long field enumeration does real work by setting expectations about breadth of return. The single dense sentence is slightly overloaded, and the parenthetical 'checking_again' token is cryptic without context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter read-only tool with an output schema present, the description covers the domain source, the breadth of returned data, and the stale-read/refresh behavior. Since an output schema exists, the return-field enumeration is largely redundant, but nothing essential for correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With a single parameter at 100% schema coverage, the schema already fully documents the domain argument. The description repeats the same provenance hint ('as search_businesses gave it') without adding format or constraint detail beyond the schema, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description says exactly what the tool returns for one business and ties retrieval to a domain obtained from search_businesses, which separates it from the sibling search tool. It is framed as a noun phrase rather than a verb, and it does not distinguish itself from check_business or ask_business, which also take a single business.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'by its domain as search_businesses gave it' implies the intended workflow (search first, then fetch by domain), but there is no explicit statement of when to use this versus check_business, ask_business, or get_offers. Usage is inferable rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources