mcp-server
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.
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.
Tool Definition Quality
Average 4.6/5 across 35 of 35 tools scored. Lowest: 4/5.
Most tools have clearly distinct purposes, but there is some potential confusion between generic search tools (pricetik_search, pricetik_activity_search, pricetik_ticket_search) and between pricetik_activity_search vs pricetik_resolve_activity. However, descriptions adequately differentiate them.
All tools follow a consistent pricetik_<domain>_<action> pattern (e.g., pricetik_hotel_search, pricetik_group_trip_create), with occasional multi-word actions (pricetik_hotel_get_booking_url) but no mixing of conventions.
With 35 tools covering hotels, activities, events, group trips, user account, and more, the server is overloaded. A focused MCP server typically has 3-15 tools; this one tries to be a unified API wrapper, which reduces coherence.
The tool surface is exceptionally complete for the PriceTik domain: CRUD for hotels, activities, events, group trip management, user trips, itinerary export, and auxiliary tools (destinations, trending, status). No obvious gaps.
Available Tools
26 toolspricetik_activity_detailsActivity DetailsARead-onlyInspect
Full content for one activity — description, highlights, gallery (XL images), meeting point, redemption type, and bookable rates with rateKeys. Hand the activity code from pricetik_activity_search to this tool to get everything needed to compare modalities and surface a checkout link via pricetik_activity_get_booking_url. Free at every tier.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | End date, ISO yyyy-mm-dd. | |
| from | Yes | Start date, ISO yyyy-mm-dd. | |
| adults | No | Number of adult guests. Default 2. | |
| children | No | Number of child guests. Default 0. | |
| language | No | ISO 639-1 language code. Default `en`. | |
| activityCode | Yes | Hotelbeds activity code returned by `pricetik_activity_search` (e.g. E-E10-A1GMNO0125). | |
| targetCurrency | No | ISO 4217 display currency. Default USD. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark `readOnlyHint: true`. The description adds value by listing the types of data returned (description, highlights, gallery, meeting point, redemption type, bookable rates) and confirming it's free. No destructive behavior is implied.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: the first enumerates output fields; the second provides usage context. No fluff, every sentence serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description lists key output fields and notes it's free. It covers the essential information an agent needs, though might lack details on image sizes or pagination (if any).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% description coverage and is sufficiently clear. The description mentions the activity code provenance but adds no new parameter semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns 'Full content for one activity' listing specific fields (description, highlights, gallery, etc.) and specifies the input comes from `pricetik_activity_search`. It differentiates from siblings by mentioning the output feeds into `pricetik_activity_get_booking_url`.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use the tool: after `pricetik_activity_search` and before `pricetik_activity_get_booking_url`. It also notes it's 'Free at every tier.' Lacks explicit when-not-to-use, 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_activity_get_booking_urlActivity Get Booking UrlARead-onlyInspect
Return a pricetik.com/tickets/... checkout URL pre-filled with the trip parameters. Verifies a bookable rate exists for the requested dates before handing the URL back. The user — not the agent — completes the booking on the URL (matches the hotel certification boundary). Free at every tier. Pass an Idempotency-Key header on retries to avoid duplicate redirects (24-hour cache window).
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | End date, ISO yyyy-mm-dd. | |
| from | Yes | Start date, ISO yyyy-mm-dd. | |
| adults | No | Number of adult guests. Default 2. | |
| children | No | Number of child guests. Default 0. | |
| activityCode | Yes | Hotelbeds activity code. | |
| targetCurrency | No | ISO 4217 display currency. Default USD. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds significant context beyond the readOnlyHint annotation: it verifies a bookable rate exists, confirms the user completes the booking (respecting the certification boundary), mentions free tier, and explains idempotency caching. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense and efficient: four sentences covering purpose, verification, user action, free tier, and idempotency. No extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description explains the core functionality and constraints well, but lacks explicit details about the return format (e.g., whether the URL is a string or object). Given the absence of an output schema, a brief note on the return type would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides 100% coverage with clear descriptions for each parameter. The description adds value by mentioning that the URL is pre-filled with trip parameters and that verification occurs, but does not elaborate on parameter syntax beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool 'return[s] a pricetik.com/tickets/... checkout URL pre-filled with the trip parameters' and distinguishes it from sibling tools like pricetik_hotel_get_booking_url by focusing on activities. It also explicitly notes the user completes the booking, not the agent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 get a booking URL for an activity) and provides guidance on idempotency via an Idempotency-Key header. It does not explicitly state when not to use it, but the 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_activity_searchActivity SearchARead-onlyInspect
Search bookable tours, attractions, and excursions by destination + dates via Hotelbeds Activities. Returns activities with price-from in the requested display currency (USD by default), plus the source EUR price for transparency. Use a 3-letter Hotelbeds destination code (e.g. PMI, BCN, NYC, LON). Free at every tier — no API key required.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | End date, ISO yyyy-mm-dd. Same as `from` for single-day activities. | |
| from | Yes | Start date, ISO yyyy-mm-dd. | |
| adults | No | Number of adult guests (1–10). Default 2. | |
| children | No | Number of child guests aged 3–12 (0–10). Default 0. | |
| language | No | ISO 639-1 language code for descriptions. Default `en`. | |
| pageSize | No | Results per page (1–50). Default 25. | |
| pageNumber | No | 1-based page index. Default 1. | |
| destination | Yes | 3-letter Hotelbeds destination code (e.g. PMI, BCN, NYC). | |
| targetCurrency | No | ISO 4217 display currency. Default USD. Auto-converts EUR quotes from Hotelbeds. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, the description explains pricing behavior (returns price-from in requested currency and source EUR) and cost/free tier information.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no wasted words, front-loaded with purpose and key details, highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, return value (price info), destination format, and cost, leaving pagination to schema; adequate for a search tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite 100% schema coverage, the description adds meaning by explaining the destination code format and currency auto-conversion, which is not obvious from parameter names alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches bookable tours, attractions, excursions by destination and dates, distinguishing it from sibling tools like pricetik_activity_details or pricetik_flexible_dates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit guidance on using a 3-letter Hotelbeds destination code and notes the tool is free with no API key, giving clear context for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pricetik_destinationsDestinationsARead-onlyInspect
Resolve free-text into the canonical shape other PriceTik tools need. Two cases: (1) a DESTINATION ("Las Vegas", "Mallorca") → hotel-search-friendly text + the Hotelbeds activity destination code (for pricetik_activity_search) + country + subtitle (kind:"destination"); (2) a SPECIFIC NAMED HOTEL ("the Wynn Las Vegas") → kind:"hotel" with a providerPropertyId, passable straight to pricetik_hotel_get_booking_url / _details (no UUID round-trip) — this is how you turn a hotel NAME into a bookable handle, since pricetik_hotel_search only accepts a city/landmark. Call this first so you never have to ask the user for a code. Cache-backed, no API key required.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | Free-text destination (min 2 chars). | |
| limit | No | Max suggestions to return (1–15, default 5). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that the tool is cache-backed and requires no API key, consistent with the readOnlyHint annotation. It explains the two return types (destination vs. hotel) and how to use the results. While it doesn't detail error handling or rate limits, the behavioral context is adequate for an agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is moderately sized and front-loaded with the primary purpose. It clearly structures the two use cases and concludes with usage guidance. While not extremely concise, every sentence serves a purpose and no information is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 does a good job explaining the output shape and how it integrates with sibling tools. It covers key aspects like the two kinds of results and how to use them for hotel booking. The complexity is moderate and the description is complete enough without missing critical details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers 100% of parameters with descriptions, so the baseline is 3. The description adds value by explaining how the 'q' parameter is processed into canonical shapes and what the output contains (e.g., providerPropertyId for hotels), which goes beyond the schema's type constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool resolves free-text into canonical shapes needed by other PriceTik tools. It provides two specific cases (destination vs. hotel) and distinguishes itself from siblings like pricetik_hotel_search by explaining how it enables hotel name resolution without a UUID round-trip.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly instructs the agent to call this first to avoid asking the user for a code. It explains when to use it (before hotel search/booking details) and distinguishes from pricetik_hotel_search which only accepts city/landmark. This provides clear guidance on when and why to use this tool.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| ref | Yes | Surface identifier + display snapshot: { propertyId | providerPropertyId | activityCode | ticketId | rateToken, name, priceUsd, currency, photoUrl, bookingUrl }. Copy values from the search result unchanged. | |
| note | No | Optional pitch shown with the option, e.g. "walkable to the venue". | |
| surface | Yes | Which vertical this candidate belongs to. | |
| sessionId | Yes | Group trip session UUID. |
Tool Definition Quality
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| sessionId | Yes | Group trip session UUID. |
Tool Definition Quality
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | Display title for the session, e.g. "Vegas bachelor party". Optional. | |
| checkIn | No | Proposed check-in date (YYYY-MM-DD). Optional. | |
| checkOut | No | Proposed check-out date (YYYY-MM-DD). Optional. | |
| destination | Yes | Free-text destination — a city name or region. | |
| displayName | No | The organizer's name as shown to other members, e.g. "Alex". Optional. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses authentication requirements, idempotency key usage, and booking behavior (per-traveler via separate tools). Adds context beyond annotations (readOnlyHint=false, destructiveHint=false) without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is well-structured and front-loaded with key purpose. Each sentence adds value, though slightly verbose; could be tightened slightly without loss.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 5 parameters, no output schema, and no nested objects, the description is highly complete. It explains return fields, choreography, limitations, and integration with sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with each parameter described. The description adds minimal additional meaning beyond what's in the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: starting a shared group trip-planning session. It distinguishes from the single-user counterpart pricetik_trip_plan and lists key outputs (session, shareCode, shareUrl).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use context (multi-user planning) and contrasts with the single-user tool. Offers choreography steps (create → search → add options → vote → finalize), guiding the agent on proper sequencing.
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 FinalizeADestructiveInspect
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". 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.
| Name | Required | Description | Default |
|---|---|---|---|
| optionIds | No | Optional 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). | |
| sessionId | Yes | Group trip session UUID. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds context beyond annotations: returns finalized plan with vote tallies, handoffPolicy, display-only prices, irreversible session move to 'finalized', 409 on repeat, and that PriceTik never books.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single dense paragraph but front-loaded with main action and key constraint. Could be slightly more structured, but every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, description covers return format, prerequisites, constraints, side effects, and price warnings. Fully adequate for a complex finalization tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but description adds key nuance: optionIds omission locks all candidates, not auto-picked top-voted; must read get first. This clarifies ambiguous behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Lock in' and the resource 'group's plan', and distinguishes from sibling tools like add_option, remove_option, vote, cancel, reopen by focusing on finalization.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states organizer-only requirement, 403 for non-organizers, advises reading pricetik_group_trip_get first, explains behavior when optionIds is omitted vs provided, warns about live rates and irreversibility.
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 GetARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| sessionId | No | Group trip session UUID. | |
| shareCode | No | The 8-character share code (alternative to sessionId). |
Tool Definition Quality
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| shareCode | Yes | The share code from the session organizer. | |
| displayName | No | Name shown to other members, e.g. "Alex". Optional. |
Tool Definition Quality
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.
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.
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.
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.
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.
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_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.
| Name | Required | Description | Default |
|---|---|---|---|
| vote | Yes | 1 = upvote, -1 = downvote. | |
| optionId | Yes | The candidate option UUID to vote on. | |
| sessionId | Yes | Group trip session UUID. |
Tool Definition Quality
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.
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.
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.
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.
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.
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_detailsHotel DetailsARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| include | No | Opt-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. | |
| language | No | ISO 639-1 language code for resolving segment and category labels (default: en). | |
| propertyId | No | PriceTik hotel property ID (UUID) | |
| providerPropertyId | No | Provider-side property identifier returned by a hotel search. Pass exactly one of propertyId or providerPropertyId. |
Tool Definition Quality
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.
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.
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.
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.
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.
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 UrlARead-onlyInspect
Generate a one-click signed PriceTik checkout URL for a hotel stay. Stay-based form (preferred for agents): pass providerPropertyId + checkIn/checkOut + guests/rooms (+ optional roomCode) and the server resolves the best live rate itself. Or pass a rateKey from pricetik_hotel_price_check directly; it auto-refreshes near expiry or when rateType is "RECHECK". URLs are pricetik.com/go/ affiliate redirects — pass to the user's browser unchanged, never fetch server-side. On 410 RateKeyExpired, re-call pricetik_hotel_price_check for a fresh rateKey. On 422 PackagingDenied, the rate is package-only and can't be booked hotel-only. currentBest surfaces nightlyRate, totalStayCost, currency, paymentType, rateType, freeCancellation only — no margin fields. When a stored loyalty program matches the property's chain, the response carries loyaltyApplied ({ program, memberId }) and the URL is member-stamped — tell the user which program linked.
| Name | Required | Description | Default |
|---|---|---|---|
| rooms | Yes | Number of rooms (1-5) | |
| guests | Yes | Number of guests (1-10) | |
| checkIn | Yes | Stay window start (YYYY-MM-DD) | |
| rateKey | No | OPTIONAL 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). | |
| checkOut | Yes | Stay window end (YYYY-MM-DD) | |
| children | No | Optional number of children sharing the room (0-8). Defaults to 0. | |
| roomCode | No | Optional 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. | |
| holderEmail | No | Optional contact email for voucher delivery. | |
| childrenAges | No | Required when children > 0; length must equal children. Each age in [0, 17]. | |
| providerPropertyId | Yes | Provider-side hotel property identifier returned by a hotel search (not the PriceTik UUID). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, the description discloses that URLs are affiliate redirects, details error responses, explains the currentBest fields returned, and notes loyalty program linking. This provides comprehensive behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is information-dense and well-structured, but slightly lengthy. Every sentence adds value, and it's front-loaded with the core purpose. Could be marginally shorter without losing clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 thoroughly explains response fields (currentBest, loyaltyApplied) and error handling. It also distinguishes this tool from sibling hotel tools like pricetik_hotel_price_check and pricetik_hotel_should_book.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage, baseline is 3, but the description adds significant value: clarifies the two usage forms, explains how roomCode works in stay-based form, and provides context for optional parameters like childrenAges and holderEmail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it generates a one-click signed PriceTik checkout URL for a hotel stay. It distinguishes between two forms (stay-based and rateKey) and provides explicit use cases, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit guidance on when to use the stay-based form vs rateKey, when to re-call pricetik_hotel_price_check for expired keys, and instructs not to fetch the URL server-side. Also explains error codes 410 and 422 with actionable steps.
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 CheckARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| checkIn | Yes | Check-in date (YYYY-MM-DD) | |
| checkOut | Yes | Check-out date (YYYY-MM-DD) | |
| propertyId | No | PriceTik hotel property UUID. Pass exactly one of propertyId / providerPropertyId. | |
| providerPropertyId | No | Provider-side property handle from a hotel search or destination lookup, resolved to the UUID server-side. Pass exactly one of propertyId / providerPropertyId. |
Tool Definition Quality
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.
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.
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.
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.
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.
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_searchHotel SearchARead-onlyInspect
Search hotels by DESTINATION (city, region, or landmark) + dates + guest count — destination is geographic, NOT a hotel name. For a SPECIFIC named hotel ("the Wynn"), resolve it first with pricetik_destinations (returns a providerPropertyId) and pass that to pricetik_hotel_get_booking_url / _details. Returns properties with the lowest available nightly rate cached on PriceTik; filter by lifestyle segment, hotel chain, accommodation type, and resort-fee/breakfast/pet flags (see params). destinationResolved: false means the destination matched no known place — ask the user to confirm it; never retry with a guessed city. Use the returned providerPropertyId with pricetik_hotel_price_check for live rates. Direct REST callers can append ?stream=ndjson for incremental per-property frames. Hotels only; for a single-call hotel + activity stitch use pricetik_trip_plan instead.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default: 10, max: 50) | |
| rooms | No | Number of rooms (default: 1) | |
| guests | No | Number of guests (default: 2) | |
| checkIn | Yes | Check-in date (YYYY-MM-DD) | |
| checkOut | Yes | Check-out date (YYYY-MM-DD) | |
| maxPrice | No | Maximum nightly rate filter | |
| segments | No | Filter by lifestyle segment codes (e.g. BEACH, BUSINESS, FAMILY, ROMANCE, ECO, GOLF). Properties match when any of their tagged segments overlaps the request. | |
| chainCode | No | Filter by hotel chain affiliation code (e.g. MARR for Marriott, HYAT for Hyatt). Uppercase alphanumeric, 2-20 characters. | |
| nearPoiLat | No | Latitude of a point of interest. Pair with nearPoiLng (and optional nearPoiRadiusKm) to override the destination centroid. | |
| nearPoiLng | No | Longitude of a point of interest. Required alongside nearPoiLat. | |
| starRating | No | Minimum star rating (1-5) | |
| destination | Yes | City, region, or landmark name | |
| petFriendly | No | Show only properties tagged as pet-friendly. | |
| freeBreakfast | No | Show only properties tagged with a breakfast amenity. | |
| minNightlyRate | No | Floor on the lowest nightly rate. Pair with maxPrice for a "between $150 and $250" band. | |
| nearPoiRadiusKm | No | Radius around the POI in km (default 5, max 50). | |
| accommodationType | No | Filter by accommodation type. Use ALL (default behavior when omitted) to disable the filter. | |
| excludeChainCodes | No | Inverse of chainCode — exclude properties affiliated with any of the listed chains (e.g. ["WYN","MGM"]). | |
| excludeResortFees | No | Drop properties whose cached paid amenities include a resort fee. SQL-level filter against `hotel_property_content.paid_amenities` — not a heuristic. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint: true. Description adds valuable context: returns lowest available nightly rate cached, filter flags, destinationResolved behavior, recommendation to use pricetik_hotel_price_check for live rates, and stream option. No contradiction. Could mention pagination or rate limits, but overall strong.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is compact yet comprehensive, front-loaded with core purpose, then alternatives, return info, error handling, and additional notes. Every sentence adds value, no redundancy. Well-structured for quick consumption.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 19 parameters (100% schema coverage) and no output schema, the description covers purpose, usage guidelines, behavioral nuances, error handling (destinationResolved), streaming option, and cross-tool references. It is complete for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage 100% so baseline 3. Description adds meaningful semantics beyond schema: destination is geographic not hotel name, segments match on any overlap, excludeResortFees is SQL-level filter. These clarifications help the agent select correct parameter values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it searches hotels by destination, dates, guest count. It explicitly distinguishes itself from pricetik_trip_plan (hotel+activity stitch) and pricetik_hotel_get_booking_url/_details (for specific named hotels). The verb 'Search' and resource 'hotels' are specific, and the scope is well-defined.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit guidance: for specific named hotels, resolve with pricetik_destinations first; for single-call hotel+activity, use pricetik_trip_plan. Also instructs on how to handle destinationResolved: false (ask user, never retry). Clearly states when to use this tool vs alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pricetik_itinerary_exportItinerary ExportARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max events (1–100, default 50) | |
| includePast | No | Include past bookings too (default false) | |
| tripSessionId | No | Optional 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. |
Tool Definition Quality
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.
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.
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.
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.
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.
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 TripsARead-onlyInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
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.
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.
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.
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.
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.
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 TripsARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max trips to return (1–25, default 10). | |
| status | No | Trip status filter (default 'all'). |
Tool Definition Quality
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.
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.
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.
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.
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.
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_activityResolve ActivityARead-onlyInspect
Resolve a free-text activity/event NAME ("the Sphere show", "Grand Canyon helicopter tour") into a Hotelbeds activityCode. Returns ranked candidates {activityCode, name, destinationCode, fromPrice}; hand the activityCode to pricetik_activity_details (rates + rateKeys) or pricetik_activity_search. Optionally scope with destinationCode. Coverage is lazy — a name never surfaced via search may miss until first searched. Free at every tier, no API key required.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | Free-text activity or event name. | |
| limit | No | Max candidates to return (1–25, default 10). | |
| destinationCode | No | Optional Hotelbeds destination code to scope the match. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint: true, and the description adds valuable behavioral context: 'Coverage is lazy — a name never surfaced via search may miss until first searched.' Also states it's free with no API key, which is 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded: first sentence defines core purpose, second directs to siblings, third adds details. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, but description explains return structure ('ranked candidates {activityCode, name, destinationCode, fromPrice}'). Covers scope, lazy coverage, pricing, and flow to other tools. Complete for this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so descriptions already exist. The description adds minimal extra meaning for parameters beyond restating the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it resolves a free-text activity name into a Hotelbeds activityCode, which is a specific verb+resource. It distinguishes from siblings like pricetik_activity_details and pricetik_activity_search by outlining the workflow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells the agent to pass the resulting activityCode to pricetik_activity_details or pricetik_activity_search. It mentions optional scoping with destinationCode but does not explicitly state when not to use it. Still, 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_room_typesRoom TypesARead-onlyInspect
Filtered, ranked room catalog for a property. Pass checkIn/checkOut to get LIVE per-room nightly rates for the stay (rooms with no live availability are dropped; cached-rate fallback when the live look fails). Filter by bedType (KING/QUEEN/DOUBLE/TWIN/SOFA), suite, kitchenette, accessible, minAdults.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rooms to return (1–50, default 15). | |
| rooms | No | Optional room count (1–8) — carried into each room’s bookingUrl so the checkout page keeps the party size. | |
| suite | No | When true, only suite rooms. | |
| guests | No | Optional guest count (1–30) — carried into each room’s bookingUrl so the checkout page keeps the party size. | |
| bedType | No | Filter rooms by bed-type tokens. Best-effort match against name/description. | |
| checkIn | No | Optional check-in date for rate join (YYYY-MM-DD). | |
| checkOut | No | Optional check-out date for rate join (YYYY-MM-DD). | |
| minAdults | No | Required adult capacity (1–10). | |
| accessible | No | When true, only accessible rooms. | |
| propertyId | No | PriceTik hotel property UUID. Pass exactly one of propertyId / providerPropertyId. | |
| kitchenette | No | When true, only rooms with kitchenette. | |
| providerPropertyId | No | Provider-side property handle from a hotel search or destination lookup, resolved to the UUID server-side. Pass exactly one of propertyId / providerPropertyId. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description fully discloses behavioral traits beyond the readOnlyHint annotation: it explains the cache-only nature ('never calls Hotelbeds'), conditional rate joining, and the 'best-effort match' behavior of the bedType filter. There is 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured paragraph of three sentences. It front-loads the core purpose, then explains the mechanism and lists filters. Every sentence adds essential information without redundancy or verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (12 parameters, no output schema), the description covers the core behavior: cached data, rate joining, filtering options, and identifier requirements. It could mention what the output looks like (e.g., a list of room objects) but the lack of output schema is compensated by the detailed parameter behavior. Overall, it provides sufficient context for an AI 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage, the baseline is 3. The description adds meaningful context: it explains that rooms/guests are 'carried into each room’s bookingUrl' and that bedType filtering is 'best-effort match'. It also clarifies the mutual exclusivity of propertyId and providerPropertyId. This adds value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns a filtered, ranked room catalog for a property, reading cached data and optionally joining cheapest rates. It specifies the data source (cached hotel_property_content.rooms) and explicitly differentiates from external calls ('Cache-only — never calls Hotelbeds'). This distinguishes it from sibling tools like pricetk_hotel_details or pricetk_hotel_search that serve different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on when to use the tool (filtering room types for a property) and includes usage instructions like 'Pass exactly one of propertyId / providerPropertyId'. However, it does not explicitly state when not to use this tool or contrast it with similar sibling tools (e.g., pricetk_hotel_details), which would make the guidance more complete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pricetik_searchSearchARead-onlyInspect
Discovery search across PriceTik surfaces (shopping/hotels/events) — see the surface param for what each value returns. For a SPECIFIC intent prefer the dedicated tool (pricetik_hotel_search, pricetik_activity_search) for richer, date-accurate results in their own widget; use pricetik_search when exploratory or the surface is unknown. For a multi-surface trip ("a hotel AND a show"), do NOT use surface=all to commingle — fire parallel dedicated calls or use pricetik_trip_plan (includeTickets=true for a ticketed show) instead. To compare multiple candidate destinations, fire one pricetik_hotel_search per destination in parallel with the same dates/guests and summarize the results side by side. The events surface also returns a separate labeled "Event tickets" section when live-event tickets match (city, eventDate, a pricetik_ticket_details drill-in); call pricetik_ticket_search directly for ticket-specific city/date filtering. Each result carries a drillDownTool for the next call. For "best deals right now" with no product in mind use pricetik_trending_deals.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | Search query text | |
| limit | No | Max results to return (tier-limited) | |
| surface | No | Which surface(s) to search. `shopping` = retail deals; `hotels` = hotel matches for the resolved destination + PriceTik UUIDs; `events` = bookable activities for the matched destination. `all` = discovery fallback, results grouped by surface in labeled sections (relevance-gated), NOT round-robin. Omit for the scope-aware default (follows the active vertical selection, not a fixed `shopping`). | |
| category | No | Filter by product category (shopping only) | |
| maxPrice | No | Maximum price filter |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, and the description adds behavioral details: results are grouped by surface, relevance-gated, each result carries a drillDownTool, and the events surface returns a separate 'Event tickets' section. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is relatively long but well-structured with clear sections and front-loaded purpose. Every sentence adds value, though it could be slightly more concise; but given the complexity, it is justified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 5 parameters, no output schema, and many sibling tools, the description covers usage guidelines, behavioral nuances, parameter details, and distinguishes from alternatives comprehensively. It leaves no major gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 explaining what each surface value returns, noting category is shopping-only, mentioning tier-limited for limit, and suggesting omitting surface for scope-aware default. This goes beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states it is a 'discovery search across PriceTik surfaces (shopping/hotels/events)' and distinguishes it from dedicated tools like pricetik_hotel_search, making the purpose clear and specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit guidance on when to use (exploratory or unknown surface), when not to use (specific intent, multi-surface trips), and lists alternatives (pricetik_hotel_search, pricetik_activity_search, pricetik_trip_plan, pricetik_compare_destinations). Also warns against using surface=all for multi-surface queries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pricetik_statusStatusARead-onlyInspect
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 and tokensInCooldown. The block is omitted for anonymous callers. Pass surface for a per-vertical health view instead (cache freshness, rate-history coverage, refresh-worker status for that surface).
| Name | Required | Description | Default |
|---|---|---|---|
| surface | No | Optional per-vertical health view — hotels, events (activities/tickets), or transfers. Omit for the platform-wide status + feature flags. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the agent knows it's safe. The description adds valuable details: returns status, tier, flags, and conditional account block for authenticated vs anonymous callers, without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with purpose and usage, then details. Every sentence contributes meaning, no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description fully explains return values, including conditional behavior. Given the tool's simplicity and existing annotations, it is completely adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters (schema coverage 100%), so the description does not need to add parameter info. Baseline 4 is appropriate as it adds no param details but none are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it checks 'Intel API health and feature flag state', specifying the verb 'Check' and the resource. It distinguishes itself from sibling tools as the only status/health check tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Use before making calls to verify the API is available', providing clear usage context. While it doesn't specify when not to use, the purpose makes it obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pricetik_ticket_detailsTicket DetailsARead-onlyInspect
Full detail for one LIVE-EVENT TICKET listing (by id or slug from pricetik_ticket_search): venue, date, performers/teams, the from-price, a pricetik.com/go/ checkout link, and OTHER upcoming dates for the same event so you can offer alternatives. Affiliate inventory — surface the checkout link to the user unchanged; PriceTik never auto-purchases. Companion to pricetik_ticket_search.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The event's PriceTik id (UUID) or slug, from pricetik_ticket_search. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly annotation, the description discloses that the data is live-event inventory from an affiliate, that the checkout link should be surfaced unchanged, and that PriceTik never auto-purchases. Also mentions it provides alternative upcoming dates, which is an important behavioral trait.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences, each adding value: the first lists what the tool returns, the second clarifies affiliate nature and usage, the third positions it as a companion to search. No redundant or unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 outlines the key return fields (venue, date, performers, price, link, other dates). It also explains the affiliate context. Minor gap: does not mention potential error cases or response format details, but overall sufficient for an agent to understand what to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description reinforces that the id is a UUID or slug from the search tool, but does not add new semantic information beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it provides full detail for a live-event ticket listing, explicitly listing what is included (venue, date, performers, from-price, checkout link, other upcoming dates). Distinguishes from siblings by specifying it is for live-event tickets and is a companion to pricetik_ticket_search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Indicates it should be used after search by referencing id or slug from pricetik_ticket_search, and is described as a companion to that tool. Gives guidance on how to handle the affiliate checkout link. However, does not explicitly exclude other use cases or compare to other detail tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pricetik_ticket_searchTicket SearchARead-onlyInspect
Search LIVE-EVENT TICKETS — concerts, theater, sports, comedy — by name, type, city, and date window (to attend a specific event). DISTINCT from pricetik_activity_search (tours/attractions) and pricetik_search (retail products), neither of which return event tickets. Each result carries venue, city, date, a from-price, and a pricetik.com/go/ checkout link the user opens on the ticket seller — affiliate inventory, no auto-purchase or on-site checkout. Recurring dates of the same event collapse into one result with a moreDates count; call pricetik_ticket_details for the others. To bundle tickets WITH a hotel in one call, use pricetik_trip_plan with includeTickets=true instead.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Free-text match on the event, performer, or team name (e.g. "Yankees", "Hamilton"). | |
| city | No | Filter to events in a city (case-insensitive substring match, e.g. "Las Vegas"). | |
| limit | No | Max events to return (1–25). Default 10. | |
| dateTo | No | Latest event date, ISO YYYY-MM-DD. | |
| dateFrom | No | Earliest event date, ISO YYYY-MM-DD. Pair with dateTo to constrain to trip dates. | |
| maxPrice | No | Maximum "from" price in USD. | |
| eventType | No | Narrow to a top-level event type. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, the description explains that results are affiliate links (no auto-purchase), recurring dates collapse into one result with a moreDates count, and output includes specific fields (venue, city, date, from-price, checkout link). This adds significant behavioral context, though it does not cover pagination or no-result scenarios.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose and immediately distinguishes from siblings. It is well-structured, providing output details, behavioral notes, and alternatives in a logical order. It is informative without being overly verbose, though it could be slightly more concise in the first sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 7 parameters (all documented in schema) and no output schema, the description covers the output format, affiliate nature, recurring date behavior, and alternative tools. It does not explain error conditions or pagination, but overall it is sufficiently complete for an agent to understand and use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 7 parameters are already described in the schema with 100% coverage. The description adds context by summarizing the filtering dimensions (name, type, city, date window) and hinting at the purpose of dateFrom/dateTo (to attend a specific event). This meets the baseline for high schema coverage but does not add substantial new parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches for live-event tickets (concerts, theater, sports, comedy) by name, type, city, and date window. It explicitly distinguishes from two sibling tools, pricetik_activity_search and pricetik_search, by stating what they return instead.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance: it tells the agent to use this tool for event tickets, to use pricetik_activity_search for tours/attractions, pricetik_search for retail products, pricetik_ticket_details for other dates of recurring events, and pricetik_trip_plan to bundle tickets with a hotel. This covers when and when not to use the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pricetik_trending_dealsTrending DealsARead-onlyInspect
Today's best deals ranked 0-100, across every vertical, with no specific product ("what are the best deals right now?"). surface: shopping (default, retail deals by stored score), hotels (biggest 7-day nightly-rate drops), events (activity rate drops), tickets (live-event tickets below their 30-day median, with a reasons[] breakdown), or all (labeled per-surface sections: hotels, things to do, event tickets, shopping). Rows carry a drillDownTool for the next call (hotel_details / activity_details / ticket_details / price_check) and a dealScore. Optional category filter (shopping only) and minDealScore (shopping default 60). URLs are pricetik.com/go/ affiliate redirects — pass to the user's browser unchanged, never fetch server-side. No API key required. For a specific query use pricetik_search.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max deals to return (1–25, default 10) | |
| surface | No | Which inventory to rank. Default shopping (exact legacy behavior). "all" returns labeled per-surface sections. | |
| category | No | Optional category filter (shopping surface only) | |
| minDealScore | No | Minimum 0–100 deal score (shopping default 60; other surfaces unfiltered unless provided) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true. Description adds critical context: no API key required, URLs are affiliate redirects that must be passed unchanged (never server-side fetch), and rows carry a drillDownTool for subsequent calls.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with core purpose, then efficiently covers surfaces, parameters, URL handling, and alternative tool. Every sentence adds value; no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (5 surfaces, drillDownTool, URL behavior) and lack of output schema, the description thoroughly explains response structure and usage constraints, making it fully actionable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but description adds significant meaning: explains each surface's behavior (shopping default 60, hotels biggest drops, etc.), default values, and that category applies only to shopping.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns trending deals ranked 0-100 across verticals, with specific verb 'get best deals' and distinguishes from sibling 'pricetik_search' for specific queries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use (general trending deals) and when not (specific queries go to pricetik_search). Describes surface parameter options and optional filters.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pricetik_trip_planTrip PlanARead-onlyInspect
Single-call orchestrated trip planner — stitches top hotels + recommended activities + estimated spend into one response (skips the manual "search hotels → search activities → stitch" fan-out). Pass destination + dates (optional budget, interests, star rating, no-resort-fees). See the includeTickets, groupByDay, and includeTransfer params for optional event-ticket, daily-itinerary, and ground-transfer attachments. Free at every tier; stricter rate limit than single-surface tools (10/min) since it fans out parallel searches. Direct REST callers can append ?stream=ndjson for incremental frames. Use this for a single-call hotel + activity (+ ticket) stitch; for hotels only use pricetik_hotel_search, for tickets only use pricetik_ticket_search.
| Name | Required | Description | Default |
|---|---|---|---|
| rooms | No | Rooms (1–5). Default 1. | |
| adults | No | Adult guests (1–10). Default 2. | |
| checkIn | Yes | Check-in date (YYYY-MM-DD). | |
| checkOut | Yes | Check-out date (YYYY-MM-DD). | |
| children | No | Child guests (0–10). Default 0. | |
| segments | No | Lifestyle segments to bias hotel picks. | |
| budgetUsd | No | Total trip budget in USD (hotel + activities). Split ~70/30 hotel/activities by default. | |
| interests | No | Themes to bias activity picks: "food", "nature", "nightlife", etc. | |
| groupByDay | No | When true, include a dailyItinerary array (rest-day placeholders + 4h+ conflict avoidance). Default false. | |
| hotelCount | No | Hotel results to return (1–5). Default 3. | |
| starRating | No | Hotel star-rating floor (1–5). | |
| destination | Yes | Free-text destination — a city name or "lat,lng" coordinates. | |
| ticketQuery | No | Optional 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. | |
| noResortFees | No | Exclude hotels with mandatory resort fees (SQL-backed filter). | |
| includeTickets | No | When 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. | |
| includeTransfer | No | Optional ground-transfer attachment. An uncovered or same-type terminal route (IATA→IATA, PORT→PORT, STATION→STATION) yields a non-fatal transferUnavailable note instead. | |
| activitiesPerDay | No | Cap activities per day (0–5). Default 2. | |
| activityDestinationCode | No | 3-letter destination code for activities (e.g. LAS, NYC). Resolved from the destination string when omitted. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint=true. The description adds value by disclosing that the tool fans out parallel searches, has a stricter rate limit (10/min), supports streaming with ?stream=ndjson, and includes non-fatal error notes for transfers. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is about 120 words, front-loaded with the main purpose, then details parameters, then usage guidelines. It is dense but efficient, with no redundant sentences. Slight room for more structured formatting.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (18 params, no output schema, orchestration behavior), the description covers orchestration, rate limits, streaming, non-fatal errors, and clear parameter roles. It is thorough and leaves little ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (all 18 parameters described), establishing a baseline of 3. The description adds meaning by calling out key params like includeTickets, groupByDay, and includeTransfer, and explaining the budget split (~70/30 hotel/activities), elevating beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it is a 'single-call orchestrated trip planner' that stitches hotels, activities, and estimated spend, and it names specific sibling tools (pricetik_hotel_search, pricetik_ticket_search) to distinguish itself from those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says when to use this tool: 'Use this for a single-call hotel + activity (+ ticket) stitch' and when not: 'for hotels only use pricetik_hotel_search, for tickets only use pricetik_ticket_search'. It also mentions rate limit and free tier.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!