Skip to main content
Glama

Server Details

Travel & commerce intelligence for AI agents: search, book & price-track hotels, events, retail.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.6/5 across 34 of 34 tools scored. Lowest: 3.9/5.

Server CoherenceA
Disambiguation4/5

While most tools have distinct purposes, the high number (34) and overlapping domains (e.g., pricetik_search vs pricetik_hotel_search vs pricetik_trip_plan) could cause confusion if descriptions are not read carefully. Detailed descriptions help, but some tools could be conflated.

Naming Consistency5/5

All tools follow a consistent pricetik_<domain>_<action> pattern (e.g., pricetik_hotel_search, pricetik_group_trip_create). The naming is predictable and clear, with no mixed conventions.

Tool Count4/5

34 tools is on the high side, but the broad travel planning domain (hotels, groups, tickets, destination info, etc.) justifies the count. Still, it feels slightly heavy and could be streamlined.

Completeness3/5

The tool set covers major workflows (hotel search/book/alert, group trip lifecycle, trip planning), but notable gaps exist: dedicated activity search (subsumed by pricetik_search), transfer search (only via pricetik_trip_plan), and alert management (beyond watch). These gaps could cause agent dead-ends.

Available Tools

30 tools
pricetik_compare_destinationsCompare DestinationsA
Read-only
Inspect

Apples-to-apples destination comparison. Pass 2–4 destinations + same date window + same guest count. Returns median 4★ nightly rate, top-3 hotels per destination by deal score, top-3 activities, and a seasonal-premium flag (event-window markers like "F1 weekend in Vegas"). Use pricetik_destinations first to resolve activity codes if you do not already have them (its activityDestinationCode field — the short Hotelbeds CODE like "LAS", not the destination UUID). Live-event tickets are not compared here — after picking a destination, bundle them via pricetik_trip_plan includeTickets=true or pricetik_ticket_search. Stricter rate limit than other tools (10/min) — fans out 2–4 parallel hotel + activity searches.

ParametersJSON Schema
NameRequiredDescriptionDefault
roomsNoNumber of rooms (1–5, default 1).
guestsNoGuests per room (1–10, default 2).
checkInYesCheck-in date (YYYY-MM-DD).
checkOutYesCheck-out date (YYYY-MM-DD).
starRatingNoStar-rating floor used for the median (1–5, default 4).
destinationsYes2–4 free-text destinations to compare.
activityCodesNoHotelbeds 3-letter destination codes parallel to `destinations`. Optional — when omitted, activity-side comparison is skipped.
Behavior5/5

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

Annotations indicate readOnlyHint=true, and the description does not contradict this. It adds valuable behavioral context beyond annotations: 'Stricter rate limit than other tools (10/min) — fans out 2–4 parallel hotel + activity searches.' It also describes the return format (median nightly rate, top-3 hotels/activities, seasonal-premium flag), which is helpful since there is no output schema.

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 moderately long but well-structured and front-loaded with the core purpose. All sentences add value, including the rate limit warning and sibling tool references. A 4 is appropriate due to slight verbosity, though it remains efficient.

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 the absence of an output schema, the description thoroughly explains what the tool returns (median rate, top hotels/activities, seasonal-premium flag). It covers required and optional parameters, the rate limit, and prerequisite steps (resolving activity codes). The context is complete for an agent to use the tool correctly.

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 100%, but the description adds significant meaning beyond the schema. It explains the relationship between activityCodes and destinations ('parallel to destinations'), what happens when activityCodes is omitted (activity-side comparison skipped), and provides guidance on obtaining activity codes (using pricetik_destinations and the activityDestinationCode field).

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 clearly states the verb ('compare') and resource ('destinations'), and distinguishes from sibling tools by specifying what it does not do (live-event tickets) and pointing to alternatives (pricetik_trip_plan, pricetik_ticket_search). It also explains the output (median rate, top hotels/activities, seasonal-premium flag).

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?

The description explicitly states when to use it: 'Pass 2–4 destinations + same date window + same guest count.' It also provides clear guidance on what not to use it for and suggests alternatives ('Live-event tickets are not compared here... bundle them via pricetik_trip_plan includeTickets=true'). Additionally, it recommends using pricetik_destinations first to resolve activity codes.

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

pricetik_destinationsDestinationsA
Read-only
Inspect

Resolve free-text into the canonical shape other PriceTik tools need. Two cases: (1) a DESTINATION like "Las Vegas" or "Mallorca" → hotel-search-friendly text + the Hotelbeds activity destination code for pricetik_activity_search + country + subtitle (kind:"destination"); (2) a SPECIFIC NAMED HOTEL like "the Wynn Las Vegas" → kind:"hotel" with a providerPropertyId you can pass straight to pricetik_hotel_watch_rate, pricetik_hotel_get_booking_url, or pricetik_hotel_details (no UUID round-trip). This is how you turn a hotel NAME into a watchable/bookable handle — pricetik_hotel_search itself only accepts a city/landmark. Rows also carry latitude/longitude and an IATA airportCode when known — feed airportCode straight into pricetik_transfer_search as the fromCode/toCode for an airport pickup. Agents call this first so they never have to ask the user for a code. Cache-backed, no API key required.

ParametersJSON Schema
NameRequiredDescriptionDefault
qYesFree-text destination (min 2 chars).
limitNoMax suggestions to return (1–15, default 5).
Behavior5/5

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

Annotations include readOnlyHint=true, which is consistent. The description adds behavioral context beyond annotations: cache-backed, no API key required, and explains the two output types (kind:'destination' and kind:'hotel') and the fields returned. No contradiction.

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 well-structured and front-loaded with the main purpose. It is somewhat long but each sentence adds value, explaining use cases and cross-referencing sibling tools. Minor redundancy could be tightened, but overall efficient.

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 the tool has two modes and is a resolver for multiple downstream tools, the description is comprehensive. It explains output shapes, how to use results (e.g., pass providerPropertyId to watch/booking tools), and ties into other tools. No output schema exists, so the description adequately covers return values.

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% with descriptions for both parameters. The description adds context about what 'q' is used for (free-text destination) and mentions limit constraints, but largely repeats schema info. Since schema already covers parameters, baseline 3 is appropriate.

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 clearly states the tool's purpose: 'Resolve free-text into the canonical shape other PriceTik tools need.' It distinguishes two specific cases (destination and hotel) and explicitly differentiates from sibling pricetik_hotel_search, which only accepts a city/landmark. The verb 'resolve' and resource 'free-text' are specific.

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?

The description tells when to use this tool: 'Agents call this first so they never have to ask the user for a code.' It explains that pricetik_hotel_search only accepts city/landmark, so for hotel names this tool is required. It also provides an alternative use: feed airportCode into pricetik_transfer_search. Additionally, it states no API key required, giving clear context.

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

pricetik_flexible_datesFlexible DatesA
Read-only
Inspect

Find the cheapest contiguous N-night stay within a flexible date window. Backed by the cached hotel_price_history hypertable — never calls Hotelbeds. Pass either propertyId (specific hotel) or destination (top-25 properties in radius). Returns up to 10 candidate (checkIn, checkOut, propertyId) triples sorted by total cost ascending. Each candidate carries a confidence flag — "high" when at least one rate per day was observed, "low" when gap days were backfilled with the window average. Tier-clamped: Open ≤ 30-day window, Pro ≤ 90, Scale and above ≤ 180.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax candidates to return (1–25, default 10).
nightsNoNumber of nights per stay (1–30, default 3).
windowEndYesInclusive window end (YYYY-MM-DD).
propertyIdNoPriceTik hotel UUID. Provide one of propertyId / providerPropertyId / destination.
destinationNoFree-text destination (city or "lat,lng"). Provide one of propertyId / providerPropertyId / destination.
windowStartYesInclusive window start (YYYY-MM-DD).
maxTotalCostNoOptional ceiling on total stay cost.
maxNightlyRateNoOptional ceiling on per-night rate.
providerPropertyIdNoProvider-side property handle from a hotel search or destination lookup, resolved to the UUID server-side. Provide one of propertyId / providerPropertyId / destination.
Behavior5/5

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

