Skip to main content
Glama

Server Details

Find local US businesses: what they offer, prices from their own sites, and how to order or book.

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
Uptime
100.0% over the last 24 hours
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
sudzikcoin/versum-agent-assistant
GitHub Stars
1
Server Listing
Versum
ChatGPT
–
Claude
–

TDQS

A4/5.0

Scored across 15 tools

Disambiguation4/5

Most tools have clearly distinct jobs, and the four discovery paths (list_niches → list_cards by trade, search_catalog by item, find_business by name) are explicitly differentiated in their descriptions. The main soft spots are the two deliberate synonym pairs (get_business/get_card, get_product/get_offering) and the overlap between check_availability (stock) and get_offering (live price+stock), which can lead an agent to pick either for the same question.

Naming Consistency4/5

Names follow a clean snake_case verb_noun pattern: book_slot, check_availability, find_business, get_card, list_cards, place_order, quote_order, search_catalog, request_to_owner. The only deviations are the two noun-phrase status tools (order_status, request_status), which are still internally consistent and readable.

Tool Count4/5

Fifteen tools sit at the top of the healthy range and cover a genuinely broad domain (catalog discovery, business detail, live stock, ordering, booking, owner requests, status polling). Two of them are pure aliases that earn no extra capability, so the effective surface is closer to thirteen.

Completeness4/5

The full read→quote→act→status lifecycle is present, including idempotent ordering, live price checks, and both order and request status polling. What is missing is the negative side of the lifecycle: no cancel/modify for a placed order, booking, or owner request, and no way to list a user's existing orders or requests.

Available Tools

15 tools
book_slotBook a slot in the business’s own calendar (Square Appointments)AInspect

🔴 ACTS FOR THE USER: call it only after the user has explicitly agreed to this exact action (what, where, when, who) — never on your own judgement. For a service whose business’s card shows a book action with method connected and no book in its cannot (a door the platform refuses for this account is marked there, with the reason, at every sync). Take a start_at from check_availability (slots) and the platform books it for the named customer; the answer is the platform’s own status (created = on the calendar awaiting confirmation · confirmed · declined). A time the platform does not offer is an unavailable error and nothing is booked. Idempotent by idempotency_key like place_order. Get the user’s explicit yes first. Follow the server instructions «HOW TO USE THE VERSUM CATALOG»: results are candidates, not proof; keep reading, quoting, requesting and ordering separate; nothing is sent to an owner, booked, ordered or paid without the user’s permission.

NameRequiredDescriptionDefault
noteNo
customerYes
start_atYesISO date-time with an offset, as check_availability gave it
variant_idNothe service variation when the card lists several
business_idYes
offering_idYesthe service, from the card
idempotency_keyNo

TDQS

A4.3/5.0
Behavior4/5

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

