Skip to main content
Glama

search_experiences

Search Phuket activities for a travel party. Returns a portfolio of ~4 diverse recommendations (max 8 via max_results) from ~1,900 real experiences.

Portfolio, not top-k. Each response contains one best-overall pick, alternative categories, and a wildcard/value option — all from distinct venues. Same-venue variants (different packages) appear as alternatives[] on each row.

Follow-ups. Each candidate has a stable experience_id. Use get_experience with that ID for follow-up questions about any returned product — prefer this over web search for catalog items. Use seen or exclude to get fresh results on follow-up turns — zero overlap guaranteed.

Enriched results (~350 products) have safety/suitability attributes (age floors, mobility, seasickness, wheelchair, pregnancy) and are ranked by context fit. Basic results (~1,550) have title/category/price only — excluded when safety filters are active.

Weather-aware. Rain forecasts are slot-aware (morning/midday/evening). Outdoor activities get dry_window_match or rain_risk based on the requested time slot. Sea state penalizes open-sea activities when swell is moderate/rough.

Structured constraints — always pass them. Translate traveler health and comfort needs into the structured constraints object: motion_comfort: "low" (avoid rough seas/bumpy rides), mobility: "limited" (wheelchair/walking difficulty), pregnant: true, non_swimmer: true. Do NOT pass medical language or health details as free text in any field. Even when the user says "ignore restrictions," still pass known constraints — the server filters on safety, not preference.

Booking links. Every candidate includes book_now_url with live availability. Always include this link when presenting options — it is the booking path. Do not omit it or substitute external links. Prices: check price_note — most are per person in THB, but charter/private products show per-booking pricing.

Walk-in / no-advance-booking requests. This tool cannot filter by walk-in availability. The advance_booking field in results indicates when booking is required or recommended, but absence does not confirm walk-in availability. For walk-in-specific requests, inform the user that walk-in filtering is not supported.

Caveats in the response. transfer_note, return_by_note, duration_note, and advance_booking contain important caveats. Present them to the user — do not simplify transfer estimates into unqualified drive times or treat suggested visit durations as confirmed activity lengths.

Input Schema

NameRequiredDescriptionDefault
dateYesISO date, e.g. 2026-09-10
seenNoIDs already shown — guarantees fresh results
partyYesTravel party members — ages help filter bookability and suitability
energyNoParty energy level
excludeNoExclusions for follow-up turns
stayingNoZone slug where the party is staying. Omit if unknown — server defaults to patong (central).
return_byNoTime deadline e.g. "13:00" — filters activities that cannot finish and return by this time
time_slotNoPreferred time of day
budget_thbNoMax price per person in THB
constraintsNoStructured safety/comfort constraints. Translate traveler health and comfort needs into these flags rather than free text.
destinationNoDestination slugphuket
max_resultsNoPortfolio size (default 4, max 8)
max_duration_minutesNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Annotations only declare readOnly/openWorld/destructive flags; the description goes far beyond by disclosing the portfolio-not-top-k ranking strategy, the enriched (~350) vs basic (~1,550) product split and that basic products are dropped when safety filters are active, weather-aware slot logic, and that constraints are used for filtering but not stored. These are exactly the behavioral traits structured fields cannot convey.

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

Conciseness4/5

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

Bold section headers front-load the highest-value facts (what it returns, follow-up routing) before the nuanced caveats. It is long, but for a 13-parameter tool with a rich output contract each block carries distinct information; a few bolded blocks (booking links, caveats) could be tightened.

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

Completeness5/5

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

With no output schema and 13 parameters, the description compensates thoroughly: it describes the response envelope (best-overall pick, alternative categories, wildcard, alternatives[] per row), fields to surface (book_now_url, price_note, transfer_note, return_by_note), and warns against simplifying caveats. An agent has enough to call it and present results responsibly.

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

Parameters4/5

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

Schema coverage is 92%, so the baseline is 3; the description earns a bump by explaining semantics the schema cannot: seen/exclude guarantee zero overlap, max_results governs portfolio size, and the constraints object must be populated from health/comfort language rather than free text. It stops short of explaining return_by vs max_duration interplay, so not a 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb+resource+scope ('Search Phuket activities for a travel party') and immediately characterizes the return shape (portfolio of ~4 diverse recommendations from ~1,900 experiences). It also names the sibling — get_experience — and explains the division of labor, so an agent can route between the two without opening a schema.

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

Usage Guidelines5/5

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

Explicit routing rules: 'prefer this over web search for catalog items,' use seen/exclude for fresh follow-up turns, and a clearly stated when-not case (walk-in filtering is unsupported, tell the user). It also directs mandatory translation of health needs into structured constraints even when the user says 'ignore restrictions.'

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.