Skip to main content
Glama
viajante

viajante

Watch a price

watch_price

Re-run saved flight or hotel searches and report price changes; save a new named search to compare later.

Instructions

Re-run a saved flight or hotel search and report the change. With no arguments, list saved watches (watches null and status failed when the file cannot be read). With name, kind (flight or hotel) and params (the search_flights or search_hotels arguments): validate, save, then run. Saving under an existing name replaces that watch. With only name, run the saved search. The run records an observation even when the history opt-in is off. Each run bypasses the replay cache for a fresh search, under the one-search lock and provider cooldown. A rate-limited, failed or empty run records nothing. No scheduler and no notification: do not call it in a loop.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "watch_price"
  }
}

Input Schema

NameRequiredDescriptionDefault
kindNo
nameNo
paramsNo

Output Schema

NameRequiredDescriptionDefault
statusYes
empty_noteYes
error_codeYes
observed_atYes
retry_afterYes
completenessYes
empty_reasonYes
observed_at_basisYes
retry_after_secondsYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.5.2

TDQS

A4.7/5.0
Behavior5/5

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

Far beyond the annotations: it discloses upsert semantics ('Saving under an existing name replaces that watch'), that observations are recorded even with history opt-in off, that runs bypass the replay cache, are serialized under a one-search lock and provider cooldown, and that rate-limited/failed/empty runs record nothing. These are exactly the behavioral traits an agent needs to avoid misuse; the replace-on-same-name note is consistent with a non-destructive upsert rather than contradicting 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.

Conciseness4/5

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

Front-loaded with the core purpose, then organized by mode, then by operational caveats. Dense but nearly every clause carries information; the parenthetical about 'watches null and status failed when the file cannot be read' is a slightly cryptic edge-case detail that reads more like internal implementation notes than agent guidance.

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?

Given three undocumented-schema parameters, a mutation-capable upsert path, and concurrency/rate-limit constraints, the description covers modes, replacement behavior, failure recording, locking/cooldown, and the no-loop warning. With an output schema present, it correctly omits return-value explanation, so nothing essential is missing.

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

Parameters5/5

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

Schema coverage is 0% and the description fully compensates: it defines name (watch identifier, also the selector for run-by-name), kind (flight or hotel), and params (the argument object of search_flights or search_hotels). It also implies all are optional by describing the no-argument listing mode, matching required=0.

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 opening sentence gives a specific verb+resource ('Re-run a saved flight or hotel search and report the change') and then enumerates its three distinct modes (list, save+run, run-by-name). An agent can distinguish this from search_flights/search_hotels because the description explicitly frames it as a watch on a saved search rather than a fresh ad-hoc search.

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 clearly states the mode-selection rules (no arguments = list, name only = run saved, name+kind+params = save then run) and gives an explicit prohibition: 'No scheduler and no notification: do not call it in a loop.' It does not, however, say when an agent should prefer search_flights/search_hotels over creating a watch, so the guidance is clear but has no explicit alternative routing.

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