Beyond the readOnlyHint annotation, the description discloses that the tool is backed by a cached hypertable, returns up to 10 candidates with confidence flags (high/low), and includes tier-based window limits. No contradiction 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.

Conciseness5/5

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

The description is concise (~100 words) and well-structured: main purpose in first sentence, followed by data source, parameter selection, output format, confidence detail, and tier limits. Every sentence adds value without fluff.

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?

Given no output schema, the description adequately explains the return format and confidence flags. It covers tier clamping and parameter options. However, it omits error cases or behavior when no candidates found, but overall is sufficient for effective use.

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% with good parameter descriptions. The description adds value by explaining the grouping of propertyId/destination and the output format (candidate triples with confidence). This goes beyond mere schema repetition.

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 clearly states the tool's purpose: 'Find the cheapest contiguous N-night stay within a flexible date window.' It specifies the data source (cached hypertable) and distinguishes from siblings like pricetik_hotel_price_check by emphasizing flexibility and caching.

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 description provides context on when to use (flexible date range, hotel or destination) and mentions it never calls Hotelbeds, implying it's fast but cached. However, it does not explicitly contrast with siblings like pricetik_hotel_price_check or pricetik_search for fixed dates.

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

pricetik_group_trip_add_optionGroup Trip Add OptionAInspect

Propose a candidate to the group — a hotel, activity, live-event ticket, or transfer found via the normal search tools. Pass the surface plus a ref object carrying the surface identifier (hotel: propertyId or providerPropertyId; activity: activityCode; ticket: the event id from pricetik_ticket_search; transfer: the rateToken) and display snapshot fields (name, priceUsd, currency, photoUrl, bookingUrl) copied from the search result so other members see what they are voting on. Member-only (403 otherwise); sessions cap at 25 options. Add 2–4 strong candidates per surface rather than dumping every search result.

ParametersJSON Schema
NameRequiredDescriptionDefault
refYesSurface identifier + display snapshot: { propertyId | providerPropertyId | activityCode | ticketId | rateToken, name, priceUsd, currency, photoUrl, bookingUrl }. Copy values from the search result unchanged.
noteNoOptional pitch shown with the option, e.g. "walkable to the venue".
surfaceYesWhich vertical this candidate belongs to.
sessionIdYesGroup trip session UUID.
Behavior4/5

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

Annotations already indicate this is not read-only (readOnlyHint=false) and not destructive (destructiveHint=false), so the description adds value by specifying that it is member-only (returns 403 otherwise) and caps at 25 options per session. No contradiction 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.

Conciseness5/5

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

The description is compact yet complete: it opens with the purpose, then lists surfaces, explains the ref object, gives usage tips, and states constraints. Every sentence contributes unique information without redundancy or 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?

Despite having no output schema, the description covers all necessary context: when to use, how to populate parameters, constraints, and best practices. It addresses the complexity of a nested ref object and ensures the agent understands the expected workflow. Minor omission: does not describe the return value or success/error handling, but the tool's primary purpose is action-oriented.

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%, providing baseline 3. The description adds meaningful detail by explaining how to construct the ref object differently per surface (propertyId, activityCode, ticketId, rateToken) and which display fields to copy. It also clarifies the purpose of the optional note field, exceeding basic schema documentation.

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 starts with a specific verb ('Propose a candidate') and resource ('to the group'), immediately clarifying the action. It lists the four supported surfaces (hotel, activity, ticket, transfer) and distinguishes from sibling tools like pricetik_hotel_search or pricetik_group_trip_vote, making the tool's unique role clear.

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 description provides explicit guidance on when to use this tool: after finding candidates via search tools, and recommends adding 2–4 strong candidates per surface. It also states constraints (member-only, 25-option cap) but does not explicitly exclude scenarios where the tool should not be used, such as for candidates not found via the listed search tools.

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

pricetik_group_trip_cancelGroup Trip CancelAInspect

Cancel a group trip session (organizer-only; 403 OrganizerOnly for other members). Closes a still-planning session — status moves to "cancelled". A finalized session cannot be cancelled (409 AlreadyFinalized); a re-cancel returns 409 SessionNotOpen. Coordinate-only: cancelling never touches a booking (PriceTik never auto-purchases), so there is nothing to refund. Use this when the group abandons the trip; to lock a plan instead, use pricetik_group_trip_finalize. Requires an authenticated API key.

ParametersJSON Schema
NameRequiredDescriptionDefault
sessionIdYesGroup trip session UUID.
Behavior4/5

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

Discloses behavioral traits beyond annotations: status change to 'cancelled', error codes (403, 409), no refund because no booking is touched, and state restrictions. Annotations indicate readOnlyHint=false and destructiveHint=false, which description aligns with (non-destructive cancel).

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

Conciseness5/5

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

Four sentences, each with distinct purpose: constraint, effect, error conditions, usage guidance. Front-loaded with key action. No redundant text.

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 the tool's complexity (state transitions, error cases, authentication), the description covers all essential aspects. No output schema but return values are adequately implied. Sibling tools are mentioned for contrast.

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 'sessionId' with schema description 'Group trip session UUID.' Description adds no extra meaning beyond schema. Schema coverage is 100%, so baseline 3 is appropriate.

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 clearly states the tool cancels a group trip session, with specific verb 'cancel' and resource 'group trip session'. It distinguishes from sibling 'pricetik_group_trip_finalize' by explaining when to use each.

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?

Explicitly states 'organizer-only' usage constraint, mentions authentication requirement, and provides a clear when-to-use directive: 'Use this when the group abandons the trip; to lock a plan instead, use pricetik_group_trip_finalize.'

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

pricetik_group_trip_createGroup Trip CreateAInspect

Start a shared GROUP trip-planning session that friends join by share code — the multi-user counterpart to pricetik_trip_plan. Pass destination (plus optional checkIn/checkOut/title). Returns the session, a shareCode, and a shareUrl (pricetik.com/trips/) — give BOTH to the user so companions can join from their own agent (pricetik_group_trip_join) or vote on the web page without one. Choreography: create → search hotels/activities/tickets as usual → pricetik_group_trip_add_option for the strongest candidates → members vote → organizer finalizes. The creator becomes the session organizer. Requires an authenticated API key; pass an Idempotency-Key header to make retries safe. Sessions are coordinate-only — booking stays per-traveler via the booking-url tools; PriceTik never books on anyone's behalf.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNoDisplay title for the session, e.g. "Vegas bachelor party". Optional.
checkInNoProposed check-in date (YYYY-MM-DD). Optional.
checkOutNoProposed check-out date (YYYY-MM-DD). Optional.
destinationYesFree-text destination, e.g. "Las Vegas".
displayNameNoThe organizer's name as shown to other members, e.g. "Alex". Optional.
Behavior5/5

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

Beyond annotations (readOnlyHint and destructiveHint both false), the description adds critical behavioral context: requires authenticated API key, Idempotency-Key header for safe retries, the creator becomes organizer, and the session is coordinate-only (no booking on behalf). No contradiction 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.

Conciseness5/5

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

The description is a single paragraph but packs dense information efficiently. It front-loads the core purpose, then details parameters, return values, choreography, and constraints. Every sentence contributes value without redundancy.

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 the tool's complexity (5 parameters, no output schema), the description fully covers what the agent needs: purpose, inputs, outputs (with explanation of shareCode and shareUrl), workflow, prerequisites, and limitations. It is complete for a creation 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 100%, so baseline is 3. The description adds value by rephrasing parameter meanings with examples (e.g., title: 'Vegas bachelor party', displayName: 'Alex') and clarifying that dates are proposed. This goes beyond the schema's minimal descriptions.

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 clearly states the tool's purpose: 'Start a shared GROUP trip-planning session that friends join by share code'. It identifies it as the multi-user counterpart to pricetik_trip_plan, differentiating it from siblings. The verb 'start' and resource 'shared group trip-planning session' are specific.

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?

The description provides explicit when-to-use guidance: it is the multi-user counterpart to pricetik_trip_plan. It outlines a choreography (create → search → add options → vote → finalize) and states that sessions are coordinate-only, with booking per-traveler via booking-url tools. It also mentions authentication and idempotency requirements.

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

