Skip to main content
Glama

whats_changed

Read-onlyIdempotent

Report only what changed for a watched trip since a checkpoint.

Use this tool when the user asks for news on a trip already registered
with watch_trip; for the stored notification log rather than a live
diff, use get_trip_updates_since. Recomputes the
trip's current assessment and diffs it against the checkpoint at/just-
before `since` (or the last evaluation when `since` is omitted). Returns
{material, summary, added_events, removed_events, changed_events,
previous_travel_status, travel_status, confidence_from, confidence_to}.
`summary` is a plain-language line ('Since your last check: rail strike
CONFIRMED (was: announced); a road closure cleared; confidence 63->71%').
A non-material tick returns material=False with a clearly-flagged 'No
material change' summary — never invented churn. `since` is an optional
ISO-8601 timestamp (e.g. the user's last-seen time). Id is regex-validated
(^trip-[a-z0-9-]+$); unknown id -> {"error": "not_found"}, malformed id ->
{"error": "invalid_trip_id"}.

The response also forwards the presentation blocks from the current
assessment so the LLM consumer has full context alongside the delta:
presentation (affects_your_trip / doesnt_affect_your_trip / next_steps),
track_record_ref (90-day counts + URL), and suggested_next_call
(the suggested follow-up action). Forwarded in both material=True and
material=False branches; absent if upstream did not compute them
(legacy code paths) — never fabricated.

`audience` (optional: tmc | hotel | ota | tour_operator) attaches the
same `persona` block as assess_trip/watch_trip to the change alert —
audience-tagged actions for the events currently affecting the trip, so
the alert itself carries the operational next step. Unknown audience ->
honest error listing valid_audiences.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
sinceNo
trip_idYes
audienceNo

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, and the description adds substantial behavioral context: recomputation and diffing, non-material ticks with 'never invented churn', error responses for unknown/malformed IDs, forwarded presentation blocks with 'never fabricated' caveats, and honest errors for unknown audiences. No contradictions with annotations.

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

Conciseness4/5

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

The description is longer than average, but it is front-loaded with the core purpose and each paragraph adds necessary details about return values, errors, forwarded context, and audience behavior. It could be tightened slightly, as some return-field details are repeated across paragraphs, but overall it is well structured and information-dense.

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 and three parameters, the description is exceptionally complete: it covers the return object shape, material/non-material branches, error semantics, optional parameters, alternative tools, and edge-case behavior. It leaves little ambiguity for an agent selecting and invoking the tool.

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 description coverage is 0%, so the description carries the full burden for explaining parameters. It explains trip_id via regex validation and error cases, since as an optional ISO-8601 timestamp used as the checkpoint, and audience as an optional tmc/hotel/ota/tour_operator value with defined behavior. This goes well beyond the bare 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?

The description opens with a specific verb and resource: 'Report only what changed for a watched trip since a checkpoint.' This precisely defines the tool's scope and clearly differentiates it from siblings, even naming get_trip_updates_since as the alternative for stored notification logs.

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 usage guidance is provided: 'Use this tool when the user asks for news on a trip already registered with watch_trip; for the stored notification log rather than a live diff, use get_trip_updates_since.' This states both when to use and when not to use the tool, naming a specific alternative.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4.6/5.0
Disambiguation5/5

Every tool has a clearly distinct purpose, with explicit cross-references to differentiate overlapping tools (e.g., get_trip_updates_since vs whats_changed, assess_trip vs watch_trip). There is no ambiguity in when to use each tool.

Naming Consistency2/5

Naming is inconsistent: some tools use verb_noun (assess_trip, list_events, watch_trip), some use noun_noun (country_briefing, country_tourism_profile), and one uses a question phrase (whats_changed). This mixed convention reduces predictability.

Tool Count5/5

8 tools is well-scoped for a travel-trends server, covering trip assessment, monitoring, update retrieval, event browsing, daily briefing, and tourism statistics. Each tool earns its place without unnecessary bloat.

Completeness4/5

The core workflows (assess, watch, get updates, explain silence, list events) are well covered. The only notable gap is the absence of trip lifecycle management, such as an unwatch_trip or list_trips tool, which is a minor omission.

Resources