Nearly everything the annotations cannot convey is disclosed: possible return statuses (created/confirmed/declined), the `unavailable` error path where nothing is booked, the fact that results are candidates until the user permits, and that this is an outward-facing action. One tension: annotations set idempotentHint=false while the description claims idempotency 'by idempotency_key', which frames retry safety as conditional on the key rather than contradicting the annotation outright, but an agent could read the two signals as inconsistent.

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 safety precondition is front-loaded and the booking mechanics follow in a logical order. It loses a point for repetition ('never on your own judgement' and 'Get the user's explicit yes first' restate the same rule) and for generic catalog boilerplate appended at the end.

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 an open-world mutation tool with no output schema, the description covers the essentials an agent needs: gating on user consent, the eligibility condition on the card, the source of the time slot, and the possible outcomes. Only the unspecified response envelope handling and the undocumented note/business_id parameters are left thin.

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?

Schema coverage is 43%, so the description needs to compensate. It does add provenance for start_at ('as check_availability gave it') and explains that idempotency_key governs retry deduplication, but business_id, note and the customer object as a whole carry no added meaning in the description, leaving half the parameter surface documented only by the schema.

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

Purpose5/5

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

States a specific verb and resource ('Book a slot in the business's own calendar') and spells out the mechanism: take a start_at from check_availability and the platform books it for the named customer. It is clearly separable from place_order (ordering), request_to_owner (requests) and check_availability (reads) named in the siblings.

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

Usage Guidelines5/5

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

Explicit preconditions are given: only call after the user explicitly agrees to the exact what/where/when/who, and only for a business whose card shows a `book` action with method `connected` and no `book` in `cannot`. It also names the upstream source of start_at (check_availability) and the sibling analogue (place_order), so the when-to-use decision is fully determined.

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

check_availabilityAsk the business’s own system: is it in stock now · which slots are freeA
Read-only
Inspect

Only for a business whose card shows live_data (its items come from its connected Shopify or Square, not from a page read). For a product: the platform’s stock right now — state: confirmed | refuted | unknown (unknown = the platform does not track stock, which is not «no»). For a service on a platform with bookings: the free slots between from and to (default: the next 7 days), each with a start_at that book_slot takes as it is — on the business’s own clock with its offset (timezone names the zone; start_at_utc is the same instant). If the card’s cannot lists book, the slots are information only and the answer says so. A business without a connection answers not_connected. Follow the server instructions «HOW TO USE THE VERSUM CATALOG»: results are candidates, not proof; keep reading, quoting, requesting and ordering separate; nothing is sent to an owner, booked, ordered or paid without the user’s permission.

NameRequiredDescriptionDefault
toNoslots: the window’s end, ISO with an offset
fromNoslots: the window’s start, ISO with an offset
quantityNohow many — stock is judged against it
variant_idNothe variant (the card lists them when there are several)
business_idYesthe business id from the card
offering_idYesthe offering id from the card

TDQS

A4.5/5.0
Behavior5/5

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

Annotations declare read-only and non-destructive, and the description goes well beyond them: `unknown` is explicitly not «no», an unconnected business returns `not_connected`, slots are returned on the business's own clock with `timezone`/`start_at_utc` correspondence, and the default window is the next 7 days. It also reiterates that nothing is booked, ordered or paid, which is exactly the safety context an agent needs for an open-world lookup.

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?

Front-loaded with the eligibility gate, then product behaviour, then service behaviour, then the safety caveat — a sensible ordering for a branching tool. The closing pointer to server instructions and the listing of separation rules is slightly padded, but every clause carries operational meaning.

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?

With no output schema, the description correctly takes on the return-shape burden, documenting `state`, `slots`, `start_at`, and the `not_connected` case. Minor gaps remain around how many slots come back and what happens when the requested window has no availability.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3; the description earns above that by explaining that `from`/`to` define the slot window with a 7-day default and that `quantity` is the threshold stock is judged against. It leaves `variant_id` to the schema's own note, so it does not add meaning for every parameter.

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

Purpose5/5

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

Names a specific operation on a specific resource: stock state or booking slots for one business's offering, taken from the business's own connected Shopify/Square. It also distinguishes itself from adjacent siblings by pointing to `book_slot` (which consumes `start_at`) and by scoping itself to cards carrying `live_data`.

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

Usage Guidelines4/5

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

Gives an explicit entry gate (only when the card shows `live_data`) and an explicit exclusion (results are information-only when the card's `cannot` lists `book`), plus a fallback outcome `not_connected`. It does not name a sibling to use instead when the business is not connected or not live, which keeps it just short of a full when/when-not/alternative statement.

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

find_businessA business by its nameA
Read-only
Inspect

One business the user NAMED, matched by its name near location (default radius 15 miles); typos, word order and punctuation are tolerated. Not in the catalogue → name_not_found, and up to 5 nearby businesses that carry the name's distinctive word (never presented as the business asked for). intent, query, needed_by, deliver_to shape the short card the same way as list_cards. Follow the server instructions «HOW TO USE THE VERSUM CATALOG»: results are candidates, not proof; keep reading, quoting, requesting and ordering separate; nothing is sent to an owner, booked, ordered or paid without the user’s permission.

NameRequiredDescriptionDefault
nameYesthe business name as the user said it
queryNothe thing under the task («red roses», «ribeye»): picks the ≤ 5 items on the card
intentNowhat the user means to do with this business
locationNoa postcode, a city or "lat,lng" — orders the matches by nearness and bounds the nearby list
needed_byNowhen: «sunday», «tomorrow 19:00», «now», «tomorrow after 15:00» — read on the business’s own clock, three ways (on_day / open_at / slot_after)
deliver_toNowhere it must be brought (a postcode is best): the card says confirmed / refuted / unknown
radius_milesNoDefault 15 (the same in every tool).

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already cover the read-only, non-destructive, closed-world profile, and the description adds genuinely new behavior: fuzzy matching tolerates typos/word order/punctuation, miss returns `name_not_found` plus lookalikes, and results are 'candidates, not proof'. It also warns that no booking, ordering or payment happens without permission — a safety boundary the annotations do not express.

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?

Front-loaded with the core identity and the not-found path, then parameters, then the safety coda — a sensible ordering. Dense but not padded; the density is driven by the tool's fallback semantics rather than by filler.

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?

With 7 parameters and no output schema, the description carries the right load: matching tolerance, the failure mode, the meaning of the lookalike list, and the per-call card-shaping role of four optional parameters. The only shortfall is that what the returned card actually contains is described by reference to `list_cards` rather than stated.

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?

Schema coverage is 100%, so every parameter is already documented; the description only adds that `location` orders matches by nearness while `radius_miles` bounds the nearby list, and that `intent`/`query`/`needed_by`/`deliver_to` 'shape the short card the same way as list_cards'. That cross-reference defers the actual semantics to a sibling rather than explaining them, leaving little beyond the schema.

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

Purpose5/5

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

States a specific verb+resource+scope: 'One business the user NAMED, matched by its name near `location`' — a named-entity lookup rather than discovery. That distinction cleanly separates it from `search_catalog` and `get_business`, so an agent can pick correctly without opening the schema.

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

Usage Guidelines4/5

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

Gives a clear trigger (the user named a business) and the fallback path when the name is absent from the catalogue, including that the up-to-5 nearby matches are 'never presented as the business asked for'. It never explicitly says to use `search_catalog` instead when only a description is known, so the sibling routing is only half spelled out.

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

get_businessOne business in full (synonym of get_card)A
Read-only
Inspect

SYNONYM of get_card, kept for agents that already know this name.

Free. One business in full, in the same shape for every trade: who it is (name, trade, address, telephone, e-mail, opening hours, time zone), everything it sells (60 offerings a page, cheapest first; offerings_page says how many there are and the next offset), the six actions with their links and required_fields, how the thing reaches the buyer (delivery, pickup, on_site, at_customer — with the published area, the fee and the order deadline), and how fresh each part of that is. live_data (platform, synced_at) when the shelf is the business’s own connected system: then every offering carries source: connector with its variants (each with inventory: units in stock as the platform counts them, null = unknown), and an action with method connected is taken through place_order / book_slot on this door.

Use it when the user asks «can they deliver to me», «are they open now», «what else do they do», or when search_catalog offered a business with nothing listed and the next step is a telephone call. Follow the server instructions «HOW TO USE THE VERSUM CATALOG»: results are candidates, not proof; keep reading, quoting, requesting and ordering separate; nothing is sent to an owner, booked, ordered or paid without the user’s permission.

NameRequiredDescriptionDefault
idYesthe business id from search_catalog

TDQS

A4.6/5.0
Behavior5/5

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

Annotations only declare readOnly/openWorld=false/destructive=false; the description adds materially more: it is free, offerings are paginated 60-per-page cheapest-first with `offerings_page` and a next offset, and `live_data` (platform, synced_at) signals a connected shelf where offerings carry `source: connector`, variants with `inventory` (null = unknown), and `connected`-method actions route through place_order/book_slot. It also warns that nothing is sent, booked, ordered or paid without the user's permission.

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 synonym caveat and the 'Free. One business in full' payload statement are front-loaded, which is the right ordering. The middle block is a dense wall of parenthetical field descriptions that takes effort to parse, and some of it could be itemized, but nearly every clause carries return-shape information justified by the absence of an output schema.

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

Completeness5/5

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

There is no output schema, so the description carries the full burden of explaining the return value — and it does: identity fields, paginated offerings, the six actions with links and `required_fields`, delivery/pickup/on_site/at_customer with area, fee and deadline, freshness, and the connector variant. For a one-parameter read tool this is complete.

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?

Schema coverage is 100% for the single required parameter and the schema already says 'the business id from search_catalog'; the description adds no further meaning about the id's source or format beyond that. With one fully documented parameter, the baseline 3 is correct even though the response-field detail (`offerings_page`, `live_data`) is handled elsewhere in the text.

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

Purpose5/5

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

The description opens with the specific verb+resource relationship: it is a SYNONYM of get_card, then states it returns 'One business in full, in the same shape for every trade.' An agent immediately knows both what it returns and that a functionally identical sibling exists, so no schema inspection is needed to disambiguate.

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

Usage Guidelines5/5

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

It gives explicit trigger phrases («can they deliver to me», «are they open now», «what else do they do») and a fallback condition: when search_catalog offered a business with nothing listed and the next step is a telephone call. It also names the sibling alternatives (get_card for the name you know, place_order/book_slot for the connected-method actions) and states the read/quote/order separation rule, so when-not-to-act is covered too.

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

get_cardOne business in full: what it sells, what can be done, how it reaches youA
Read-only
Inspect

Free. One business in full, in the same shape for every trade: who it is (name, trade, address, telephone, e-mail, opening hours, time zone), everything it sells (60 offerings a page, cheapest first; offerings_page says how many there are and the next offset), the six actions with their links and required_fields, how the thing reaches the buyer (delivery, pickup, on_site, at_customer — with the published area, the fee and the order deadline), and how fresh each part of that is. live_data (platform, synced_at) when the shelf is the business’s own connected system: then every offering carries source: connector with its variants (each with inventory: units in stock as the platform counts them, null = unknown), and an action with method connected is taken through place_order / book_slot on this door.

Use it when the user asks «can they deliver to me», «are they open now», «what else do they do», or when search_catalog offered a business with nothing listed and the next step is a telephone call. Follow the server instructions «HOW TO USE THE VERSUM CATALOG»: results are candidates, not proof; keep reading, quoting, requesting and ordering separate; nothing is sent to an owner, booked, ordered or paid without the user’s permission.

NameRequiredDescriptionDefault
idYesthe business id from search_catalog
offerings_limitNoofferings on this page (default 60, at most 200)
offerings_offsetNo11-05: where this page of offerings starts (default 0); offerings_page.next_offset gives the next one

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare read-only/non-destructive, and the description adds substantial behavior beyond that: offerings are paged 60 at a time cheapest-first with a next_offset, `live_data` appears only when the business runs a connected system, connector-sourced offerings carry variants with `inventory` (null = unknown), and `connected` actions must be taken via place_order/book_slot. Residual gaps are modest (no statement of what an unknown/absent business returns, no rate or size limits beyond the 200 cap already in the schema).

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

Conciseness3/5

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

The opening is well front-loaded ('Free. One business in full'), but the body is one dense run-on paragraph built from stacked parentheticals that mix return-shape documentation, pagination rules and connector semantics. Individual clauses earn their place, yet the packaging makes the routing information harder to extract than it needs to be.

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?

There is no output schema, so the description carries the burden of describing the return value, and it does so thoroughly — record sections, pagination, connector variants, inventory semantics, and the delivery/action vocabulary. The one missing piece an agent would want is how this differs from get_business.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds real meaning: it explains the paging model (offerings_page reports the total and the next offset) and ties the id back to its source (the business id from search_catalog). It stops short of restating what offerings_limit/offset do numerically, which the schema already handles.

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 makes clear this retrieves a single business in full and enumerates the components of the record (identity, offerings, actions, delivery methods, freshness). However, it never distinguishes itself from the sibling tool get_business, which on its face sounds like the same operation, so an agent cannot tell them apart from the description alone.

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

Usage Guidelines4/5

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

It gives concrete triggering questions («can they deliver to me», «are they open now», «what else do they do») and a fallback case after search_catalog returns a business with nothing listed. It also points to server instructions. What it lacks is any when-not guidance or an explicit routing rule against get_business/find_business.

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

get_offeringOne thing in full, with its price checked again right nowA
Read-only
Inspect

Free. One offering in full, with ONE live request to the shop asking for that item’s price and stock right now (live_check). Call it before you quote a price to a person: a catalogue read yesterday is yesterday’s price. One business is asked at most once every ten minutes however many of its offerings you open, so walking a shop is one request and not twenty; from_cache and checked_at say which. A price list, a menu or a quote form has no single-item door to ask (ok: false with the reason) and the stored reading stands with its date.

Hand action_url to the user as it is, ref=versum included. Follow the server instructions «HOW TO USE THE VERSUM CATALOG»: results are candidates, not proof; keep reading, quoting, requesting and ordering separate; nothing is sent to an owner, booked, ordered or paid without the user’s permission.

NameRequiredDescriptionDefault
idYesthe offering id from search_catalog

TDQS

A4.4/5.0
Behavior5/5

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

Goes well past the annotations by disclosing the live-check rate limit (one business per ten minutes regardless of how many offerings you open), the cache indicators from_cache and checked_at, and the degraded ok: false path for non-item catalogues. It also states the side-effect boundary explicitly: nothing is sent, booked, ordered or paid without user permission.

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?

Front-loads the cost and scope ('Free. One offering in full…') and each following sentence carries real information about rate limits, caching, failure mode and output handling. Slightly dense, and the pointer to server instructions is boilerplate, but nothing is wasted.

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

Completeness5/5

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

There is no output schema, and the description compensates by naming the key return fields (live_check, from_cache, checked_at, action_url, ok: false with reason) and how to handle action_url. For a single-param read tool with openWorld behaviour, that is sufficient to call and interpret it correctly.

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?

Only one parameter and schema coverage is 100%, with the schema already saying it is the offering id from search_catalog. The description adds minor framing (an offering belongs to a business and is walked one at a time) but no new syntax or format guidance, so baseline 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?

States a specific verb and resource — one offering in full, with a single live price/stock request — which is clearly distinct from catalogue listing behaviour. It doesn't name a sibling tool outright (e.g. search_catalog or get_product), but the contrast with walking a whole shop makes the difference inferable.

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

Usage Guidelines5/5

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

Gives an explicit trigger ('Call it before you quote a price to a person') and an exclusion condition (price lists, menus and quote forms have no single-item door and return ok: false). It also separates reading from quoting, requesting and ordering, which tells the agent when not to treat results as final.

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

get_productOne thing in full (synonym of get_offering)A
Read-only
Inspect

SYNONYM of get_offering, kept for agents that already know this name. A «product» is just an offering whose kind is product; the same id works in both.

Free. One offering in full, with ONE live request to the shop asking for that item’s price and stock right now (live_check). Call it before you quote a price to a person: a catalogue read yesterday is yesterday’s price. One business is asked at most once every ten minutes however many of its offerings you open, so walking a shop is one request and not twenty; from_cache and checked_at say which. A price list, a menu or a quote form has no single-item door to ask (ok: false with the reason) and the stored reading stands with its date.

Hand action_url to the user as it is, ref=versum included. Follow the server instructions «HOW TO USE THE VERSUM CATALOG»: results are candidates, not proof; keep reading, quoting, requesting and ordering separate; nothing is sent to an owner, booked, ordered or paid without the user’s permission.

NameRequiredDescriptionDefault
idYesthe offering id from search_catalog

TDQS

A4.6/5.0
Behavior5/5

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

Beyond the readOnly/openWorld annotations it discloses a concrete rate limit (one business asked at most once every ten minutes regardless of how many offerings are opened), the live-vs-cached fields (`live_check`, `from_cache`, `checked_at`), the degraded case where the stored reading stands with its date, and an operational rule about passing `action_url` through verbatim with ref=versum. This is exactly the context annotations cannot carry.

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?

Key information is front-loaded — the synonym relationship first, then behaviour, then the caveats. It runs long and carries some framing overhead ('kept for agents that already know this name', the quotation marks around live_check), but almost every sentence contributes a distinct operational fact.

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

Completeness5/5

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

There is no output schema, and the description compensates by naming the fields an agent must interpret (`from_cache`, `checked_at`, `ok: false`, `action_url`) and the failure mode for non-item businesses. For a single-parameter lookup tool this covers everything needed to call and interpret it correctly.

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?

Schema coverage is 100% and the single `id` is already documented as coming from search_catalog, so the schema does the heavy lifting. The description adds only the cross-tool fact that the same id works in both get_product and get_offering, which is a small but genuine semantic addition.

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

Purpose5/5

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

The first two sentences do the work precisely: it is a synonym of get_offering, it returns one offering in full, and a 'product' is defined as an offering of kind `product` sharing the same id. An agent can immediately tell it apart from search_catalog (many items) and get_offering (identical behaviour, different name).

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

Usage Guidelines5/5

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

It states when to call it ('before you quote a price to a person'), why ('a catalogue read yesterday is yesterday's price'), and when it cannot help ('a price list, a menu or a quote form has no single-item door to ask', returning ok:false). It also routes the agent to the server instructions and separates reading/quoting/requesting/ordering.

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

list_cardsEvery business of one trade near a place, in one fixed order — the shelfA
Read-only
Inspect

Every business of ONE trade (niche: a key from list_niches, exactly) near location, default radius 15 miles, 20 a page. The order is fixed and is not a ranking: independent businesses, then chains, then marketplaces; inside each, by distance (a trade that comes to the customer: published service area first). query does NOT filter or reorder businesses: it chooses which ITEM each card shows. To find businesses that have an item, use search_catalog. Each card: id, name, distance, phone, a few items, next (one action), and for what you pass — needed_by, max_price, deliver_to — a state: hours give open_then / closed_then / unknown (never a free slot); an item price within the budget is item_price_within_budget (the total is not known until priced). needed_by: «today», «tomorrow 19:00», «after 15:00», an interval «tomorrow 08:00 to 17:00», a deadline «by 2026-11-20», a range «this week» — read the same way in every tool. A niche that is not a key returns no cards and the variants to choose from. Trades on the shelf: restaurant (2473) · medical clinic (1222) · auto repair (1101) · insurance agent (1094) · hair salon (1080) · dentist (1043) · lawyer (1036) · oil change (969) · clothing store (895) · massage (881) · accountant (877) · nail salon (777) · hvac (774) · print shop (765) · real estate agent (757) · beauty salon (753) · barber (730) · chiropractor (709) · notary (670) · gas station (658) · appliance repair (586) · grocery (557) · car dealer (556) · storage (544) · optometrist (540) · bakery (534) · bar (526) · landscaping (514) · pharmacy (505) · elder care and home care (459) · daycare (446) · body shop (445) · photographer (438) · pet grooming (430) · pizza (423) · cleaning (409) · catering (407) · florist (400) · event venue (399) · tire shop (386) · auto parts store (383) · hotel (377) · pressure washing (377) · plumber (372) · jewelry (362) · furniture (360) · electrician (354) · pool service (354) · windows and doors (330) · tree service (327) · coffee shop (322) · party rental (319) · towing (314) · roofer (313) · veterinarian (305) · tattoo studio (295) · pest control (292) · truck tire service (287) · car wash (273) · junk removal (272) · movers (270) · liquor store (264) · tutoring (261) · ev charging station (259) · urgent care (255) · window cleaning (248) · truck repair (236) · carpet cleaning (224) · travel agency (214) · painter (191) · physical therapy (189) · car rental (188) · ice cream shop (187) · bike repair (175) · parking (175) · dance studio (169) · fishing charter and boat tours (168) · fuel delivery (167) · jewelry and watch repair (164) · music lessons (160) · dry cleaner (159) · locksmith (153) · handyman (152) · med spa (152) · auto glass (151) · gym (147) · general contractor (146) · shipping and packing store (146) · wedding planner (139) · septic and well service (130) · garage door (124) · dog walking and pet sitting (108) · garden center and nursery (103) · pet boarding (103) · phone repair (101) · mattress (88) · thrift store (87) · yoga (83) · hardware store (75) · boat rental (73) · tailor (68) · bike and jet ski rental (65) · funeral home (60) · medical equipment rental (54) · golf course (53) · driving school (52) · pet store (47) · butcher and seafood market (43) · swim school (30) · meal prep (21) · cinema (20) · shooting range (20) · juice bar (19) · computer repair (18) · kids play center (18) · escape room (17) · tennis and sports courts (17) · bowling and billiards (12) · brewery (9) · kids sports and activities (9) · specialty grocery and farmers market (9) · babysitting and nanny agency (8) · motorcycle repair (8) · taxi and transfer service (8) · local business (6) · other online service (6) · martial arts (5) · shoe repair (4) · online store (3) · food truck (2) · lash and brow studio (2) · museum (2) · services (2) · aquarium (1) · butcher (1) · logistics software (1) · motel (1) · store (1) · transportation service (1) · travel booking site (1); known but not scanned anywhere: candle shop, confectionery, garden center, gift shop, medical apparel, party shop, toy store. Follow the server instructions «HOW TO USE THE VERSUM CATALOG»: results are candidates, not proof; keep reading, quoting, requesting and ordering separate; nothing is sent to an owner, booked, ordered or paid without the user’s permission.

NameRequiredDescriptionDefault
pageNothe `next_page` token of the previous answer
tagsNoFILTER by the niche’s own tags, as list_niches gives them («steak house», «italian», «dish»): a card without one of them is left out; the order does not change. Spelling is folded («steakhouse» = «steak house»).
limitNocards per page. Default 10.
nicheYesa niche key from list_niches, exactly (another word returns the variants to choose from, never a substitute)
queryNochooses which ITEM each card shows («red roses», «balayage»); it does not filter or reorder businesses — for that, search_catalog
detailNotask (default): the short card under the task; shelf: the older ≤ 1 KB shelf card
intentNowhat the user means to do: shapes the items shown and the ONE action in `next` (book → book / check_slot / call; order → order / quote_order / call; quote → quote_order / call; info → call)
locationNoa 5-digit US postcode (best), a city ("Tampa, FL") or "lat,lng". Required for local trades; ignored for online niches (software, apps, online shops — see list_niches → online_niches).
max_priceNothe most for ONE offering, in USD: groups the cards in_budget · budget_unknown · over_budget (nobody is left out) and picks the shown offering inside it (exact, then kind, then partial matches); fixed prices compare; a «from» price above the budget is over, under it budget_unknown
needed_byNowhen: «sunday» / «today» / «2026-11-08» (open that day), «tomorrow 19:00» / «now» (open at that minute), «after 15:00» / «tomorrow after 3pm» (open after then; a free slot only where the source knows slots) — on each business’s own clock; adds `time` {asked_as, day, hours, state, why} and LEAVES OUT only the cards refuted for the way the trade is done (see excluded)
deliver_toNowhere it must be brought (a postcode is best): adds can_deliver_to per card — confirmed when the published area names the place, refuted when the business says no, unknown otherwise
propertiesNofacts to read off each card without filtering: property_states {key: "confirmed <value>" | "refuted" | "unknown"}
radius_milesNoDefault 15 (the same in every tool).

TDQS

A4.1/5.0
Behavior4/5

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

With readOnlyHint/destructiveHint already covering the safety profile, the description still adds real behavior: the order is fixed and not a ranking, an invalid niche returns variants instead of results, per-card states (open_then/closed_then/unknown, item_price_within_budget) are enumerated, and it warns that results are candidates and nothing is booked without permission. The one flaw is '20 a page' contradicting the schema's 'Default 10' for limit.

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

Conciseness2/5

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

The opening sentences are well front-loaded, but the bulk of the description is a ~140-entry enumeration of trades with counts, which duplicates list_niches — an existing sibling tool — and crowds out the genuinely useful behavioral notes. That list should be a pointer, not inline data.

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 13-parameter, no-output-schema tool, the description covers the card contents (id, name, distance, phone, items, `next`) and the added state fields, effectively substituting for a return schema, and it documents error behavior for bad niches. Gaps are minor: pagination via `page`/`limit` and the `detail` shelf mode are only lightly touched.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds meaning beyond the schema: `query` selects which item a card shows rather than filtering, `niche` must be an exact key, and `needed_by` accepts free-text forms like «tomorrow 19:00» or «this week» interpreted identically everywhere. It explains the state vocabulary produced by max_price and deliver_to, though it leaves page, limit, detail, tags and properties to the schema.

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

Purpose5/5

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

It states a specific verb and resource — every business of ONE trade near a location, in a fixed shelf order — and immediately distinguishes the `query` parameter from filtering, pointing to search_catalog for the latter. An agent can tell it apart from find_business, search_catalog and get_business without opening a schema.

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

Usage Guidelines4/5

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

It gives explicit routing: `niche` must come from list_niches, and finding businesses that carry an item belongs to search_catalog. It also explains the needed_by vocabulary shared across tools. It stops short of stating when to prefer find_business/get_business for a single known business, so it is clear but not exhaustive.

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

list_nichesWhat the catalogue knows, and whereA
Read-only
Inspect

The trades (niches) this catalogue holds near a place, by key, with how many businesses are inside the radius (default 15 miles). Without niche: a compact list of keys. With niche: that trade in full — its tags, coverage and the conditions its businesses publish. A niche that is not a key comes back with variants and why (a tag, a similar name, a meaning) — nothing is substituted: pick a key. detail: "full" lists every trade in full. Coverage: clothing stores in Apollo Beach, Austin, Belleair Bluffs, Brandon (+22 more); restaurants in Apollo Beach, Brandon, Carrollwood, Clearwater (+29 more); jewelrys in Brandon, Clearwater, Indian Rocks Beach, Largo (+6 more); florists in Apollo Beach, Austin, Aventura, Brickell (+31 more); furnitures in Brandon, Clearwater, Dunedin, Largo (+8 more); nail salons in Apollo Beach, Brandon, Carrollwood, Clearwater (+20 more); print shops in Brandon, Clearwater, Holiday, Largo (+10 more); auto parts stores in Clearwater, Largo, Lutz, Pinellas Park (+3 more); hair salons in Apollo Beach, Belleair Bluffs, Clair-Mel City, Clearwater (+21 more); spas in Apollo Beach, Belleair, Clearwater, Dunedin (+15 more); liquor stores in Clearwater, Dunedin, Holiday, Largo (+4 more); jewelry and watch repairs in Apollo Beach, Clearwater, Safety Harbor, St. Petersburg (+2 more); bike repairs in Apollo Beach, Clearwater, Dunedin, Indian Rocks Beach (+8 more); massages in Apollo Beach, Belleair, Brandon, Clearwater (+20 more); party rentals in Clearwater, Clearwater Beach, Dunedin, Indian Rocks Beach (+11 more); event venues in Clearwater, Dunedin, Gibsonton, Indian Rocks Beach (+12 more); pet groomings in Apollo Beach, Belleair Bluffs, Clearwater, Dunedin (+11 more); car dealers in Brandon, Clearwater, Gibsonton, Holiday (+8 more); oil changes in Clearwater, Gibsonton, Largo, New Port Richey (+7 more); auto repairs in Clearwater, Dunedin, Gibsonton, Holiday (+12 more); truck repairs in Clearwater, Largo, Safety Harbor, Tampa; grocerys in Clearwater, Dunedin, Pinellas Park, St. Petersburg (+2 more); landscapings in Apollo Beach, Clearwater, Gibsonton, Largo (+6 more); bakerys in Belleair Bluffs, Clearwater, Clearwater Beach, Indian Rocks Beach (+10 more); mattresss in Clearwater, Largo, Palm Harbor, Pinellas Park (+2 more); bars in Clearwater, Clearwater Beach, Holiday, Indian Rocks Beach (+10 more); barbers in Apollo Beach, Belleair Bluffs, Clearwater, Clearwater Beach (+15 more); cafes in Apollo Beach, Clearwater, Clearwater Beach, Dunedin (+9 more); windows and doorss in Apollo Beach, Clearwater, Dunedin, Largo (+1 more); storages in Clearwater, Gibsonton, Largo, Lutz (+11 more); notarys in Apollo Beach, Clearwater, Dunedin, Gibsonton (+12 more); medical equipment rentals in Clearwater, Dunedin, Gibsonton, Largo (+5 more); music lessonss in Clearwater, Dunedin, Largo, Palm Harbor (+3 more); pressure washings in Apollo Beach, Clearwater, Dunedin, Oldsmar (+6 more); pizzas in Clearwater, Largo, Palm Harbor, Pinellas Park (+4 more); medical clinics in Apollo Beach, Clearwater, Dunedin, Holiday (+12 more); caterings in Clearwater, Dunedin, Palm Harbor, Pinellas Park (+4 more); pool services in Apollo Beach, Clearwater, Largo, Madeira Beach (+10 more); towings in Clearwater, Largo, St. Petersburg, Tampa; plumbers in Apollo Beach, Brandon, Clearwater, Dunedin (+14 more); garden center and nurserys in Dunedin, Largo, Ruskin, St. Petersburg (+1 more); photographers in Apollo Beach, Clearwater, Clearwater Beach, Dunedin (+15 more); phone repairs in Apollo Beach, Largo, Palm Harbor, Pinellas Park (+3 more); tattoo studios in Clearwater, Dunedin, Greater Northdale, Largo (+8 more); travel agencys in Apollo Beach, Clearwater, Dunedin, Largo (+9 more); shooting ranges in Largo, Odessa, Pinellas Park, St. Petersburg (+1 more); moverss in Clearwater, Holiday, Largo, Orlando (+8 more); butcher and seafood markets in Seminole, Tampa; dance studios in Clearwater, Gibsonton, Largo, New Port Richey (+7 more); tree services in Clearwater, Largo, Odessa, Pinellas Park (+3 more); boat rentals in Palm Harbor, St. Petersburg, Tampa; electricians in Apollo Beach, Clearwater, Dunedin, Holiday (+15 more); tailors in St. Petersburg, Tampa; chiropractors in Brandon, Clearwater, Dunedin, Largo (+9 more); med spas in Clearwater, Dunedin, Largo, Palm Harbor (+5 more); optometrists in Apollo Beach, Brandon, Carrollwood, Clearwater (+7 more); hardware stores in Largo, Pinellas Park, Tampa; servicess in North Miami, Sunny Isles Beach; medical apparels in Hollywood; unknown trades in Tampa; stores in Portage; coffee shops in Chicago, Largo, Palm Harbor, Redington Shores (+2 more); funeral homes in Clearwater, Largo, Pinellas Park, St. Petersburg (+1 more); HVACs in Apollo Beach, Belleair, Clearwater, Holiday (+8 more); accountants in Clearwater, Dunedin, Greater Northdale, Holiday (+11 more); yogas in Apollo Beach, Clearwater, Clearwater Beach, Dunedin (+10 more); veterinarians in Largo, Lutz, Palm Harbor, Riverview (+4 more); fishing charter and boat tourss in Apollo Beach, Belleair, Belleair Bluffs, Clearwater (+14 more); dentists in Apollo Beach, Belleair, Clearwater, Dunedin (+13 more); pharmacys in Clearwater, Holiday, Palm Harbor, Safety Harbor (+4 more); appliance repairs in Apollo Beach, Brandon, Clearwater, Gibsonton (+6 more); carpet cleanings in Clearwater, Dunedin, Kenneth City, Largo (+8 more); car washs in Apollo Beach, Clearwater, Dunedin, East Lake-Orient Park (+9 more); wedding planners in Clearwater, Clearwater Beach, Gibsonton, Largo (+3 more); cleanings in Clearwater, Dunedin, Largo, Lutz (+8 more); insurance agents in Clearwater, Dunedin, Greater Northdale, Indian Shores (+7 more); roofers in Brandon, Clearwater, Dunedin, Odessa (+5 more); elder care and home cares in Apollo Beach, Clearwater, Dunedin, Largo (+8 more); tire shops in Butte, Clearwater, Lutz, Palm Harbor (+3 more); daycares in Apollo Beach, Belleair, Brandon, Clearwater (+10 more); car rentals in Clearwater, Indian Rocks Beach, St. Petersburg, Tampa (+1 more); ice cream shops in Clearwater Beach, Dunedin, Holiday, Largo (+5 more); meal preps in Clearwater, St. Petersburg, Tampa; lawyers in Clearwater, Largo, Lutz, New Port Richey (+6 more); pest controls in Clearwater, Largo, Pinellas Park, Riverview (+4 more); cleaning services in Apollo Beach, Clearwater, Dunedin, Gibsonton (+12 more); real estate agents in Apollo Beach, Belleair Bluffs, Clearwater, Clearwater Beach (+12 more); tutorings in Clearwater, Gibsonton, Largo, Oldsmar (+9 more); gyms in Clearwater, Dunedin, Largo, Oldsmar (+5 more); window cleanings in Apollo Beach, Clearwater, Crystal Beach, Gibsonton (+10 more); painters in Clearwater, Kissimmee, Largo, St. Petersburg (+2 more); dog walking and pet sittings in Clearwater, Gibsonton, Largo, Lutz (+9 more); handymans in Apollo Beach, Belleair Beach, Clearwater, Holiday (+7 more); bowling and billiardss in Seminole, St. Petersburg, Tampa; parkings in Clearwater, Ruskin, St. Petersburg, Tampa; dry cleaners in Clearwater, Dunedin, Largo, Seminole (+2 more); driving schools in Clearwater, Holiday, Largo, St. Petersburg (+3 more); barber-shops in Riverview, St. Petersburg, Tampa; junk removals in Clearwater, Indian Rocks Beach, Largo, Lutz (+4 more); kids play centers in Brandon, Clearwater, Palm Harbor, Pinellas Park (+3 more); locksmiths in Greater Northdale, Pinellas Park, Riverview, St. Petersburg (+1 more); shipping and packing stores in Tampa; physical therapys in Clearwater, Dunedin, Largo, Pinellas Park (+4 more); pet boardings in Apollo Beach, Clearwater, St. Petersburg, Tampa (+1 more); gas stations in Clearwater, Gibsonton, Holiday, Largo (+4 more); bike and jet ski rentals in Apollo Beach, Belleair Bluffs, Clearwater, Clearwater Beach (+5 more); specialty grocery and farmers markets in St. Petersburg, Tampa; general contractors in Apollo Beach, Clearwater, Dunedin, Gibsonton (+7 more); body shops in Clearwater, Tampa; garage doors in Clearwater, Largo, Palm Harbor, Tampa; hair-salons in St. Petersburg, Tampa; urgent cares in Clearwater, Pinellas Park, Tampa, Temple Terrace; septic and well services in Apollo Beach, Gibsonton, Lutz, Tampa; motorcycle repairs in Tampa; juice bars in Clearwater, Riverview, Tampa; auto glasss in Clearwater, Seminole, Tampa; beauty salons in Largo, Pinellas Park, St. Petersburg, Tampa; gift shops in Miami; hotels in Clearwater, Clearwater Beach, North Redington Beach, Palm Harbor (+2 more); golf courses in Dunedin, Largo, Palm Harbor, Pinellas Park (+3 more); nail-salons in Tampa; fuel deliverys in Clearwater, Gibsonton, Riverview, Ruskin (+1 more); pet stores in Tampa; swim schools in Brandon, Seminole, St. Petersburg, Tampa (+1 more); kids sports and activitiess in Clearwater, St. Petersburg, Tampa; EV charging stations in Clearwater, Tampa; taxi and transfer services in Tampa; shoe repairs in Tampa; lash and brow studios in Pinellas Park; pizzerias in Brooklyn; cinemas in Clearwater, Riverview, Ruskin, Tampa; truck tire services in Dunedin, Tampa; aquariums in Tampa; moving companys in Tampa; tennis and sports courtss in Clearwater, Odessa, St. Petersburg; babysitting and nanny agencys in Tampa; thrift stores in Seminole, Tampa; escape rooms in Largo, Tampa; computer repairs in Clearwater, Seminole. Follow the server instructions «HOW TO USE THE VERSUM CATALOG»: results are candidates, not proof; keep reading, quoting, requesting and ordering separate; nothing is sent to an owner, booked, ordered or paid without the user’s permission.

NameRequiredDescriptionDefault
nicheNoone niche key: that niche in full (tags, coverage, every condition it publishes). Another word returns `variants` with why, never a substitute
detailNocompact (default without a matched niche): keys and counts; full: every niche with tags, coverage and conditions
locationNoa 5-digit US postcode, a city ("Tampa, FL") or "lat,lng". Optional: without it every niche is listed with its totals.
radius_milesNoHow far from the location counts as «here». Default 15 (the same in every tool).

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, openWorldHint=false and destructiveHint=false, so the safety profile is covered. The description adds genuinely non-obvious behavior: an unrecognized `niche` returns `variants` with a reason and nothing is substituted, so the agent knows to pick a key rather than assume a fuzzy match. It also discloses that coverage is partial and location-scoped, which manages expectations about empty results.

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

Conciseness2/5

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

The first four sentences are well front-loaded and carry all the real information. They are then followed by several hundred words enumerating every trade and its cities, a data dump that no agent can usefully parse and that buries the operating rules. It is far larger than the tool's decision content warrants.

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 read-only, no-required-parameter listing tool with full schema coverage and no output schema, the description covers modes, location semantics, radius default and the unmatched-key path. Nothing an agent needs to call it correctly is missing; it is over-complete rather than under-complete.

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?

Schema description coverage is 100%, so all four parameters, the compact/full enum, the location formats and the 15-mile default are already documented structurally. The description largely restates those semantics (variants behavior, detail: full, default radius) rather than adding new meaning. Baseline 3 is the correct ceiling here.

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 opening sentence gives a specific verb and resource: it lists the trades/niches a catalogue holds near a place, keyed by niche, with business counts inside a radius. An agent can tell this is a browse/enumerate tool rather than a lookup like find_business or get_business. It never names a sibling explicitly, which keeps it short of a 5.

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?

It does explain the three modes: no `niche` gives compact keys, a `niche` gives that trade in full, and `detail: "full"` lists everything. That is useful invocation guidance, but it is all intra-tool. Nothing says when to call this instead of search_catalog or find_business, which is the real selection question for an agent facing 14 siblings.

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

order_statusWhat became of an order or a booking placed through this doorA
Read-only
Inspect

The status of an order_id from place_order or book_slot, asked of the platform again when it is not final (paid? confirmed? declined by the owner?). A Shopify cart link answers unknown — payment is on Shopify’s side and the shop does not report it here. Free. Follow the server instructions «HOW TO USE THE VERSUM CATALOG»: results are candidates, not proof; keep reading, quoting, requesting and ordering separate; nothing is sent to an owner, booked, ordered or paid without the user’s permission.

NameRequiredDescriptionDefault
order_idYes

TDQS

A3.9/5.0
Behavior4/5

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

Beyond the readOnly/openWorld/non-destructive annotations, it discloses that the call is free, that it re-queries the platform rather than returning a cached snapshot, that only non-final outcomes are worth asking about, and that Shopify-originated carts always answer `unknown`. Return shape is not described, but there is no output schema to lean on.

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

Conciseness3/5

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

The first three sentences are tight and front-loaded with the core semantics and the Shopify caveat. The trailing paragraph quoting the catalog instructions is generic boilerplate and, while safety-relevant, dilutes an otherwise compact definition.

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 single-parameter read of unknown-vs-final state, the description covers cost, freshness, the Shopify blind spot, and the consent boundary around acting on results. Only the enumeration of possible status values is left unspecified, which is a modest gap with no output schema present.

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

Parameters4/5

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

Schema description coverage is 0%, so the description carries the burden. It supplies the crucial provenance for order_id — it must come from place_order or book_slot — which the schema's bare uuid format does not convey; the uuid typing itself is left to the schema.

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 states a specific verb+resource: re-reads the platform for the status of an order_id created by place_order or book_slot, naming both producing tools. It does not explicitly contrast itself with the sibling request_status, so an agent must infer the split between order status and request status.

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

Usage Guidelines4/5

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

It gives a clear condition for use: call it again when the order is not final (paid? confirmed? declined by the owner?). It also warns that a Shopify cart link will never resolve here. It stops short of naming an explicit alternative for the Shopify case or for final-state polling.

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

place_orderPlace an order in the business’s own system; the buyer pays on the platform’s checkout pageAInspect

🔴 ACTS FOR THE USER: call it only after the user has explicitly agreed to this exact action (what, where, when, who) — never on your own judgement. For a business whose card shows an order action with method connected. Shopify: returns the shop’s own checkout link with these items and quantities already in the cart (status: unknown, mode: cart) — no customer data is needed or passed, the buyer gives their details and pays on Shopify, and nothing exists on the shop until they do. Square: an order with a payment link (no customer data either). WhatsApp: a message to the owner (customer phone or email). Returns order_id, status, checkout_url — HAND THE CHECKOUT URL TO THE USER AS IT IS: that page takes the money, Versum holds no card and charges nothing. Stock is checked live first on a platform that tracks it; «not in stock» is an unavailable error and no order or link is given. Send an idempotency_key of your own and keep it for a retry: the same key returns the same answer and the same link (repeated: true), never a second one. Lines name offerings by their card id (and variant_id when the card lists several). status: unknown (a cart link: payment is on the platform’s side) · created (the platform holds it) · pending_owner (WhatsApp) · confirmed · declined · failed. Get the user’s explicit yes before calling this. Follow the server instructions «HOW TO USE THE VERSUM CATALOG»: results are candidates, not proof; keep reading, quoting, requesting and ordering separate; nothing is sent to an owner, booked, ordered or paid without the user’s permission.

NameRequiredDescriptionDefault
noteNoa note to the business, in the user’s words (not passed on a Shopify cart link)
linesYes
customerNoonly where the platform needs it (WhatsApp); omit for Shopify and Square
business_idYes
idempotency_keyNoyour own key for this order; reuse it on a retry

TDQS

A4.5/5.0
Behavior5/5

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

Goes well beyond the annotations: no customer data is passed for Shopify/Square, nothing exists on the shop until the buyer pays, Versum holds no card, stock is checked live and 'not in stock' is an `unavailable` error with no order created. It also spells out retry semantics via `idempotency_key` (`repeated: true`, same link, never a second order) and enumerates the possible `status` values.

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

Conciseness3/5

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

Front-loaded with the consent rule, which is good, but the consent requirement is stated twice (the 🔴 opener and the closing sentence), and the trailing quote of the server instructions adds bulk without new constraints. Dense platform-by-platform prose is efficient enough but not tight.

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

Completeness5/5

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

No output schema exists, and the description compensates by naming the return fields (`order_id`, `status`, `checkout_url`) and every `status` value. For a multi-platform mutation tool, the risk profile, prerequisites, error case and return shape are all present.

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

Parameters4/5

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

With 60% schema coverage the description adds real meaning: lines reference offerings by card id and require `variant_id` only when the card lists several variants, `customer` is only needed on WhatsApp, and `note` is dropped on a Shopify cart link. `business_id` semantics (the `connected` + `order` card) are only partly covered.

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

Purpose5/5

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

States a specific verb and resource plus the platform-specific mechanics: a Shopify checkout-link cart, a Square order with a payment link, or a WhatsApp message to the owner. It also implicitly separates ordering from adjacent siblings (reading, quoting, requesting, booking) so an agent can tell it apart from book_slot and request_to_owner.

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

Usage Guidelines4/5

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

Gives an explicit precondition ('only after the user has explicitly agreed to this exact action') and a targeting rule ('For a business whose card shows an `order` action with method `connected`'). What's missing is naming the natural predecessor, quote_order, so the agent infers on its own that it should price with quote_order before placing.

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

quote_orderWhat an order would cost delivered to an address — asked of the shop’s own cart, nothing orderedA
Idempotent
Inspect

Prices ONE cart in the shop's own public cart (Shopify or WooCommerce) to ONE ZIP, with no personal data, and orders nothing: the cart is emptied afterwards. Answers the items, delivery options with their prices, the subtotal and what stays unknown (tax and fees at checkout; the delivery date unless the cart names it — delivery_date asks for a day). Other platforms answer «quote not available» with the reason and the order link. Follow the server instructions «HOW TO USE THE VERSUM CATALOG»: results are candidates, not proof; keep reading, quoting, requesting and ordering separate; nothing is sent to an owner, booked, ordered or paid without the user’s permission.

NameRequiredDescriptionDefault
itemsNoseveral different items of the SAME shop in one cart (delivery and tax on the whole order); offering_id is then the first of them
optionsNoanswers to the product page’s own add-on questions; the rest are answered «no»
quantityNodefault 1
deliver_toYeswhere it must be brought: "33139", "Miami Beach, FL 33139", or {postcode, state, city, address_1}
variant_idNoa variant id from the card when it lists several
offering_idYesthe offering id from a card
delivery_dateNothe day the person wants it delivered ("2026-11-20"): answered as confirmed only when the shop's cart names that day, else «delivery date: unknown»

TDQS

A4.4/5.0
Behavior5/5

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

The description explains the surprisingly non-read-only annotation (readOnlyHint=false): the tool writes into the shop's own cart and empties it afterwards, so a mutation is expected yet nothing is bought. It further discloses that no personal data is involved, what is deliberately left unknown (tax and fees at checkout, delivery date unless the cart names it), and the degraded path for unsupported platforms. This adds real behavior beyond the annotation block.

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 no-order guarantee and single-cart/single-ZIP scope are front-loaded, and the following sentences cover returns, unsupported platforms, and sequencing without repetition. The prose is dense with em-dashes and parentheticals, which costs some scannability, but no sentence is wasted.

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

Completeness5/5

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

For a seven-parameter tool with no output schema, the description states what the answer contains (items, delivery options with prices, subtotal) and what is explicitly not returned. Combined with the cart-emptying side effect and the fallback behavior, an agent has everything needed to call it correctly and to interpret the result honestly.

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?

Schema description coverage is 100%, so every parameter including deliver_to, delivery_date, options and items is already documented in structured form. The description reinforces the delivery_date semantics ('asks for a day') but supplies no syntax, defaults or constraints that the schema does not already carry, so the baseline of 3 applies.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Prices ONE cart in the shop's own public cart (Shopify or WooCommerce) to ONE ZIP.' It also states the key scope constraint that 'orders nothing' and that the cart is emptied afterwards, which separates it cleanly from place_order and check_availability without the agent needing to open any schema.

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

Usage Guidelines4/5

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

It sets clear conditions: use it to learn what an order would cost before committing, and it warns that other platforms return 'quote not available' with the reason and order link. It also invokes the sequencing rule that reading, quoting, requesting and ordering stay separate. It stops short of explicitly naming a sibling as the alternative when a full order is actually wanted, so it is clear context rather than complete routing.

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

request_statusWhat became of a request to the owner: delivery and the owner’s outcomeA
Read-only
Inspect

Delivery (sent · link_given · expired · failed) and the owner’s outcome (declined · other_time + proposal · available = free but NOT booked · confirmed = booked). confirmed: true only when the owner booked it. wait_seconds (optional, default 0 = answer now; at most 45 s are used): waits for the owner and returns as soon as the request is answered or final, otherwise the current status when the wait ends (see wait.ended). Waiting is not a promise of an answer, and nothing calls you back afterwards: if it is still waiting, call request_status again later (for example when the person asks). Hanging up does not cancel the request. Follow the server instructions «HOW TO USE THE VERSUM CATALOG»: results are candidates, not proof; keep reading, quoting, requesting and ordering separate; nothing is sent to an owner, booked, ordered or paid without the user’s permission.

NameRequiredDescriptionDefault
request_idYes
wait_secondsNoseconds to wait for the owner's answer (0–60, default 0; at most 45 are used)

TDQS

A4.3/5.0
Behavior5/5

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

Annotations already mark this as a safe, non-destructive, closed-world read, but the description adds behavior those annotations cannot express: waiting is not a promise of an answer, nothing calls back afterwards, hanging up does not cancel the request, and results are candidates rather than proof. It also states that at most 45 of the requested seconds are used, which the schema does not say. That is unusually rich beyond annotation coverage.

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 content is front-loaded with the state vocabulary, then the wait semantics, then safety guidance, so the agent meets the most decision-relevant facts first. The backtick-dense enum listing and the quoted server-instruction boilerplate add bulk, but every sentence carries operational meaning; it is dense rather than padded.

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

Completeness5/5

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

With no output schema, the description must explain the returned state values, and it does so exhaustively, including the subtle distinction between `available` (free but NOT booked) and `confirmed` (booked). It also covers waiting, re-polling, and permission gating, leaving nothing an agent needs to call and interpret the tool correctly.

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

Parameters4/5

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

Schema coverage is only 50%: `request_id` is undocumented in the schema, and `wait_seconds` has a short schema note. The description compensates by explaining that `wait_seconds` defaults to 0 (answer now) and that at most 45 of the allowed 60 seconds are actually used, which is meaningful beyond the schema. `request_id` still gets no explanation of what it identifies or where it comes from, keeping this below a 5.

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 states a specific verb and resource: it returns what became of a request to the owner, enumerating both delivery states (`sent`, `link_given`, `expired`, `failed`) and owner outcomes (`declined`, `other_time` + proposal, `available`, `confirmed`). That is far more specific than the title alone. It never names the sibling it differs from, `order_status`, although the phrasing 'request to the owner' does suggest a distinct resource, so a 4 rather than a 5.

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

Usage Guidelines4/5

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

It gives real usage guidance: if the request is still waiting, call `request_status` again later, for example 'when the person asks'. It also clarifies that hanging up does not cancel the request, implying re-polling is normal. However, it never explicitly says when to use this instead of `order_status` or when to prefer a fresh `request_to_owner`, so it falls short of explicit alternatives.

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

request_to_ownerSend a request to the business’s verified owner (not a booking until the owner confirms)A
Idempotent
Inspect

🔴 ACTS FOR THE USER: call it only after the user has explicitly agreed to this exact action (what, where, when, who) — never on your own judgement. For a business that takes requests through Versum (a verified owner with Telegram, e-mail or WhatsApp). Sends what, when, how many, which branch and the person’s name and contact. Requires idempotency_key: retrying with the same key returns the same request. Answers: sent (delivered to the owner), link_given (WhatsApp: give whatsapp_url to the person — THEY send it; nothing is sent yet), or no_channel with the business’s other doors. After it, tell the person it is NOT a booking yet and where the answer will come (next_steps.tell_the_person, next_steps.answer_goes_to). If you can set reminders, schedule a request_status check (next_steps.check_again_after is a pause, not a promised reply time) — and only then say you will check; otherwise tell the person how to ask again. Follow the server instructions «HOW TO USE THE VERSUM CATALOG»: results are candidates, not proof; keep reading, quoting, requesting and ordering separate; nothing is sent to an owner, booked, ordered or paid without the user’s permission.

NameRequiredDescriptionDefault
dateNoYYYY-MM-DD, the business’s local date
noteNo
timeNoHH:MM, the business’s local time
whatYeswhat the person wants (a service, an item, a table for 4 …)
branchNowhich location, when the business has several
customerYes
quantityNo
business_idYesthe business id from the card
idempotency_keyYesyour own key for this request; the same key never makes a second one

TDQS

A4.8/5.0
Behavior5/5

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

Annotations cover non-read-only, open-world and idempotent, but the description goes well beyond them: it explains that the same idempotency_key never creates a second request, enumerates the three result states and what each means for what was actually sent, and specifies the post-call obligations (tell the person it is not a booking, where the answer goes, when to schedule request_status). That is exactly the context an agent needs before mutating anything.

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?

Front-loaded with the highest-stakes warning (acts for the user), then scope, then payload, then result states, then follow-up duties. Nearly every sentence carries operational value, though the browser-instruction tail repeats ground already covered by the server instructions and the emoji-flagged opening is a little shouty.

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

Completeness5/5

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

For a nine-parameter mutating tool with a nested customer object and no output schema, the description covers precondition, scope, idempotency, all three return states, the whatsapp_url handoff, and the required follow-up narration. An agent could invoke it correctly and handle every outcome without further information.

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

Parameters4/5

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

Schema coverage is 67% and the description supplies meaning for the important gaps: it enumerates the payload fields in plain language, explains idempotency_key semantics and the retry contract, and clarifies that next_steps.check_again_after is a pause rather than a promised reply time. It does not add anything about date/time locality or the quantity bounds beyond what the schema already states.

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

Purpose5/5

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

The description names a specific verb and resource ('Sends what, when, how many, which branch and the person's name and contact') and immediately scopes it to businesses that take requests through Versum via a verified owner. The title and opening line make clear it is a request, not a booking, which separates it from siblings like book_slot and place_order.

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

Usage Guidelines5/5

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

Gives an explicit precondition ('call it only after the user has explicitly agreed to this exact action') and states it is never to be used on the agent's own judgement. It also names the fallback outcomes (link_given, no_channel) that redirect the agent elsewhere, and closes with the separation rule that requesting must stay distinct from reading, quoting and ordering.

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

search_catalogA match by meaning, for when the trade is not known — check its results on the cardsA
Read-only
Inspect

Search by what is wanted (an item, a dish, a service, in any language) near location, default radius 15 miles, when the trade is not known. Each business shows its best-fitting items first; match.fit says how well: exact (the thing and every asked property), likely (the thing, a property not stated), property (the thing with another quantity or colour), partial (only its main word), none. nothing_fitting says so when nothing does. Conditions you pass come back per business as met / violated / unknown (time: open_then / closed_then / unknown): the item's price is not the total, opening hours are not a delivery time, being near is not being served. No location and nothing fitting → an empty list, not unrelated businesses from anywhere. Coverage: clothing stores in Apollo Beach, Austin, Belleair Bluffs, Brandon (+22 more); restaurants in Apollo Beach, Brandon, Carrollwood, Clearwater (+29 more); jewelrys in Brandon, Clearwater, Indian Rocks Beach, Largo (+6 more); florists in Apollo Beach, Austin, Aventura, Brickell (+31 more); furnitures in Brandon, Clearwater, Dunedin, Largo (+8 more); nail salons in Apollo Beach, Brandon, Carrollwood, Clearwater (+20 more); print shops in Brandon, Clearwater, Holiday, Largo (+10 more); auto parts stores in Clearwater, Largo, Lutz, Pinellas Park (+3 more); hair salons in Apollo Beach, Belleair Bluffs, Clair-Mel City, Clearwater (+21 more); spas in Apollo Beach, Belleair, Clearwater, Dunedin (+15 more); liquor stores in Clearwater, Dunedin, Holiday, Largo (+4 more); jewelry and watch repairs in Apollo Beach, Clearwater, Safety Harbor, St. Petersburg (+2 more); bike repairs in Apollo Beach, Clearwater, Dunedin, Indian Rocks Beach (+8 more); massages in Apollo Beach, Belleair, Brandon, Clearwater (+20 more); party rentals in Clearwater, Clearwater Beach, Dunedin, Indian Rocks Beach (+11 more); event venues in Clearwater, Dunedin, Gibsonton, Indian Rocks Beach (+12 more); pet groomings in Apollo Beach, Belleair Bluffs, Clearwater, Dunedin (+11 more); car dealers in Brandon, Clearwater, Gibsonton, Holiday (+8 more); oil changes in Clearwater, Gibsonton, Largo, New Port Richey (+7 more); auto repairs in Clearwater, Dunedin, Gibsonton, Holiday (+12 more); truck repairs in Clearwater, Largo, Safety Harbor, Tampa; grocerys in Clearwater, Dunedin, Pinellas Park, St. Petersburg (+2 more); landscapings in Apollo Beach, Clearwater, Gibsonton, Largo (+6 more); bakerys in Belleair Bluffs, Clearwater, Clearwater Beach, Indian Rocks Beach (+10 more); mattresss in Clearwater, Largo, Palm Harbor, Pinellas Park (+2 more); bars in Clearwater, Clearwater Beach, Holiday, Indian Rocks Beach (+10 more); barbers in Apollo Beach, Belleair Bluffs, Clearwater, Clearwater Beach (+15 more); cafes in Apollo Beach, Clearwater, Clearwater Beach, Dunedin (+9 more); windows and doorss in Apollo Beach, Clearwater, Dunedin, Largo (+1 more); storages in Clearwater, Gibsonton, Largo, Lutz (+11 more); notarys in Apollo Beach, Clearwater, Dunedin, Gibsonton (+12 more); medical equipment rentals in Clearwater, Dunedin, Gibsonton, Largo (+5 more); music lessonss in Clearwater, Dunedin, Largo, Palm Harbor (+3 more); pressure washings in Apollo Beach, Clearwater, Dunedin, Oldsmar (+6 more); pizzas in Clearwater, Largo, Palm Harbor, Pinellas Park (+4 more); medical clinics in Apollo Beach, Clearwater, Dunedin, Holiday (+12 more); caterings in Clearwater, Dunedin, Palm Harbor, Pinellas Park (+4 more); pool services in Apollo Beach, Clearwater, Largo, Madeira Beach (+10 more); towings in Clearwater, Largo, St. Petersburg, Tampa; plumbers in Apollo Beach, Brandon, Clearwater, Dunedin (+14 more); garden center and nurserys in Dunedin, Largo, Ruskin, St. Petersburg (+1 more); photographers in Apollo Beach, Clearwater, Clearwater Beach, Dunedin (+15 more); phone repairs in Apollo Beach, Largo, Palm Harbor, Pinellas Park (+3 more); tattoo studios in Clearwater, Dunedin, Greater Northdale, Largo (+8 more); travel agencys in Apollo Beach, Clearwater, Dunedin, Largo (+9 more); shooting ranges in Largo, Odessa, Pinellas Park, St. Petersburg (+1 more); moverss in Clearwater, Holiday, Largo, Orlando (+8 more); butcher and seafood markets in Seminole, Tampa; dance studios in Clearwater, Gibsonton, Largo, New Port Richey (+7 more); tree services in Clearwater, Largo, Odessa, Pinellas Park (+3 more); boat rentals in Palm Harbor, St. Petersburg, Tampa; electricians in Apollo Beach, Clearwater, Dunedin, Holiday (+15 more); tailors in St. Petersburg, Tampa; chiropractors in Brandon, Clearwater, Dunedin, Largo (+9 more); med spas in Clearwater, Dunedin, Largo, Palm Harbor (+5 more); optometrists in Apollo Beach, Brandon, Carrollwood, Clearwater (+7 more); hardware stores in Largo, Pinellas Park, Tampa; servicess in North Miami, Sunny Isles Beach; medical apparels in Hollywood; unknown trades in Tampa; stores in Portage; coffee shops in Chicago, Largo, Palm Harbor, Redington Shores (+2 more); funeral homes in Clearwater, Largo, Pinellas Park, St. Petersburg (+1 more); HVACs in Apollo Beach, Belleair, Clearwater, Holiday (+8 more); accountants in Clearwater, Dunedin, Greater Northdale, Holiday (+11 more); yogas in Apollo Beach, Clearwater, Clearwater Beach, Dunedin (+10 more); veterinarians in Largo, Lutz, Palm Harbor, Riverview (+4 more); fishing charter and boat tourss in Apollo Beach, Belleair, Belleair Bluffs, Clearwater (+14 more); dentists in Apollo Beach, Belleair, Clearwater, Dunedin (+13 more); pharmacys in Clearwater, Holiday, Palm Harbor, Safety Harbor (+4 more); appliance repairs in Apollo Beach, Brandon, Clearwater, Gibsonton (+6 more); carpet cleanings in Clearwater, Dunedin, Kenneth City, Largo (+8 more); car washs in Apollo Beach, Clearwater, Dunedin, East Lake-Orient Park (+9 more); wedding planners in Clearwater, Clearwater Beach, Gibsonton, Largo (+3 more); cleanings in Clearwater, Dunedin, Largo, Lutz (+8 more); insurance agents in Clearwater, Dunedin, Greater Northdale, Indian Shores (+7 more); roofers in Brandon, Clearwater, Dunedin, Odessa (+5 more); elder care and home cares in Apollo Beach, Clearwater, Dunedin, Largo (+8 more); tire shops in Butte, Clearwater, Lutz, Palm Harbor (+3 more); daycares in Apollo Beach, Belleair, Brandon, Clearwater (+10 more); car rentals in Clearwater, Indian Rocks Beach, St. Petersburg, Tampa (+1 more); ice cream shops in Clearwater Beach, Dunedin, Holiday, Largo (+5 more); meal preps in Clearwater, St. Petersburg, Tampa; lawyers in Clearwater, Largo, Lutz, New Port Richey (+6 more); pest controls in Clearwater, Largo, Pinellas Park, Riverview (+4 more); cleaning services in Apollo Beach, Clearwater, Dunedin, Gibsonton (+12 more); real estate agents in Apollo Beach, Belleair Bluffs, Clearwater, Clearwater Beach (+12 more); tutorings in Clearwater, Gibsonton, Largo, Oldsmar (+9 more); gyms in Clearwater, Dunedin, Largo, Oldsmar (+5 more); window cleanings in Apollo Beach, Clearwater, Crystal Beach, Gibsonton (+10 more); painters in Clearwater, Kissimmee, Largo, St. Petersburg (+2 more); dog walking and pet sittings in Clearwater, Gibsonton, Largo, Lutz (+9 more); handymans in Apollo Beach, Belleair Beach, Clearwater, Holiday (+7 more); bowling and billiardss in Seminole, St. Petersburg, Tampa; parkings in Clearwater, Ruskin, St. Petersburg, Tampa; dry cleaners in Clearwater, Dunedin, Largo, Seminole (+2 more); driving schools in Clearwater, Holiday, Largo, St. Petersburg (+3 more); barber-shops in Riverview, St. Petersburg, Tampa; junk removals in Clearwater, Indian Rocks Beach, Largo, Lutz (+4 more); kids play centers in Brandon, Clearwater, Palm Harbor, Pinellas Park (+3 more); locksmiths in Greater Northdale, Pinellas Park, Riverview, St. Petersburg (+1 more); shipping and packing stores in Tampa; physical therapys in Clearwater, Dunedin, Largo, Pinellas Park (+4 more); pet boardings in Apollo Beach, Clearwater, St. Petersburg, Tampa (+1 more); gas stations in Clearwater, Gibsonton, Holiday, Largo (+4 more); bike and jet ski rentals in Apollo Beach, Belleair Bluffs, Clearwater, Clearwater Beach (+5 more); specialty grocery and farmers markets in St. Petersburg, Tampa; general contractors in Apollo Beach, Clearwater, Dunedin, Gibsonton (+7 more); body shops in Clearwater, Tampa; garage doors in Clearwater, Largo, Palm Harbor, Tampa; hair-salons in St. Petersburg, Tampa; urgent cares in Clearwater, Pinellas Park, Tampa, Temple Terrace; septic and well services in Apollo Beach, Gibsonton, Lutz, Tampa; motorcycle repairs in Tampa; juice bars in Clearwater, Riverview, Tampa; auto glasss in Clearwater, Seminole, Tampa; beauty salons in Largo, Pinellas Park, St. Petersburg, Tampa; gift shops in Miami; hotels in Clearwater, Clearwater Beach, North Redington Beach, Palm Harbor (+2 more); golf courses in Dunedin, Largo, Palm Harbor, Pinellas Park (+3 more); nail-salons in Tampa; fuel deliverys in Clearwater, Gibsonton, Riverview, Ruskin (+1 more); pet stores in Tampa; swim schools in Brandon, Seminole, St. Petersburg, Tampa (+1 more); kids sports and activitiess in Clearwater, St. Petersburg, Tampa; EV charging stations in Clearwater, Tampa; taxi and transfer services in Tampa; shoe repairs in Tampa; lash and brow studios in Pinellas Park; pizzerias in Brooklyn; cinemas in Clearwater, Riverview, Ruskin, Tampa; truck tire services in Dunedin, Tampa; aquariums in Tampa; moving companys in Tampa; tennis and sports courtss in Clearwater, Odessa, St. Petersburg; babysitting and nanny agencys in Tampa; thrift stores in Seminole, Tampa; escape rooms in Largo, Tampa; computer repairs in Clearwater, Seminole. Follow the server instructions «HOW TO USE THE VERSUM CATALOG»: results are candidates, not proof; keep reading, quoting, requesting and ordering separate; nothing is sent to an owner, booked, ordered or paid without the user’s permission.

NameRequiredDescriptionDefault
limitNoHow many BUSINESS CARDS to return. Default 10.
queryYesWhat the user wants, IN THEIR OWN WORDS AND THEIR OWN LANGUAGE: "red roses", "steakhouse", "funeral flowers", "movers 2 bedroom", "ramo de rosas", or the same question in a language not written in the Latin alphabet. Matched by MEANING as well as by words, through one multilingual model — so do NOT translate for us and do NOT list synonyms yourself. A place, a date, a budget and a delivery word may be left in (they are parsed out), but the fewer extra words the better the match.
detailNocompact (default): the business, its 1–2 best offerings with prices and links, what can be done, and the date it was read — a few hundred bytes a card. full: everything, including images, the sentence each price was read from, variants, all four fulfilment modes with published areas, opening hours and per-field evidence. Ask for full only when the user has chosen a business and you need its delivery area or its hours.
locationNoWhere the user is, or where it must happen. A 5-DIGIT US POSTCODE IS BEST ("33139"): it is the only form a business’s own published delivery or service area can be matched against exactly, so a postcode gets you `how: "zips"` and a city name gets you a distance. A city ("Orlando, FL") or "lat,lng" also work. OPTIONAL IN NAME ONLY — without it nothing is measured and nothing is narrowed, and the answer comes back with `needs` carrying the question to put to your user. "near me" is not a location: ask which town.
max_priceNoThe most the user will pay for ONE offering, in USD, compared against the lowest number the business published — so "from $45" passes "under $50". An offering priced on request is NOT filtered out: it comes back `price_type: "quote_only"`, because "they quote it" is an answer.
needed_byNoWhen it has to happen: "today", "tomorrow", "tomorrow 9am", or an ISO date-time — WITH an offset (2026-10-31T14:00:00-04:00) if you know the user’s zone, because a business whose cut-off is on the RECIPIENT’s clock can only be judged against an offset you give.
only_localNotrue = leave out marketplaces: a business whose shelf names places far from its own address (one local address, hundreds of listings in other cities and countries). Default false: a marketplace is kept, ranked lower, and its card says `marketplace: true` (the full card says why).
propertiesNoTHE OPEN LAYER AS A FILTER: facts a business publishes beyond price and availability — a capacity, a deposit, a duration, whether something is included. Three states per key: a published value that fits = confirmed; a published value that does not = refuted (left out, a fact); nothing published = unknown (KEPT, ranked lower, named in the card’s `unknown`). Ask for the user’s real conditions here instead of putting them in `query`: «for 8 people» is {key:"capacity",min:8}, «no deposit» is {key:"deposit",max:0}.
fulfillmentNoHOW it must reach the user, and the four are different questions: delivery = brought to the address; pickup = the user collects; on_site = the user goes there (a salon chair, a dining room); at_customer = the business travels (a mover, a plumber). Default any. A business that has not published an answer is KEPT; one that ruled it out is dropped.
radius_milesNoHow far the business may be, in miles. Default 15.
only_independentNotrue = leave out chains (a business whose website serves several of the places found). Default false: a chain is kept as a name, a telephone and a website — it was never read, so it has no offerings — and its card says `chain: true`.

TDQS

A3.9/5.0
Behavior5/5

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

Beyond the readOnly/openWorld annotations, the description explains how results should be interpreted: match.fit levels, nothing_fitting, per-business met/violated/unknown conditions, and the fact that no location and no fit yields an empty list rather than unrelated businesses. It also warns that results are candidates and that nothing is sent, booked, ordered, or paid without permission, which is exactly the behavioral context an agent needs.

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

Conciseness2/5

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

The first paragraph is well front-loaded and useful, but it is followed by a massive, typo-ridden coverage list of dozens of trades and cities that dominates the description and consumes far more context than its navigational value justifies. The core semantics are buried under this data dump.

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?

There is no output schema, but the description explains the key return semantics: best-fitting items first, match.fit interpretation, condition outcomes, and the empty-list case. It defers detailed card structure to the cards themselves, which is reasonable, though the enormous coverage list does not compensate for not describing card fields directly.

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?

The input schema has 100% description coverage and documents all 11 parameters in detail, so the baseline is 3 even without extra parameter explanation in the description. The description only restates location/default-radius context and condition semantics rather than adding new parameter syntax or format guidance beyond the schema.

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 opening sentence states a specific verb and resource: search for an item, dish, or service by meaning near a location within a default radius, for when the trade is not known. It clearly distinguishes the tool from a known-trade lookup in spirit, but it does not explicitly name a sibling such as find_business as the alternative.

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

Usage Guidelines4/5

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

The phrase 'when the trade is not known' gives clear when-to-use guidance, and the no-location behavior is explained. It stops short of explicitly naming when to use find_business or other sibling tools instead, so the guidance is clear but not fully routed.

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

Tool Schema Changelog

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

  1. 1 tool update
    • Changedlist_cards2 fields changed
      • changedInput schema / properties / location / description
        Previous value: -"a 5-digit US postcode (best), a city (\"Tampa, FL\") or \"lat,lng\". Required: the shelf is a place."New value: +"a 5-digit US postcode (best), a city (\"Tampa, FL\") or \"lat,lng\". Required for local trades; ignored for online niches (software, apps, online shops — see list_niches → online_niches)."
      • changedInput schema / required
        Previous value: -[
        -  "niche",
        -  "location"
        -]New value: +[
        +  "niche"
        +]
  2. 15 tool updates
    • First observedbook_slot
    • First observedcheck_availability
    • First observedfind_business
    • First observedget_business
    • First observedget_card
    • First observedget_offering
    • First observedget_product
    • First observedlist_cards
    • First observedlist_niches
    • First observedorder_status
    • First observedplace_order
    • First observedquote_order
    • First observedrequest_status
    • First observedrequest_to_owner
    • First observedsearch_catalog

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    C
    maintenance
    The owner-verified local business data + service & menu-price layer for AI agents. Owner-authored business profiles where every response carries provenance — verification level, completeness score, freshness timestamps, and upstream sources. * Search & profiles — find businesses by name, category, city, or geo-radius; full profiles with contacts, hours, media, ratings. * Price layer
    -
  • F
    license
    Not graded
    quality
    B
    maintenance
    Retrieves vetted Local Services Ads businesses (Google Guaranteed or Screened) as clean JSON for any service and US city, enabling lead generation, local SEO monitoring, and competitor tracking.
    -
  • 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
    A
    quality
    C
    maintenance
    Search for local businesses worldwide. Structured data optimized for AI agents. • Search Millions of businesses over 49 countries (Europe, Northamerica, Southamerica, Asia, Oceania) • Quality & demand scoring for every business • Ranking based on real user click-through data • No API key needed, free access • Rate limit: 500 requests/hour per IP
    6
    1
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.