pricetik_group_trip_finalizeGroup Trip FinalizeA
Destructive
Inspect

Lock in the group's plan (organizer-only; 403 for other members). Pass optionIds to finalize the winning subset — read pricetik_group_trip_get first and pick the top-voted options; when optionIds is omitted, ALL candidate options are locked in. Returns the finalized plan grouped by surface with vote tallies and handoffPolicy "user_completes_booking"; from there, hand EACH traveler their own booking handoff via the normal tools (pricetik_hotel_get_booking_url, pricetik_activity_get_booking_url, ticket checkout links, pricetik_transfer_get_booking_url). Prices in option snapshots are display-only — re-check live rates via the surface read tools before booking. Finalizing is irreversible for the session (it moves to "finalized", 409 on repeat); PriceTik never books on anyone's behalf.

ParametersJSON Schema
NameRequiredDescriptionDefault
optionIdsNoOptional subset of option UUIDs to lock in. Omit to lock in ALL candidate options (it does NOT auto-pick the top-voted — read pricetik_group_trip_get and pass the winners explicitly if you want a subset).
sessionIdYesGroup trip session UUID.
Behavior5/5

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

Annotations indicate destructiveHint=true, but the description adds substantial behavioral context: authorization restrictions (organizer-only), irreversibility (409 on repeat), output structure (finalized plan grouped by surface with vote tallies and handoffPolicy), and the fact that PriceTik never books on behalf of users. No contradiction 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 moderately long (4 sentences) but each sentence serves a distinct purpose: authorization, parameter explanation, output description, warnings. It is well-structured and front-loaded with the core action. Slightly verbose due to multiple warnings, but all are necessary.

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 the absence of an output schema, the description covers return values (finalized plan with tallies and handoffPolicy), error cases (403, 409), workflow dependency (must read group trip first), and related tools (booking URLs). It is complete for a complex mutation tool with no output schema.

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 100%, yet the description adds crucial semantic detail: optionIds can be omitted to lock all candidates (but does not auto-pick top-voted; winners must be explicitly passed from pricetik_group_trip_get), and the maxItems constraint is reinforced. This goes beyond the schema's basic descriptions.

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 clearly states 'Lock in the group's plan' and distinguishes from sibling tools like cancel, reopen, etc. It specifies the verb 'finalize' on the resource 'group trip', and differentiates between passing a subset of optionIds or omitting to lock all candidates.

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?

Explicitly says it's organizer-only (403 for others), instructs to read pricetik_group_trip_get first and pick top-voted options, and advises to use separate booking tools for each traveler. It also warns that finalizing is irreversible and that prices are display-only, guiding when to use this tool versus re-checking live rates.

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

pricetik_group_trip_getGroup Trip GetA
Read-only
Inspect

Fetch a group trip session — status, members (display names only), candidate options with per-option vote tallies (upvotes / downvotes / score), and the caller's own votes. Look up by sessionId or shareCode (exactly one). Poll this after adding options or between conversations to see how the group is converging before the organizer finalizes. Requires an authenticated API key; non-members get 403 (join first via pricetik_group_trip_join). Pure read.

ParametersJSON Schema
NameRequiredDescriptionDefault
sessionIdNoGroup trip session UUID.
shareCodeNoThe 8-character share code (alternative to sessionId).
Behavior5/5

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

Annotations already provide readOnlyHint=true, and the description adds that it is a 'Pure read', explains the authentication requirement, and mentions the 403 error for non-members. No contradiction; it effectively supplements the annotations with context about authorization and response content.

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

Conciseness5/5

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

The description is a single paragraph but efficiently front-loads the core purpose, then lists return fields, usage timing, and prerequisites. Every sentence provides essential information without redundancy. It is concise yet comprehensive.

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?

