Skip to main content
Glama

Server Details

Vetted stays, ground intelligence and price monitoring, with live totals and the block checked.

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 17 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
ChatGPT
–
Claude
–

TDQS

A4/5.0

Scored across 9 tools

Disambiguation4/5

Most tools target distinct stages of the travel workflow: precomputed city picks, live search, listing inspection, search retrieval, ground context, activities, and price/booking watches. check_listing and get_block both surface nearby venues/walkability, and set_alert and watch_booking both monitor prices, but the booked-vs-unbooked and listing-vs-search distinctions are made clear.

Naming Consistency4/5

All names are snake_case and most follow a verb_object pattern (get_stay, search_stays, set_alert, watch_booking). city_picks is a noun phrase outlier, and check_listing/get_block use different verbs for similar retrieval actions, but the set remains readable.

Tool Count5/5

Nine tools is well within a reasonable range for this domain and each maps to a meaningful stage: discovery, inspection, context, activities, and ongoing monitoring. Nothing appears padded or missing purely for count reasons.

Completeness4/5

The surface covers search, precomputed picks, listing checks, retrieval of finished/running searches, neighborhood facts, activities, search alerts, and booked-stay watches, including a specific whole-home follow-up. Minor gaps remain around managing alerts/watches (list/stop/update), but core traveler workflows are covered.

Available Tools

9 tools
check_listingCheck a listing the traveler foundA
Read-only
Inspect

Reads one place the traveler found themselves into the receipts a pick carries: where it is, whether the street is quiet or lively, bars, cafés and restaurants within a ten-minute walk, the distance to a spot they name and, with dates, the lowest total and the lowest they can still cancel, each read now. Takes a Booking.com, Vrbo or Expedia property page, or a hotel's name and city; Airbnb pages cannot be read. Needs a key: one check a day free, Pro up to thirty. 5 to 60 seconds.

NameRequiredDescriptionDefault
cityNo
spotNoA place they will walk to: 'Rainey Street', 'the convention center'
textYesA property page URL, or a hotel's name with its city after a comma: 'Hilton Austin, Austin'
adultsNo
checkInNoYYYY-MM-DD; with checkOut, prices are read too
checkOutNo

TDQS

A3.8/5.0
Behavior4/5

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

Well beyond what readOnlyHint/openWorldHint already convey: it discloses quota tiers (1/day free, 30 for Pro), a 5–60 second latency expectation, source coverage limits (no Airbnb), and that values are read live at call time ('each read now'). It does not say what an error or partial response looks like when a source blocks the read, which is the notable remaining gap.

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 content is dense and largely front-loaded, but it is delivered as two long run-on sentences with a confusing metaphor in the opening clause and stacked clauses mid-sentence. Latency and quota — arguably the most decision-relevant facts — are buried at the tail.

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 6-param, no-output-schema, open-world read tool whose annotations only cover safety and openness, the description supplies the returned data set, quota, latency, source coverage and freshness. What remains unaddressed is the adults parameter and any behavior on failed/unsupported reads, which stops it short of fully self-contained.

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

Parameters3/5

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

With 50% schema coverage the description must carry the undocumented half, and it partially does: 'with dates' explains checkIn/checkOut semantics (prices only appear then), 'a hotel's name and city' explains city, and 'a spot they name' reinforces the spot param. However, the adults parameter is never mentioned in either the schema or the description, and 'with dates' gives no format or pairing constraint, so the compensation is incomplete.

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 core action is specific: read a single property the traveler found and return location, street character, nearby bars/cafés/restaurants within a ten-minute walk, distance to a named spot, and lowest total/cancellable prices. This is distinguishable from the sibling aggregators (search_stays, city_picks, get_stay) because it enriches one user-supplied listing rather than searching. The opening clause 'Reads one place the traveler found themselves into the receipts a pick carries' is metaphorically garbled and delays the actual meaning.

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 explicit input eligibility (Booking.com, Vrbo, Expedia page or hotel name + city) and a hard exclusion ('Airbnb pages cannot be read'), plus a stated prerequisite ('Needs a key: one check a day free, Pro up to thirty'). It does not name a sibling as the alternative for cases this tool cannot serve (e.g. an Airbnb link), leaving the agent to infer that search_stays or get_stay should be used instead.

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

city_picksToday's verified picks for a covered cityA
Read-only
Inspect

Instant and free: the latest finished standard search for one of the covered cities, about six weeks out, refreshed on a rota: whole homes for two adults and five nights in most cities, a six-adult weekend in New Orleans, Miami, Las Vegas, South Lake Tahoe, Sedona; stayType "hotel" gives the hotel-room trip (two adults, three nights) where one exists (Austin, Lisbon, Kyoto, Mexico City, New York, Paris, Barcelona, Montreal, San Diego, Edinburgh, Honolulu, London, Nashville, Scottsdale, New Orleans, Miami, Las Vegas, South Lake Tahoe, Sedona). Covered: Austin, Lisbon, Kyoto, Mexico City, New York, Paris, Barcelona, Montreal, San Diego, Edinburgh, Honolulu, London, Nashville, Scottsdale, New Orleans, Miami, Las Vegas, South Lake Tahoe, Sedona, Holbox, Niagara-on-the-Lake, Bentonville, Knoxville, Asheville, Canmore, Coeur d'Alene, Broken Bow, Lancaster, Ann Arbor, Da Nang, Hoi An. For other places or specific dates use search_stays.

NameRequiredDescriptionDefault
cityYes
stayTypeNohotel for the hotel-room trip; whole homes by default

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already grant readOnlyHint=true, but the description adds meaningful behavior: results are instant and free, cached from a rota refresh, and pinned to fixed trip parameters (~six weeks out, two adults/five nights, or a six-adult weekend in named cities). That the agent cannot control dates or party size is critical context absent from the schema. Points withheld because the trip-shape rules are buried in a single dense sentence and the city enumeration functions as data rather than behavior.

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 city roster is stated twice in near-identical form plus a third superset list, burning most of the token budget on redundant enumeration. The whole definition is one run-on sentence with no line breaks or structure, and the most decision-relevant facts (fixed dates, fixed party size) are buried mid-sentence rather than front-loaded.

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 two-parameter, read-only lookup with no output schema, the description covers the essential facts an agent needs: coverage, fixed trip parameters, the stayType fork, and the fallback tool. It doesn't hint at the response shape at all, but with no output schema that is a minor gap for a simple retrieval tool.

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%, and the `city` parameter has no schema description at all — the description compensates by enumerating the covered cities, which effectively serves as the allowed value set. `stayType` is explained beyond the schema's one-liner: `hotel` yields a two-adult/three-night room trip only in a listed subset, while whole homes are the default with five nights and two adults. Deduction for inconsistency — the hotel-capable city list is duplicated and several cities appear in both lists.

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 conveys that this returns a precomputed, cached search result ('the latest finished standard search') for a covered city, which is a specific resource. It does not lead with a clean verb+resource phrase, forcing the agent to parse a run-on sentence, but the coverage constraint and the routing sentence at the end make it distinguishable from search_stays.

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?

'For other places or specific dates use search_stays' explicitly names the alternative and the two conditions that select it. Implicitly, use this tool when the city is covered and the exact dates don't matter, but the description never states that positive condition directly — the agent must invert the exclusion.

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

get_activitiesThings to doA
Read-only
Inspect

Top-rated things to do on Viator for a search's spot and dates (what the trip is for first, the city's best otherwise), with a second place to look when the row is thin. Pass a searchId from search_stays or city_picks; intent overrides the search's own.

NameRequiredDescriptionDefault
intentNoOverride: 'kayaking', 'food tour'
searchIdYes

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and openWorldHint, and the description adds real context: results come from Viator, ranking prioritizes trip intent over the city's default best, and a fallback is mentioned 'when the row is thin.' The fallback phrase is too vague to be actionable, but the sourcing and ranking behavior are genuine additions beyond the annotations.

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

Conciseness4/5

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