Despite lacking an output schema, the description fully explains what the tool returns (status, members, options with vote tallies, caller's votes) and under what circumstances to use it (polling after changes). It also covers error handling (403) and dependencies (join first). This is complete for a read-only fetch 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?

The input schema has 100% coverage with descriptions for both parameters. The description goes beyond by clarifying that exactly one of sessionId or shareCode must be provided, which is not explicit in the schema. This adds meaningful usage context, elevating from baseline 3.

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 clearly specifies the verb 'Fetch' and the resource 'a group trip session', and details the returned data (status, members, options with vote tallies, caller's votes). It distinguishes itself from sibling tools like pricetik_group_trip_create or pricetik_group_trip_vote by being a read operation.

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?

The description provides explicit guidance: poll after adding options or between conversations, check convergence before finalizing. It also states prerequisites (authenticated API key, join first via pricetik_group_trip_join) and error for non-members (403). This helps the agent decide when to use this tool over alternatives.

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

pricetik_group_trip_joinGroup Trip JoinAInspect

Join a group trip session by share code (idempotent — joining twice is safe). Pass an optional displayName so other members see who voted. After joining, the caller can read the session, add candidate options, and vote. Requires an authenticated API key (the membership is owned by the PriceTik account). Pass an Idempotency-Key header to make retries safe.

ParametersJSON Schema
NameRequiredDescriptionDefault
shareCodeYesThe share code from the session organizer.
displayNameNoName shown to other members, e.g. "Alex". Optional.
Behavior5/5

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

The description adds significant value beyond annotations: it declares idempotency (safe to retry), requires authenticated API key, and states membership ownership. It does not contradict the annotations (readOnlyHint=false, destructiveHint=false) and provides full transparency for a mutation operation.

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

Conciseness5/5

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

Four concise sentences with no wasted words. Each sentence adds crucial information: joining action, displayName purpose, post-join capabilities, and authentication/retry instructions. Well front-loaded with the primary action.

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?

Given no output schema and moderate complexity, the description covers joining, idempotency, display name, post-join actions, and auth. It doesn't detail error handling for invalid share codes, but overall it is sufficiently complete for an agent to use 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 100%, but the description adds context for displayName ('so other members see who voted') and implies the purpose of shareCode. This extra meaning helps the agent understand parameter semantics beyond the schema alone.

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 clearly states the specific action 'Join a group trip session by share code' with the verb 'Join' and resource 'group trip session'. It distinguishes from sibling tools like create, get, add_option, vote, and finalize by focusing on the joining action and mentioning idempotency.

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 description explains when to use the tool (to join a group trip) and what happens after joining (read session, add options, vote). It does not explicitly mention when not to use it or provide alternatives, but the context is clear. The sibling list implicitly differentiates.

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

pricetik_group_trip_remove_optionGroup Trip Remove OptionAInspect

Remove a candidate option from a group trip session (organizer-only; 403 OrganizerOnly for other members). Only works while the session is still planning (409 once finalized/cancelled); returns 404 OptionNotFound when the optionId is not on this session. The option's votes are removed with it. Use this to prune weak candidates before the group votes or the organizer finalizes; to propose a candidate, use pricetik_group_trip_add_option. Requires an authenticated API key.

ParametersJSON Schema
NameRequiredDescriptionDefault
optionIdYesUUID of the option to remove.
sessionIdYesGroup trip session UUID.
Behavior5/5

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

Discloses that the option's votes are removed with it, and that the operation is only allowed for organizers and while planning. Provides clear error scenarios (403, 409, 404). Annotations indicate destructiveHint=false but description clearly indicates a destructive removal, which is a contradiction.

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

Conciseness5/5

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

Two sentences front-load the main action and conditions, with zero wasted words. Every sentence adds necessary information.

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 no output schema, the description adequately covers return status codes (403, 409, 404) and side effects (votes removed). No further context needed for a removal tool.

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 both parameters are well-documented as UUIDs. The description adds no extra semantic detail beyond what the schema provides, so baseline 3 is appropriate.

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 clearly states the tool removes a candidate option from a group trip session, specifying that it is organizer-only and only works while the session is planning. It distinguishes from the sibling tool pricetik_group_trip_add_option.

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?

Explicitly states when to use (prune weak candidates before voting), who can use (organizer-only), conditions (only while planning), error codes (403, 409, 404), and mentions alternative tool pricetik_group_trip_add_option for proposing.

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

pricetik_group_trip_reopenGroup Trip ReopenAInspect

Reopen a FINALIZED group trip session back to planning (organizer-only; 403 OrganizerOnly for other members) — the explicit undo for pricetik_group_trip_finalize, which is otherwise irreversible. Clears the finalized selection so the group can keep deliberating, then re-finalize when ready. Only a finalized session can be reopened (409 SessionNotOpen for a planning or cancelled session). Requires an authenticated API key.

ParametersJSON Schema
NameRequiredDescriptionDefault
sessionIdYesGroup trip session UUID.
Behavior4/5

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

The description discloses behavioral traits beyond annotations: it clears the finalized selection, allows group deliberation, and specifies error conditions (403 for non-organizer, 409 for non-finalized). Annotations already indicate non-readOnly/non-destructive, but description adds actionable detail.

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

Conciseness5/5

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

The description is two sentences, front-loads the core purpose, and includes all critical details without extraneous words. Every sentence adds value.

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 the simple nature of the tool (one parameter, no output schema), the description is complete: it covers prerequisites, authorization, side effects, error conditions, and relationship to sibling tool.

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% with a single parameter described as 'Group trip session UUID.' The description does not add further meaning to the parameter beyond contextualizing it as the session to reopen. Baseline score of 3 is appropriate.

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 clearly states the tool reopens a finalized group trip session back to planning, specifies it is organizer-only, and explicitly labels it as the undo for pricetik_group_trip_finalize. This distinguishes it from sibling tools like finalize and cancel.

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 description provides clear usage context: only for reopening a finalized session, organizer only, and specifies error codes for invalid states (403, 409). It mentions being the explicit undo for finalize, offering guidance on when to use, though it does not explicitly list when not to use.

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

pricetik_group_trip_voteGroup Trip VoteAInspect

Record the caller's vote on a candidate option: 1 (up) or -1 (down). One vote per member per option — voting again replaces the previous vote (upsert), so changing one's mind is safe. Member-only (403 otherwise). After voting, read pricetik_group_trip_get for the updated tallies.

ParametersJSON Schema
NameRequiredDescriptionDefault
voteYes1 = upvote, -1 = downvote.
optionIdYesThe candidate option UUID to vote on.
sessionIdYesGroup trip session UUID.
Behavior5/5

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

Adds upsert behavior, member-only restriction, and post-vote read recommendation. No contradiction with annotations, which are minimal.

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

Conciseness5/5

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

Three sentences with no filler. Front-loaded with action and resource. Every sentence adds value.

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?

Covers all aspects: purpose, parameters, access, idempotency (upsert), and next step. No output schema needed for this simple mutation.

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 includes descriptions for each parameter. The description does not add significant extra meaning beyond what the schema already provides.

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?

Description clearly states the verb 'Record the caller's vote' and resource 'candidate option'. Distinct from siblings like pricetik_group_trip_get (read) and pricetik_group_trip_add_option (add).

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?

Describes voting behavior (one vote per member, upsert) and access restriction (member-only). Lacks explicit alternative tools but implies after voting read get for tallies.

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

pricetik_hotel_deal_scoreHotel Deal ScoreA
Read-only
Inspect

Get a 0-100 deal score for a hotel property based on rate history, provider spread, demand, and seasonal timing. Pass EITHER propertyId (PriceTik UUID) OR providerPropertyId (the handle from a hotel search or destination lookup) — exactly one.

ParametersJSON Schema
NameRequiredDescriptionDefault
checkInYesCheck-in date (YYYY-MM-DD)
checkOutYesCheck-out date (YYYY-MM-DD)
propertyIdNoPriceTik hotel property UUID. Pass exactly one of propertyId / providerPropertyId.
providerPropertyIdNoProvider-side property handle from a hotel search or destination lookup, resolved to the UUID server-side. Pass exactly one of propertyId / providerPropertyId.
Behavior4/5

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

Annotations already declare readOnlyHint=true, so the description is not required to repeat safety info. The description adds valuable behavioral context: the score is computed from multiple factors, and the mutual exclusivity of propertyId and providerPropertyId is clarified. 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.

Conciseness5/5

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

The description is a single sentence that efficiently communicates the purpose, output range, input constraints, and key factors. Every word serves a purpose, and it is front-loaded with the main action.

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?

While the description covers the core functionality and parameter constraints, it fails to describe the return format or structure. Given the absence of an output schema, the description should specify whether the result is a simple number or an object. This gap reduces completeness for an agent deciding how to use the result.

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?

The description adds meaning beyond the 100% schema coverage by explaining that propertyId is the internal UUID and providerPropertyId is the handle from search/lookup, and explicitly requiring exactly one of them. This resolves ambiguity not present in the schema's optional designation.

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 clearly states that the tool returns a 0-100 deal score based on rate history, provider spread, demand, and seasonal timing. It effectively distinguishes itself from sibling tools like pricetik_hotel_price_check by emphasizing a composite score rather than a simple price comparison.

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

Usage Guidelines3/5

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

The description provides context on when to use (to obtain a deal score) and how to pass parameters (exactly one of propertyId or providerPropertyId). However, it does not explicitly state when not to use this tool or mention alternative sibling tools like pricetik_hotel_should_book for purchase decisions.

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

pricetik_hotel_detailsHotel DetailsA
Read-only
Inspect

Get full property content for a PriceTik hotel — name, description, star rating, amenities, paid extras, nearby points of interest, address, contact, segments, and gallery imagery. Look up by PriceTik UUID (propertyId) or providerPropertyId returned from a hotel search; exactly one is required. Use the optional include array (rooms, issues, voucherFacilities, fullDescription) to opt into expanded sections — Pro tier unlocks rooms and issues, Scale tier and above unlock voucherFacilities and fullDescription. Open tier responses cap amenities at 8, points of interest at 3, and the description at 240 characters.

ParametersJSON Schema
NameRequiredDescriptionDefault
includeNoOpt-in expansion sections. rooms and issues require Pro tier; voucherFacilities and fullDescription require Scale tier or above. Fields above the caller tier are dropped from the response.
languageNoISO 639-1 language code for resolving segment and category labels (default: en).
propertyIdNoPriceTik hotel property ID (UUID)
providerPropertyIdNoProvider-side property identifier returned by a hotel search. Pass exactly one of propertyId or providerPropertyId.
Behavior4/5

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

Annotations declare readOnlyHint=true, and the description confirms a read operation. It adds behavioral details: tier caps on responses (e.g., Open tier caps amenities at 8, POI at 3, description at 240 characters) and that include fields beyond tier are dropped. This provides useful context beyond the annotation, though response format is not detailed.

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 a single paragraph that front-loads the core purpose. It is concise yet covers essential details without filler. While bullet points could improve scannability, the current structure is efficient and every sentence contributes.

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?

Given 4 parameters, no required, no output schema, the description adequately covers parameter usage and return content. It lists the types of information returned (name, description, star rating, etc.) and explains tier caps. However, it does not specify the response format (e.g., JSON), which would be helpful for an agent. Overall, it is fairly complete for a read-only 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 description coverage is 100%, but the description adds meaningful value: it clarifies that exactly one of propertyId or providerPropertyId is required and explains the include array option with tier dependencies (Pro tier unlocks rooms and issues, Scale tier unlocks voucherFacilities and fullDescription). This goes beyond the schema's static descriptions.

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 clearly states the action ('Get full property content') and the resource ('PriceTik hotel'), listing specific fields (name, description, star rating, etc.). It distinguishes from sibling tools like pricetik_hotel_deal_score and pricetik_hotel_price_check, which focus on price/deal, not full details.

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 description specifies when to use: after a hotel search, to retrieve detailed content. It explains that exactly one of propertyId or providerPropertyId is required. While it does not explicitly list when not to use, the context implies this is the only tool for full details, and tier limitations are noted. No direct alternative is named, but the sibling list shows other purposes.

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

pricetik_hotel_get_booking_urlHotel Get Booking UrlA
Read-only
Inspect

Generate a one-click signed PriceTik checkout URL for a hotel stay. Two forms: (1) stay-based — pass providerPropertyId + checkIn + checkOut + guests + rooms (and optionally roomCode to pick a room type) WITHOUT a rateKey, and the server resolves the best live rate itself, exactly as if the user pressed Book on pricetik.com — this is the preferred form for agents; (2) rateKey-based — pass a rateKey returned by pricetik_hotel_price_check. Refreshes the rateKey when it is within 2 minutes of expiry or when rateType is "RECHECK"; the user clicks through to PriceTik to complete checkout. URLs in responses are pricetik.com/go/ redirects that preserve attribution — surface them to the user unchanged, do not fetch them server-side. On 410 RateKeyExpired, call pricetik_hotel_price_check again to obtain a fresh rateKey and retry. On 422 PackagingDenied, the rate is sold only as part of a package and cannot be booked hotel-only. The currentBest block surfaces nightlyRate, totalStayCost, currency, paymentType, rateType, and freeCancellation only — no margin fields. When the caller is authenticated and a stored loyalty program (traveler_profiles.loyaltyPrograms) matches the property's chainCode, the response carries loyaltyApplied: { program, memberId } and the booking URL is auto-stamped with the member number — quote "Marriott Bonvoy linked" (or the matching chain) to the user.

ParametersJSON Schema
NameRequiredDescriptionDefault
roomsYesNumber of rooms (1-5)
guestsYesNumber of guests (1-10)
checkInYesStay window start (YYYY-MM-DD)
rateKeyNoOPTIONAL rate handle returned by a prior pricetik_hotel_price_check call. Omit it to use the stay-based form: the server resolves the best live rate for the stay itself (matching roomCode when given).
checkOutYesStay window end (YYYY-MM-DD)
childrenNoOptional number of children sharing the room (0-8). Defaults to 0.
roomCodeNoOptional Hotelbeds room-type code (from pricetik_room_types) for the stay-based form — resolves to that room's cheapest live rate. Ignored when rateKey is supplied.
holderEmailNoOptional contact email for voucher delivery.
childrenAgesNoRequired when children > 0; length must equal children. Each age in [0, 17].
providerPropertyIdYesProvider-side hotel property identifier returned by a hotel search (not the PriceTik UUID).
Behavior5/5

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

Beyond the readOnlyHint annotation (which is consistent), the description details key behaviors: automatic rateKey refresh near expiry, URL redirect semantics (do not fetch server-side), content of the currentBest block (no margin fields), and loyalty auto-stamping. This provides rich context for safe agent usage.

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 relatively long but every section contributes essential information (two forms, error handling, response details). The structure flows logically from purpose to specifics to edge cases. Minor redundancy could be trimmed, but overall it is well-organized.

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 the tool's complexity (10 parameters, multiple forms, error codes, loyalty integration) and lack of an output schema, the description covers all necessary aspects: input forms, error handling, response structure, and usage nuances. An agent has enough information to invoke the tool correctly.

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?

All 10 parameters are described in the schema (100% coverage), and the description adds substantial extra value: explaining the role of roomCode (ignored with rateKey), the conditional requirement for childrenAges, and the distinction between providerPropertyId and PriceTik UUID. This helps an agent correctly structure inputs.

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 clearly states the tool's purpose: 'Generate a one-click signed PriceTik checkout URL for a hotel stay.' It specifies two distinct forms (stay-based and rateKey-based) and contrasts with sibling tools like pricetik_hotel_price_check and pricetik_hotel_search, making the scope unambiguous.

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 description explicitly recommends the stay-based form as 'the preferred form for agents' and explains when to use each form. It also provides error-handling guidance (e.g., on 410 and 422 responses). However, it could further clarify when not to use this tool versus alternative tools (e.g., for price comparison before generating a URL).

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

pricetik_hotel_price_checkHotel Price CheckA
Read-only
Inspect

Check current rates across all hotel providers for a specific property and date range. Returns per-provider pricing with availability status. Pass EITHER propertyId (PriceTik UUID) OR providerPropertyId (the handle from a hotel search or destination lookup) — exactly one — so you can price a property straight off a search result without a UUID round-trip. This is cache-first and never calls the provider on read, so for a valid property with no warmed rates it returns dataAvailable:false with a note + nextStep (not an error) — follow the nextStep to pricetik_hotel_get_booking_url's stay-based form, which resolves a fresh live rate, or retry shortly.

ParametersJSON Schema
NameRequiredDescriptionDefault
checkInYesCheck-in date (YYYY-MM-DD)
checkOutYesCheck-out date (YYYY-MM-DD)
propertyIdNoPriceTik hotel property UUID. Pass exactly one of propertyId / providerPropertyId.
providerPropertyIdNoProvider-side property handle from a hotel search or destination lookup, resolved to the UUID server-side. Pass exactly one of propertyId / providerPropertyId.
Behavior5/5

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

Beyond the readOnlyHint annotation, the description discloses critical behavioral traits: cache-first operation, no provider call on read, and the 'dataAvailable:false' response with 'note' and 'nextStep' for unwarmed rates. This fully informs the agent of expected behavior.

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

Conciseness5/5

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

The description is concise (4 sentences) and front-loaded with the core purpose. Every sentence adds essential information without redundancy or unnecessary detail.

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?

Despite lacking an output schema, the description adequately explains the return value (per-provider pricing, availability status) and special cases. It references a next step tool, providing a complete picture for the agent.

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?

The input schema already covers all parameters with descriptions (100% coverage). The description adds value by explaining the semantic difference between propertyId and providerPropertyId and the requirement to use exactly one, which is not evident from the schema alone.

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 uses specific verbs ('Check', 'Returns') and clearly identifies the resource ('current rates across all hotel providers for a specific property and date range'). It distinguishes from siblings by focusing on rate checking rather than searching, comparing, or booking.

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 description clearly explains when to use the tool (to get rates) and provides explicit instructions on passing exactly one of two property identifiers. It does not explicitly state when not to use or list alternatives, but the context is clear and sufficient for correct invocation.

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

pricetik_hotel_rate_historyHotel Rate HistoryA
Read-only
Inspect

Retrieve the daily best-nightly-rate-across-providers series for a PriceTik hotel property and stay window, with a deterministic OLS trend slope and a one-line summary headline. Also returns an allTime block — lowest/highest nightly rate ever recorded for this exact stay window, all-time average, the current rate’s percentile rank, and how far back the record goes — from rate history kept indefinitely, so a "deal" is judged against years of rates, not just the window. Days parameter is tier-limited (Open: up to 7, Pro: up to 90, Scale and above: up to 180); allTime is always full-history. Returns null bestNightlyRate for days with no provider observations.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysYesLookback window in days (tier-clamped at the route layer)
checkInYesStay window start (YYYY-MM-DD)
checkOutYesStay window end (YYYY-MM-DD)
currencyNoOptional ISO 4217 currency code for FX conversion
propertyIdNoPriceTik hotel property UUID. Pass exactly one of propertyId / providerPropertyId.
providerPropertyIdNoProvider handle from a hotel search or destination lookup, resolved server-side. Pass exactly one of propertyId / providerPropertyId.
Behavior4/5

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

Annotations declare readOnlyHint=true. The description adds behavioral details: null return for unobserved days, tier-dependent lookback, and allTime full-history, beyond what annotations provide. No contradiction.

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 a single paragraph but packs significant detail efficiently. It is front-loaded with the main purpose; could benefit from slight restructuring for scanability, but overall concise and informative.

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 comprehensively explains all returned components (bestNightlyRate, OLS trend, summary headline, allTime block) and edge cases (null days, tier limits). Complete for agent invocation.

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% with descriptions for all parameters. The description adds meaning by explaining tier limits for 'days', mutual exclusivity of propertyId/providerPropertyId, and currency FX purpose, enhancing agent understanding.

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 clearly states it retrieves daily best-nightly-rate-across-providers series with trend and all-time stats, distinguishing it from sibling tools like pricetik_hotel_price_check and pricetik_hotel_deal_score by focusing on historical rate analysis.

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

Usage Guidelines3/5

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

The description implies usage for historical rate analysis but does not explicitly state when to use this tool versus alternatives like pricetik_hotel_price_check. It provides tier-limit constraints but lacks direct guidance on tool selection.

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

pricetik_hotel_review_summaryHotel Review SummaryA
Read-only
Inspect

Synthesised review summary for a property — score, count, star rating, segments, and inferred theme cues for cleanliness, location, staff, value, and comfort. Cache-only — themes are derived from the cached amenity content (Hotelbeds doesn't expose per-category review breakdowns), and surfaced as -1/0/+1 cues with reasons so agents can quote them confidently.

ParametersJSON Schema
NameRequiredDescriptionDefault
propertyIdNoPriceTik hotel property UUID. Pass exactly one of propertyId / providerPropertyId.
providerPropertyIdNoProvider-side property handle from a hotel search or destination lookup, resolved to the UUID server-side. Pass exactly one of propertyId / providerPropertyId.
Behavior4/5

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

Adds significant behavioral context beyond the readOnlyHint annotation: data is cached, themes are inferred from cached amenity content rather than per-category reviews, and cues are -1/0/+1 with reasons. 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.

Conciseness5/5

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

Two sentences: first defines output, second explains data source and limitations. Front-loaded, concise, and no extraneous content.

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 tool with two optional parameters and no output schema, the description explains the output components, data source, and derived nature of themes. Missing explicit return format but adequate for agent understanding.

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% with descriptions already explaining the mutual exclusivity requirement. The tool description does not add new information about the parameters beyond what is 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?

Description clearly states it provides a synthesized review summary for a property, including score, count, star rating, segments, and theme cues. Distinct from sibling tools which handle search, details, booking, etc.

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?

Description mentions cache-only data and inferred themes, indicating when the tool's output is derived. However, it does not explicitly compare to alternatives like pricetik_hotel_details that may also contain review information, leaving the agent without clear when-not guidance.

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

pricetik_hotel_should_bookHotel Should BookA
Read-only
Inspect

Get a deterministic book_now, wait, or watch recommendation for a PriceTik hotel property and stay window, combining rate trend, demand pressure from active bids, cancellation flexibility, days-to-check-in urgency, and seasonal premium signals. Returns confidence in [0, 1], a template-composed reasoning string, current best rate, historical context, demand zone, and seasonal flag. No LLM is invoked.

ParametersJSON Schema
NameRequiredDescriptionDefault
roomsYesNumber of rooms (1-5)
guestsYesNumber of guests (1-10)
checkInYesStay window start (YYYY-MM-DD)
urgencyNoOptional caller-supplied urgency hint
checkOutYesStay window end (YYYY-MM-DD)
propertyIdNoPriceTik hotel property UUID. Pass exactly one of propertyId / providerPropertyId.
maxNightlyRateNoOptional ceiling used to flag whether the current best is within budget
providerPropertyIdNoProvider handle from a hotel search or destination lookup, resolved server-side. Pass exactly one of propertyId / providerPropertyId.
Behavior4/5

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

Annotations readOnlyHint=true indicate no destructive behavior. The description adds context beyond annotations by listing input signals (rate trend, demand pressure, etc.) and explicitly states 'No LLM is invoked', which is useful for understanding behavior. However, no contradictions.

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

Conciseness5/5

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

The description is two sentences, front-loaded with purpose, and every sentence adds value. No wasted words: first sentence states what it does and what signals combine; second sentence lists return fields and a notable behavior (no LLM).

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 no output schema, the description adequately covers return values (confidence, reasoning, best rate, historical context, demand zone, seasonal flag). It also mentions determinism and no LLM invocation, addressing completeness for a recommendation tool with multiple inputs.

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 the schema already documents all parameters. The description does not add new meaning beyond what the schema provides, such as clarifying the propertyId/providerPropertyId mutual exclusivity (already in schema). Baseline 3 is appropriate.

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 clearly states the tool provides a deterministic recommendation (book_now, wait, watch) for a PriceTik hotel property and stay window, combining multiple signals. It distinguishes from sibling tools by focusing on recommendation rather than search, price check, or rate history.

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

Usage Guidelines3/5

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

The description explains what the tool does but does not explicitly state when to use it versus alternatives like pricet_hotel_price_check or pricet_hotel_watch_rate. It implies usage for decision-making but lacks explicit when-to-use or when-not-to-use guidance.

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

pricetik_hotel_watch_rateHotel Watch RateAInspect

Subscribe to a rate alert that fires when the best nightly rate for a PriceTik hotel property and stay window hits or drops below your target. A free API key is required (the watch is owned by your PriceTik account). When webhookUrl is omitted, the alert delivers via your PriceTik account — email + the pricetik.com dashboard — which is the right choice for end users in a chat client (no server endpoint needed). Supply an HTTPS webhookUrl only for developer/partner integrations that host their own endpoint. Free tier allows up to 3 active alerts; Pro+ raises the cap and unlocks webhook + auto-book delivery. Defaults expiresAt to checkIn minus 48 hours when omitted so abandoned alerts auto-expire ahead of the trip date. Pass an Idempotency-Key header to make retries safe (24-hour replay window). Manage alerts via pricetik_webhook_list, pricetik_webhook_delete, and pricetik_webhook_deliveries.

ParametersJSON Schema
NameRequiredDescriptionDefault
roomsYesNumber of rooms (1-5)
actionNoWhat to do when the alert fires. Default "webhook" (notify). "auto_book" attempts a direct booking via the saved payment method (requires directBookingEnabled; falls back to notify).
guestsYesNumber of guests (1-10)
checkInYesStay window start (YYYY-MM-DD)
checkOutYesStay window end (YYYY-MM-DD)
currencyNo3-letter ISO 4217 currency code for targetNightlyRate (default: USD).
expiresAtNoOptional ISO 8601 timestamp. Defaults to checkIn minus 48 hours; must be before checkIn.
propertyIdNoPriceTik hotel property UUID. Pass exactly one of propertyId or providerPropertyId.
webhookUrlNoOptional HTTPS webhook URL for developer/partner integrations. Omit for account delivery (email + pricetik.com dashboard) — the default for end-user chat clients.
dropPercentNoPercent-drop trigger (1–90): fire when the best nightly rate falls this far below the rate at watch-creation time. Use this for "alert me if it drops 20%" — no absolute price needed. Provide at least one trigger.
dealScoreAboveNoDeal-score trigger (0–100): fire when the 0–100 deal score reaches/exceeds this. Use for "tell me when this becomes a great deal." Provide at least one trigger.
targetNightlyRateNoAbsolute per-night target: fire when the best nightly rate hits or drops to/below this. Provide at least one trigger (targetNightlyRate, dropPercent, or dealScoreAbove).
providerPropertyIdNoProvider-side property handle returned by a hotel search (resolved to the PriceTik UUID server-side, exactly like pricetik_hotel_get_booking_url and pricetik_hotel_details). Use this to arm a watch directly off a search result — no UUID round-trip. Pass exactly one of propertyId or providerPropertyId.
Behavior5/5

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

The description fully discloses behavioral traits beyond annotations: it is not read-only (creates a watcher) and not destructive (just a subscription). It details defaults (expiresAt to checkIn minus 48 hours), idempotency key behavior, action handling, and delivery methods. No contradictions with annotations (readOnlyHint=false, 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?

The description is comprehensive and well-structured, starting with the main purpose and then detailing usage nuance. While it is lengthy, every sentence adds value. A slight reduction in verbosity could improve conciseness, but it remains clear and organized.

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 the complexity (13 parameters, no output schema), the description is thorough: it explains triggers, actions, defaults, limitations (free tier), expiry, idempotency, and management via sibling tools. Return behavior (delivery via email/dashboard or webhook) is covered, making it sufficiently complete for an agent to use confidently.

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 100%, but the description adds significant meaning: it explains the difference between propertyId and providerPropertyId, when to use each trigger (targetNightlyRate, dropPercent, dealScoreAbove), implications of webhookUrl omission, and action parameter behavior. This goes well beyond the schema descriptions.

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 clearly states the tool's purpose: subscribing to a rate alert for a hotel property and stay window, triggered when the nightly rate hits or drops below a target. It uses specific verbs ('subscribe') and distinguishes itself from sibling tools by focusing on alert creation rather than price checking or searches.

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?

The description provides explicit when-to-use guidance: differentiates between end users (omit webhookUrl) and developer integrations (supply webhookUrl), explains free tier limits (3 active alerts), default expiry, idempotency for retries, and lists sibling tools for management. It also clarifies trigger requirements ('Provide at least one trigger').

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

pricetik_itinerary_exportItinerary ExportA
Read-only
Inspect

Export the authenticated user's bookings as an RFC-5545 .ics calendar string plus a structured events array, ready to drop onto a calendar app. Upcoming-only by default; pass includePast=true for the full history. The capstone to pricetik_trip_plan / pricetik_my_trips. Requires a bearer API key; Open-tier requests get 401. Pass tripSessionId to export a group trip session's PROPOSED plan before anything is booked — share the .ics with the whole group.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax events (1–100, default 50)
includePastNoInclude past bookings too (default false)
tripSessionIdNoOptional group trip session UUID — export the PROPOSED plan (the session's candidate options; finalized sessions export only the winning options) instead of bookings. Caller must be a session member (403 otherwise). Event manage links point at the session's pricetik.com/trips share page.
Behavior4/5

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

Annotations declare readOnlyHint=true; description adds details about output format, default filtering, group session behavior, and error conditions. No contradiction, and adds useful behavioral context beyond annotations.

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

Conciseness5/5

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

Four sentences, front-loaded with main purpose, every sentence adds value. No fluff.

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?

Explains output format, default behavior, authentication, and group session use case. Without output schema, it provides enough for an agent to invoke correctly. Minor gap: no mention of other HTTP status codes beyond 401 and 403 implicitly.

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 baseline is 3. Description adds some nuance for tripSessionId (e.g., share link) but largely restates schema descriptions. Adequate but not exceptional.

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?

Clearly states it exports bookings as an RFC-5545 .ics string and structured events array. Distinguishes from siblings by positioning itself as the capstone to pricetik_trip_plan and pricetik_my_trips.

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?

Provides clear context: default upcoming-only, includePast for full history, tripSessionId for group plans, and authentication requirements (bearer API key, 401 for open-tier). Does not explicitly list alternative tools but implies usage flow.

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

pricetik_my_group_tripsMy Group TripsA
Read-only
Inspect

List the authenticated user's group-trip sessions (as organizer or member), newest activity first. Each row carries the sessionId + shareCode (plus title, destination, status, your role, and memberCount) needed to RESUME a trip — vote, add options, or finalize. Call this when a returning user references a group trip but you don't have its sessionId in context (create/join are the only other places that hand one back). Auth required (OAuth account or bearer API key).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

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

Annotations already declare readOnlyHint=true. Description adds that auth is required (OAuth or bearer API key) and specifies ordering ('newest activity first') and returned fields (sessionId, shareCode, etc.), providing good additional context.

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

Conciseness5/5

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

Three sentences, front-loaded with purpose, no wasted words. Concise and well-organized.

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?

Sufficient for a parameterless list tool. Specifies return fields and usage context. Could mention pagination or default limits, but not necessary.

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?

No parameters in schema, so baseline is 4. Description adds value by detailing the return fields (sessionId, shareCode, title, destination, status, role, memberCount), helping agent understand what to expect.

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?

Description clearly specifies verb 'List', resource 'group-trip sessions', and scope 'authenticated user's (as organizer or member)', but does not explicitly distinguish from sibling tools like pricetik_group_trip_get or pricetik_my_trips.

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?

Explicitly states when to call: when a returning user references a group trip but sessionId is missing. Also mentions alternative sources (create/join) that provide sessionId.

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

pricetik_my_tripsMy TripsA
Read-only
Inspect

List the authenticated user's trips — bookings grouped by destination + overlapping date window. Each trip carries the hotel + all activities, total spend, days-until-departure countdown, and per-member manage URLs. Status filter: 'upcoming' | 'past' | 'all' (default). Requires a bearer API key minted from the dashboard; Open-tier requests get 401. SCOPE: reflects PriceTik order-book fills and agent-assisted direct bookings only — trips the user finished by clicking a pricetik.com/go/ checkout handoff are NOT yet tracked here. An empty result is therefore normal for handoff bookings, not an error; the response carries a note field explaining where those bookings live (https://pricetik.com/my-account/bookings) — relay it instead of implying the user has no trips.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax trips to return (1–25, default 10).
statusNoTrip status filter (default 'all').
Behavior5/5

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

Discloses trip composition, status filter behavior, authentication failure for Open-tier, and the note field for handoff bookings. No contradiction with annotations (readOnlyHint=true is consistent).

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 core purpose, well-structured with clear sections, and every sentence adds value. Slightly verbose in a couple of places but overall efficient.

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, but description fully explains response content (hotel, activities, totals, manage URLs, note field). Covers authentication, scope, and filter behavior completely.

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% with descriptions, so baseline is 3. Description adds value by explaining default values and filter options ('upcoming', 'past', 'all') and limit range (1-25).

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 states 'List the authenticated user's trips' with specific verb and resource, and clearly distinguishes from sibling tools by focusing on personal bookings, not group trips or hotel searches.

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?

Explicitly defines when to use (for order-book fills and agent-assisted bookings), when not to use (handoff bookings not tracked), and how to handle empty results (relay to different URL). Also specifies authentication requirements.

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

pricetik_resolve_propertyResolve PropertyA
Read-only
Inspect

Turn a hotel NAME into a chainable handle — the dedicated "Wynn" resolver. Pass a property name like "the Wynn" or "Bellagio" (optionally bias with near, e.g. "Las Vegas") and get back ranked candidates, each with a providerPropertyId — and a canonical propertyId UUID when mapped — that you pass straight to pricetik_hotel_details, pricetik_hotel_watch_rate, or pricetik_hotel_get_booking_url with no UUID round-trip. pricetik_hotel_search only accepts a city/landmark; THIS is how you resolve a specific named hotel. Returns an array with a best handle only when one candidate clearly wins — otherwise confirm with the user. Calling pricetik_hotel_details on a returned handle warms indexing so a follow-up watch succeeds. Cache-backed, no API key required.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesHotel name to resolve (min 2 chars).
nearNoOptional city/country to disambiguate (e.g. "Las Vegas").
limitNoMax candidates to return (1–15, default 8).
Behavior5/5

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

Annotations already declare readOnlyHint=true, and the description adds valuable detail: returns ranked candidates with a 'best' handle only when one clearly wins, cache-backed, no API key required. It also explains the side effect of calling pricetik_hotel_details on the handle (warms indexing for watch). No contradictions.

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

Conciseness5/5

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

The description is a single paragraph but dense with information, every sentence contributes. Front-loaded with main purpose, then usage, then output details, then integration tips. No fluff.

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?

Despite no output schema, the description explains the return structure (array with candidates, 'best' handle). It covers all 3 parameters, integration with 3 sibling tools, and caching behavior. Complete for its complexity and annotations.

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% with descriptions. The description adds context: 'optionally bias with near' and explains the meaning of limit. It links output to other tools. While schema covers basics, the description enhances understanding of how parameters affect results.

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 explicitly states the core purpose: 'Turn a hotel NAME into a chainable handle'. It specifies the input (hotel name) and output (providerPropertyId/propertyId). It distinguishes itself from sibling pricetik_hotel_search by clarifying that this tool resolves names while the sibling only accepts city/landmark. The verb 'resolve' and resource 'property' are clear.

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?

Clear guidance on when to use (to get a specific hotel handle) and when not (pricetik_hotel_search is for cities/landmarks). It names alternative tools (pricetik_hotel_details, etc.) that use the output. It also advises confirming with user if no clear winner. This is comprehensive.

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

pricetik_room_typesRoom TypesA
Read-only
Inspect

Filtered, ranked room catalog for a property. Reads cached hotel_property_content.rooms and joins cheapest cached rate per room when you pass a stay window. Filter by bedType (KING/QUEEN/DOUBLE/TWIN/SOFA), suite, kitchenette, accessible, minAdults. Cache-only — never calls Hotelbeds.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax rooms to return (1–50, default 15).
suiteNoWhen true, only suite rooms.
bedTypeNoFilter rooms by bed-type tokens. Best-effort match against name/description.
checkInNoOptional check-in date for rate join (YYYY-MM-DD).
checkOutNoOptional check-out date for rate join (YYYY-MM-DD).
minAdultsNoRequired adult capacity (1–10).
accessibleNoWhen true, only accessible rooms.
propertyIdNoPriceTik hotel property UUID. Pass exactly one of propertyId / providerPropertyId.
kitchenetteNoWhen true, only rooms with kitchenette.
providerPropertyIdNoProvider-side property handle from a hotel search or destination lookup, resolved to the UUID server-side. Pass exactly one of propertyId / providerPropertyId.
Behavior4/5

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

Annotations already declare readOnlyHint=true. The description adds that it never calls Hotelbeds (cache-only) and joins cheapest cached rate per room when stay window is passed, providing valuable behavioral context beyond annotations.

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

Conciseness5/5

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

The description is three sentences with no wasted words: states purpose, explains key behavior (cache, rate join), and lists filters. It is concise and 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?

Given 10 optional parameters and no output schema, the description provides a solid overview of functionality and constraints. It lacks details on return format or sorting, but overall covers essential context.

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 the schema already documents each parameter. The description adds context about the join and ranking but does not significantly augment parameter meaning beyond what is 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?

The description clearly states it is a 'Filtered, ranked room catalog for a property,' specifies it reads cached data and joins cheapest rates, and lists filters. It distinguishes from sibling hotel search tools by focusing on room types of a specific property.

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 description explains when to use the tool (when needing room types with filters and optional rate join) and notes it is cache-only, implying not for real-time data. It does not explicitly name alternatives but context is clear.

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

pricetik_statusStatusA
Read-only
Inspect

Check Intel API health and feature flag state. Use before making calls to verify the API is available. Returns current status, resolved tier, and active feature flags. For an authenticated caller it also returns an account block — tokenBalance, tokensInCooldown, and openTargetPrices — so you can pre-check before pricetik_set_target_price (each target stakes tokens; free tier caps open target prices at 3). The block is omitted for anonymous callers.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior5/5

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

Annotations only declare readOnlyHint=true, but the description adds significant behavioral details: it returns status, tier, flags, and conditionally an account block with specific fields depending on authentication. This goes well beyond the annotation, fully disclosing the tool's behavior.

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

Conciseness5/5

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

The description is concise (4 sentences) and front-loaded: first sentence states purpose, second gives usage guidance, third and fourth detail output. Every sentence adds value with no redundancy.

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 tool with no input parameters and no output schema, the description is fully complete: it explains the return values, conditional behavior based on authentication, and appropriate usage context. No gaps remain.

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?

The input schema has 0 parameters, so baseline is 4. The description does not add parameter info (none exist) but compensates by explaining the output structure and conditional behavior, which indirectly clarifies why no parameters are needed.

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 clearly states the tool's purpose: 'Check Intel API health and feature flag state.' The verb 'check' and the resource 'API health and feature flag state' are specific and unambiguous. It distinguishes itself from sibling tools which focus on hotels, trips, etc.

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 description explicitly says 'Use before making calls to verify the API is available,' providing clear usage context. It also advises pre-checking before using pricetik_set_target_price, linking to a specific dependent tool. It lacks explicit 'when not to use' guidance but still provides strong directional advice.

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

pricetik_trip_planTrip PlanA
Read-only
Inspect

Single-call orchestrated trip planner — stitches top hotels + recommended activities + estimated spend into one response, so the agent skips the manual "search hotels → search activities → stitch" fan-out. Pass destination + dates (plus optional budget, interests, star rating, no-resort-fees). For a HOTEL + SHOW/CONCERT/GAME trip, set includeTickets=true (plus ticketQuery for a specific performer, team, or show) — the plan then carries an eventTickets[] block of live-event tickets matched to the destination and stay window. Tickets are affiliate inventory: each carries a checkout link the user opens on the ticket seller, and ticket prices are NOT included in estimatedTotalUsd. Set groupByDay=true for a daily itinerary with rest-day placeholders on trips longer than 5 nights and 4h+ activity conflict avoidance. Pass includeTransfer to attach the best-value ground transfer (airport / port / station ↔ hotel) to the plan — it carries a rateToken you can hand to pricetik_transfer_get_booking_url; an uncovered or same-type terminal route returns a non-fatal transferUnavailable note and the hotel + activity plan still comes back. Free at every tier. Stricter rate limit than single-surface tools (10/min) because it fans out parallel searches. Direct REST callers can append ?stream=ndjson (or send Accept: application/x-ndjson) for incremental frames. Use this for a single-call hotel + activity (+ event ticket) stitch; for hotels only, use pricetik_hotel_search; for tickets only, use pricetik_ticket_search.

ParametersJSON Schema
NameRequiredDescriptionDefault
roomsNoRooms (1–5). Default 1.
adultsNoAdult guests (1–10). Default 2.
checkInYesCheck-in date (YYYY-MM-DD).
checkOutYesCheck-out date (YYYY-MM-DD).
childrenNoChild guests (0–10). Default 0.
segmentsNoLifestyle segments to bias hotel picks.
budgetUsdNoTotal trip budget in USD (hotel + activities). Split ~70/30 hotel/activities by default.
interestsNoThemes to bias activity picks: "food", "nature", "nightlife", etc.
groupByDayNoWhen true, include a dailyItinerary array (rest-day placeholders + 4h+ conflict avoidance). Default false.
hotelCountNoHotel results to return (1–5). Default 3.
starRatingNoHotel star-rating floor (1–5).
destinationYesFree-text destination (city or "lat,lng"), e.g. "Las Vegas".
ticketQueryNoOptional free-text bias for the bundled tickets (performer, team, or show — e.g. "Cirque du Soleil"). Only meaningful with includeTickets=true; when omitted, tickets are matched from the destination.
noResortFeesNoExclude hotels with mandatory resort fees (SQL-backed filter).
includeTicketsNoWhen true, bundle live-event TICKETS (concerts, theater, sports) matched to the destination and stay window into an eventTickets[] block. Affiliate inventory — checkout links open on the ticket seller; ticket prices are NOT counted in estimatedTotalUsd. Default false.
includeTransferNoOptional ground-transfer attachment. When present, the planner attaches the best-value transfer quote (carries a rateToken for pricetik_transfer_get_booking_url). An uncovered or same-type terminal route (IATA→IATA, PORT→PORT, STATION→STATION) yields a non-fatal transferUnavailable note instead.
activitiesPerDayNoCap activities per day (0–5). Default 2.
activityDestinationCodeNo3-letter destination code for activities (e.g. LAS, NYC). Resolved from the destination string when omitted.
Behavior5/5

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

Annotations already declare readOnlyHint=true, but the description adds substantial context: parallel fan-out, 10/min rate limit, free tier, affiliate ticket inventory with checkout links, ticket prices excluded from estimated total, transfer availability notes, streaming support. No contradictions.

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?

Description is lengthy but each sentence adds value, front-loaded with main purpose. Could benefit from more structured paragraphs, but overall clear and efficient for the complexity.

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 18 parameters, nested objects, and no output schema, the description covers main behaviors, return structure (eventTickets[], transfer rateToken), edge cases (transferUnavailable), and alternatives. Missing some output format details but sufficient for agent invocation.

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 has 100% description coverage for all 18 parameters, so baseline is 3. The description adds meaning beyond schema by explaining interplay of parameters (e.g., includeTickets semantics, transfer rateToken usage, groupByDay itinerary details).

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 clearly defines the tool as a single-call orchestrated trip planner that combines hotels, activities, and estimated spend. It distinguishes from sibling tools like pricetik_hotel_search and pricetik_ticket_search, specifying when to use each.

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?

Explicitly states when to use this tool vs alternatives: 'Use this for a single-call hotel + activity (+ event ticket) stitch; for hotels only, use pricetik_hotel_search; for tickets only, use pricetik_ticket_search.' Also provides context for optional features like includeTickets and includeTransfer.

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

Discussions

No comments yet. Be the first to start the discussion!

Try in Browser

Your Connectors

Sign in to create a connector for this server.

Resources