Two compact sentences with the resource and provenance front-loaded. Some phrasing is convoluted ('what the trip is for first, the city's best otherwise,' 'a second place to look when the row is thin'), which slightly blunts otherwise efficient text.

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

Completeness3/5

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

For a 2-parameter read-only tool with annotations and no output schema, the description covers input provenance and ranking logic but says nothing about what the response contains or how many results come back. The vague 'second place to look' reference leaves an agent unsure what it is being pointed at.

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% and searchId has no description at all in the schema, so the description's guidance to source it from search_stays or city_picks compensates meaningfully. It also clarifies that intent overrides the search's own context, adding semantics beyond the schema's brief 'Override' note.

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 resource and source: 'Top-rated things to do on Viator for a search's spot and dates.' It is clearly a discovery/listing tool, distinguishable from get_stay and search_stays by naming the thing it returns, though it never uses a direct verb like 'get' or 'list'.

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?

'Pass a searchId from search_stays or city_picks' gives the explicit prerequisite and names the two sibling tools that produce the input. It states the intent-override rule but offers no when-not-to-use case or routing versus other content tools.

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

get_blockThe block around a pickA
Read-only
Inspect

Ground intelligence for one stay from a finished search: every bar and pub, café, restaurant and grocery within a ten-minute walk (counts, with + when the map read was capped in a dense center), the nearest stop and the walk to it, and map facts for walking back at night (bars within five minutes, the main road, the walk from the traveler's spot). Facts only: no crime figures, no safety rating. The same block is drawn as a map on the pick's stayUrl. Free; usually instant, a few seconds the first time a stay is asked about. Method: https://stayotter.com/ground.

NameRequiredDescriptionDefault
searchIdYesThe searchId from search_stays or get_stay
sourceIdYesThe pick's sourceId from the card

TDQS

A4/5.0
Behavior5/5

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

Beyond the readOnlyHint/openWorldHint annotations, it discloses cost ("Free"), latency ("usually instant, a few seconds the first time"), a data-quality caveat ("+" when the map read was capped in a dense center), and an explicit scope boundary ("no crime figures, no safety rating"). It even points to the underlying method URL. That is meaningful behavioral context an agent cannot get from structured fields.

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?

Purpose is front-loaded in the opening clause, and later sentences carry distinct payloads (map cross-reference, latency, method link). The core sentence is long and heavily parenthesized, which costs some readability, but no sentence is pure filler.

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 must carry the return shape, and it does: it enumerates every returned fact and flags the capped-count notation. Combined with the cost, latency, and method disclosures, an agent has everything needed to call it and interpret the result.

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 schema descriptions already explain that searchId comes from search_stays or get_stay and sourceId comes from the card. The description reinforces the "finished search" and "pick" framing but adds no format, constraint, or edge-case detail beyond the schema. Baseline 3 is correct.

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 names a specific resource and enumerates its contents precisely: counts of bars, pubs, cafés, restaurants and groceries within a ten-minute walk, plus the nearest stop and night-walking facts. That level of specificity makes the tool's scope unmistakable. It stops short of a 5 because it never names a sibling (e.g. get_stay, search_stays) to contrast against, so the agent must infer the boundary from context alone.

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?

"from a finished search" and "the pick's sourceId" imply the prerequisite state and inputs, which is useful implied guidance. However, there is no explicit statement of when to reach for this tool versus get_stay or city_picks, and no exclusion conditions. The agent can infer usage but is not told it.

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

get_stayGet a stay cardA
Read-only
Inspect

The card for a search by searchId: finished picks with receipts, or its running status. Free and instant. Use it to finish a search_stays call that returned 'running', or to read a shared stay (https://stayotter.com/stay/s_…). Each pick's stay card page on the site also draws the block (venues by kind, groceries, nearest stop) and lists map facts for walking back at night; the method is at https://stayotter.com/ground. For a group deciding together, https://stayotter.com/vote/ is a no-account vote page on the picks.

NameRequiredDescriptionDefault
searchIdYesThe searchId from search_stays, or the id in a stayotter.com/stay/s_… link
travellerCountryNo

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and the description is consistent with that (nothing suggests mutation). It adds cost/latency context ('Free and instant') and explains what the card contains (venues by kind, groceries, nearest stop, map facts), which is genuine value beyond the annotation.

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?

Purpose and the key usage trigger are front-loaded, but the tail half is promotional filler — the ground-method URL and the no-account vote page — that doesn't help an agent invoke this tool correctly and dilutes the signal.

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

Completeness3/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 carries the burden of describing returns; it gestures at contents ('finished picks with receipts', 'running status', block facts) but never characterizes the shape or what 'receipts' actually are. Adequate to call, but an agent still can't anticipate the response structure.

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?

searchId is well covered by the schema description and the description reinforces its provenance ('the searchId from search_stays, or the id in a stayotter.com/stay/s_… link'). However, travellerCountry appears in neither the schema description nor the prose, leaving half of the 50%-coverage parameter set undocumented.

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 the resource ('the card for a search by searchId') and its two return modes ('finished picks with receipts, or its running status'), which lets an agent distinguish it from search_stays. The verb is implied by a noun phrase rather than stated outright, keeping it just 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 Guidelines5/5

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

It names the exact sibling and the condition that selects it: 'Use it to finish a search_stays call that returned running,' plus the secondary case of reading a shared stay link. No inference is required to know when to reach for this tool over search_stays.

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

search_staysSearch stays with receiptsA
Read-only
Inspect

Live search of Booking.com, Vrbo and Expedia Group (hotel rooms) for the dates and party, verified against the map. Returns up to three picks (best overall, best value, closest) with receipts and tracked openUrl links. Picks within about a minute and the fine print after that, stopping at two and a half minutes; returns status 'running' with a searchId if it is not done within waitSeconds. Three trips on the house per connection, then a key (free account: five a month; Pro: unlimited).

NameRequiredDescriptionDefault
petsNoA pet is coming: only listings whose own policy allows pets
vibeNolocal
whereYesCity or town, with state or country when ambiguous: 'Lisbon', 'Wimberley, TX', 'Kyoto, Japan'.
adultsNo
budgetNoSuper-cheap brands (Motel 6, Econo Lodge and the like) are out on every budget. value = cheapest that passes, mid = balanced, splurge = the nicest (ranked on star class and reviews, not price; no hotel under four stars or from an economy or limited-service brand; mid has none under three)mid
intentNoWhat the trip is for, in the traveler's words: 'kayaking', 'a cooking class', 'a quiet writing week'. Steers things to do, never the ranking.
walkToNoWhat should be within a ten-minute walk
checkInYesYYYY-MM-DD
checkOutYesYYYY-MM-DD, 1 to 90 nights after checkIn (Booking.com is skipped past 30 nights; Vrbo quotes longer stays)
childrenNo
flexDaysNoDate flexibility for the alert watcher: 0, 1, 2, 3 or 7 days
stayTypeNoentire = whole apartments and houses (default); hotel = hotel rooms (Booking.com and Expedia Group); any = rentals and hotel rooms side by side, each tagged; resort = resorts and all-inclusives, Booking.com only, priced per person tooentire
hotelBrandsNoHotel loyalty: keep hotel picks inside these groups (marriott, hilton, hyatt, ihg, accor, wyndham, choice, bestwestern); whole homes are unaffected
maxTotalUsdNoHard cap on the whole-stay total in US dollars, taxes and fees included
quietStreetNo
waitSecondsNoHow long to wait for the search before returning a running status
nearLandmarkNoA place the traveler wants to be near: 'Zilker Park', 'the old town', 'Shinkansen station'
maxPerNightUsdNoHard cap per night in US dollars, all-in (taxes and fees included); kept per night, so the stay total follows the dates. Use instead of maxTotalUsd when the traveler gives a nightly figure (the top of a range).
travellerCountryNoISO-2 country the traveler lives in (default US); decides whether an eSIM line applies

TDQS

A3.9/5.0
Behavior5/5

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

Goes well past the readOnly/openWorld annotations: discloses latency ('picks within about a minute', hard stop at two and a half minutes), the async contract ('returns status running with a searchId'), dedup/limit behavior (up to three picks), and output artifacts (receipts, tracked openUrl links). Quota and auth requirements are stated explicitly: three free trips per connection, then a key; free account five a month, Pro unlimited.

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?

Four sentences, front-loaded with what it searches and returns, then timing, then pricing. Dense but every sentence carries distinct information. The rate-limit sentence with two nested account tiers is slightly bulky but not wasteful.

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 19-parameter, no-output-schema search tool, the description covers the essentials an agent needs: sources searched, result count and composition, async fallback, and cost/auth gating. Remaining gaps are mostly parameter-level nuances already handled by the schema, though the 'verified against the map' claim and the alert-oriented flexDays intent could use more explanation.

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 79%, so the schema already carries most parameter meaning. The description adds only loose references to 'the dates and party' and implies waitSeconds drives the running-status cutoff; it does not explain stayType vs. hotelBrands interplay, budget tiers, or the two price caps. Baseline 3 is appropriate.

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 concrete verb+resource with named sources: 'Live search of Booking.com, Vrbo and Expedia Group (hotel rooms)'. It also conveys the output shape (three picks: best overall, best value, closest). It doesn't explicitly differentiate from siblings like get_stay, check_listing, or city_picks, so an agent must infer the boundary from names alone.

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?

Implicitly frames this as the discovery step ('Live search... verified against the map') and explains the waitSeconds/running-status fallback, which is useful. But it never says when to prefer this over get_stay, check_listing, or city_picks, nor any exclusions (e.g., do not use for a known listing).

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

set_alertStart price-drop alertsAInspect

Starts the otter's daily re-run of a finished search, emailing the key's account when a verified pick drops 5% or $50 or the cheapest pick disappears. Needs a key (stayotter.com/connect); the first alert is free with an account, more are Pro.

NameRequiredDescriptionDefault
searchIdYes

TDQS

A3.7/5.0
Behavior4/5

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

Goes well beyond the annotations: it discloses a recurring daily re-run, email delivery to the key's account, the exact alert thresholds, the auth requirement with a connect URL, and a pricing/quota model (first alert free, more are Pro). It stays silent on the non-idempotent behavior declared in annotations — an agent isn't warned that repeat calls may create duplicate alerts.

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?

Two sentences, front-loaded with the core action and trigger criteria; the auth and pricing clauses are compact and relevant to whether the agent should call it. Slightly dense with commercial detail that a model may not need.

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 annotations covering the mutation/safety profile and no output schema, the description supplies the missing pieces an agent needs: prerequisite (finished search + key), side effect (daily email), and trigger conditions. The main remaining gap is duplicate-alert/idempotency behavior and how to stop an alert.

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 0%, so the description carries the burden for the single searchId parameter. It adds some meaning by stating the search must be a *finished* search, but doesn't clarify the s_ prefixed ID format or what happens if the ID refers to an unfinished search.

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 ('Starts the otter's daily re-run of a finished search') plus the exact trigger conditions for the alert (5% or $50 drop, cheapest pick disappears). Strong on what it does, but it never names the closely related siblings (watch_booking, watch_similar_homes, watch_booking) that an agent would have to choose between.

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 implies the precondition that the search must already be 'finished' and that a key is required, which guides invocation. But it gives no explicit when-to-use/when-not guidance and does not contrast itself with watch_booking or watch_similar_homes, which are the obvious alternatives for watching prices.

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

watch_bookingWatch a booking until its free-cancellation deadlineA
Idempotent
Inspect

For a stay already booked with free cancellation: pass the confirmation email's text. The otter keeps five facts (property, dates, total paid, deadline, where it was booked), discards the rest (no names, confirmation numbers or card details), reads the property's rate every morning and emails the account when a cheaper rate it can still cancel into appears (5% or $50), with reminders 7, 3 and 1 days before the deadline. Hotels booked direct are read across sellers through Google's rate list. A single whole home has one calendar, so once booked its price can't drop for the traveler: the first read finds the nights taken, the otter emails to say so and offers (free) to watch other whole homes nearby for the same dates until the deadline. A watch that closes without a drop ends with one note saying the price held (the reads and the lowest rate seen); a drop alert asks whether the traveler rebooked, and the answers feed the public track record as totals. Needs a key; free and unlimited. The otter never books or cancels.

NameRequiredDescriptionDefault
paidUsdNoWhat they paid in US dollars, when the confirmation is in a currency the otter can't convert
confirmationYesThe confirmation email's text, as the traveler pasted or forwarded it

TDQS

A3.9/5.0
Behavior5/5

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

Extremely rich beyond annotations: states it needs a key, is free/unlimited, emails the account, reads rates every morning, uses 5%/or $50 thresholds, reminder cadence 7/3/1 days, what it retains vs. discards, whole-home edge case, and that it never books or cancels. This is consistent with readOnlyHint=false (it creates a watch) and destructiveHint=false.

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?

A long narrative wall with many tangential details (thresholds, reminder cadence, whole-home calendars, public track record) that crowd out the core action. The opening is reasonably front-loaded, but overall it is over-verbose and hard to scan.

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 complex, no-output-schema tool it covers the lifecycle well: what happens on the first read, on a drop, on a closing watch, and the whole-home edge case. The main gap is that notification/return behavior is described narratively rather than structurally, but an agent has enough to call 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 description coverage is 100% for both parameters, so the schema already documents confirmation text and paidUsd. The description reinforces that confirmation is the pasted email text but adds no format/syntax beyond the schema. Baseline 3 is appropriate.

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 states a specific verb+resource: watch a stay already booked with free cancellation, and explains it emails when a cheaper rate appears. It is clearly distinguishable from set_alert and watch_similar_homes by scope (an existing booking vs. a generic alert / nearby homes), though it never names those siblings explicitly.

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 triggering condition: 'For a stay already booked with free cancellation: pass the confirmation email's text.' That tells the agent exactly when this applies. It does not explicitly exclude set_alert or clarify the boundary against watch_similar_homes even though it describes that behavior inline.

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

watch_similar_homesWatch other whole homes for a booked stay's datesA
Idempotent
Inspect

For a whole home already booked (watch_booking, then the first morning's read found the nights taken by the traveler): watches other verified whole homes nearby for the same dates and party, and emails the account when one comes in at least 5% or $50 under what they paid, until their free-cancellation deadline. A find is always a different home, never the same one cheaper; the traveler books the new one first and cancels theirs second. Starts with one live search now (30 to 90 seconds; not counted as a trip). Needs the key the booking was watched with; free.

NameRequiredDescriptionDefault
bookedIdYesThe bookedId watch_booking returned

TDQS

A4.8/5.0
Behavior5/5

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

Goes well beyond the annotations: discloses the trigger thresholds (5% or $50 under), the alert channel (email), the expiry (free-cancellation deadline), that the initial live search takes 30-90 seconds, that it isn't counted as a trip, that it requires the same key the booking was watched with, and that it costs nothing. It also rules out a misleading expectation by stating a find is never the same home cheaper.

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 precondition and effect, and every clause carries information (threshold, timing, ordering, cost). It is a dense single block with heavy parenthetical nesting, which slightly hurts scanability but wastes no sentences.

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 one-parameter tool with no output schema, the description supplies everything an agent needs: the triggering condition, what the user will observe (email), how long the first call blocks, cost, and the follow-up action ordering.

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 already 100%, so the baseline is 3. The description adds real value by noting the tool 'needs the key the booking was watched with', clarifying that bookedId must come from the same credential context as the original watch — a constraint not captured in 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 ('watches other verified whole homes nearby for the same dates and party') plus the outcome (emails the account on a qualifying price drop). It is unambiguously distinct from watch_booking and set_alert, which are the nearest 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?

Gives an explicit precondition chain: the home must already be booked via watch_booking and the first morning's read must have found the nights taken. It also states the required workflow ordering — book the new home first, cancel the original second — so the agent knows not to advise cancellation upfront.

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
    • Changedsearch_stays1 field changed
      • changedInput schema / properties / budget / description
        Previous value: -"value = cheapest that passes, mid = balanced, splurge = the nicest (ranked on star class and reviews, not price; no hotel under four stars or from an economy or limited-service brand; mid has none under three)"New value: +"Super-cheap brands (Motel 6, Econo Lodge and the like) are out on every budget. value = cheapest that passes, mid = balanced, splurge = the nicest (ranked on star class and reviews, not price; no hotel under four stars or from an economy or limited-service brand; mid has none under three)"
  2. 3 tool updates
    • Changedcheck_listing1 field changed
      • changedInput schema / properties / spot / description
        Previous value: -"A place they will walk to: 'Rainey Street', 'the convention centre'"New value: +"A place they will walk to: 'Rainey Street', 'the convention center'"
    • Changedsearch_stays4 fields changed
      • changedInput schema / properties / intent / description
        Previous value: -"What the trip is for, in the traveller's words: 'kayaking', 'a cooking class', 'a quiet writing week'. Steers things to do, never the ranking."New value: +"What the trip is for, in the traveler's words: 'kayaking', 'a cooking class', 'a quiet writing week'. Steers things to do, never the ranking."
      • changedInput schema / properties / maxPerNightUsd / description
        Previous value: -"Hard cap per night in US dollars, all-in (taxes and fees included); kept per night, so the stay total follows the dates. Use instead of maxTotalUsd when the traveller gives a nightly figure (the top of a range)."New value: +"Hard cap per night in US dollars, all-in (taxes and fees included); kept per night, so the stay total follows the dates. Use instead of maxTotalUsd when the traveler gives a nightly figure (the top of a range)."
      • changedInput schema / properties / nearLandmark / description
        Previous value: -"A place the traveller wants to be near: 'Zilker Park', 'the old town', 'Shinkansen station'"New value: +"A place the traveler wants to be near: 'Zilker Park', 'the old town', 'Shinkansen station'"
      • changedInput schema / properties / travellerCountry / description
        Previous value: -"ISO-2 country the traveller lives in (default US); decides whether an eSIM line applies"New value: +"ISO-2 country the traveler lives in (default US); decides whether an eSIM line applies"
    • Changedwatch_booking1 field changed
      • changedInput schema / properties / confirmation / description
        Previous value: -"The confirmation email's text, as the traveller pasted or forwarded it"New value: +"The confirmation email's text, as the traveler pasted or forwarded it"
  3. 1 tool update
    • Changedsearch_stays4 fields changed
      • changedInput schema / properties / budget / description
        Previous value: -"value = cheapest that passes, mid = balanced, splurge = the nicest"New value: +"value = cheapest that passes, mid = balanced, splurge = the nicest (ranked on star class and reviews, not price; no hotel under four stars or from an economy or limited-service brand; mid has none under three)"
      • addedInput schema / properties / maxPerNightUsd
        Added value: +{
        +  "description": "Hard cap per night in US dollars, all-in (taxes and fees included); kept per night, so the stay total follows the dates. Use instead of maxTotalUsd when the traveller gives a nightly figure (the top of a range).",
        +  "exclusiveMinimum": 0,
        +  "type": "number"
        +}
      • changedInput schema / properties / maxTotalUsd / description
        Previous value: -"Hard cap on the whole-stay total in US dollars"New value: +"Hard cap on the whole-stay total in US dollars, taxes and fees included"
      • changedInput schema / properties / stayType / description
        Previous value: -"entire = whole apartments and houses (default); hotel = hotel rooms (Booking.com and Expedia); any = rentals and hotel rooms side by side, each tagged; resort = resorts and all-inclusives, Booking.com only, priced per person too"New value: +"entire = whole apartments and houses (default); hotel = hotel rooms (Booking.com and Expedia Group); any = rentals and hotel rooms side by side, each tagged; resort = resorts and all-inclusives, Booking.com only, priced per person too"
  4. 1 tool update
    • Addedget_block
  5. 2 tool updates
    • Changedcity_picks1 field changed
      • addedInput schema / properties / stayType
        Added value: +{
        +  "description": "hotel for the hotel-room trip; whole homes by default",
        +  "enum": [
        +    "entire",
        +    "hotel"
        +  ],
        +  "type": "string"
        +}
    • Addedwatch_similar_homes
  6. 2 tool updates
    • Addedcheck_listing
    • Addedwatch_booking
  7. 5 tool updates
    • First observedcity_picks
    • First observedget_activities
    • First observedget_stay
    • First observedsearch_stays
    • First observedset_alert

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources