Thailand Fun Experiences

Registre officiel Recherche et web

Phuket activity search with live weather, sea state, transfer times and party-fit filtering.

Que pouvez-vous faire avec Thailand Fun Experiences ?

  • 1,891 real Viator experiences synced, 352 enriched with 24 safety/suitability attributes each
  • Portfolio ranking — returns 4 diverse candidates (not top-k), with venue dedup, activity-type diversity, and category spread
  • Live context — weather forecasts (slot-aware rain buckets), sea state (swell direction × zone exposure), travel matrix (ORS-routed, 13 zones), season
  • Safety gating — age floors, mobility (enjoy-the-core semantics), pregnancy, non-swimmer, motion comfort, all with multi-source evidence hierarchy
  • Affiliate booking — every result includes a tracked booking link (book_now_url) with live availability

Installation

Ajoutez ceci à la configuration MCP de votre client (Claude Desktop : claude_desktop_config.json ; Cursor : .cursor/mcp.json ; VS Code et les autres utilisent la même forme « mcpServers »).

Remote (streamable-http)
Claude Code
claude mcp add --transport http thailand-fun-experiences 'https://thailandfunexperiences.com/mcp'
Configuration JSON (Claude Desktop, Cursor, VS Code)
{
    "mcpServers": {
        "thailand-fun-experiences": {
            "type": "http",
            "url": "https://thailandfunexperiences.com/mcp"
        }
    }
}

Documentation

Tirée du README du projet sur GitHub, actualisée chaque semaine. Les liens ouvrent GitHub.

Sommaire
  1. Thailand Fun Experiences — MCP Server
  2. What it does
  3. Architecture
  4. Tools
  5. Stack
  6. Evidence hierarchy
  7. Key design decisions
  8. Built with
  9. License

Thailand Fun Experiences — MCP Server

An agent-facing experiences layer for Phuket that lets AI assistants (ChatGPT, Claude, etc.) answer "what should we do here, today, for this exact party" in one tool call — with safety-gated attributes, live weather/sea context, and affiliate booking links.

Live: thailandfunexperiences.com · MCP endpoint: https://thailandfunexperiences.com/mcp

What it does

  • 1,891 real Viator experiences synced, 352 enriched with 24 safety/suitability attributes each
  • Portfolio ranking — returns 4 diverse candidates (not top-k), with venue dedup, activity-type diversity, and category spread
  • Live context — weather forecasts (slot-aware rain buckets), sea state (swell direction × zone exposure), travel matrix (ORS-routed, 13 zones), season
  • Safety gating — age floors, mobility (enjoy-the-core semantics), pregnancy, non-swimmer, motion comfort, all with multi-source evidence hierarchy
  • Affiliate booking — every result includes a tracked booking link (book_now_url) with live availability

Architecture

See ARCHITECTURE.md for the full spec.

Agents (ChatGPT / Claude / REST)
        │
        ▼
  M6 MCP Server (Fastify + streamable HTTP)
        │
  M5 Ranker (pure function, no DB/API calls)
   ├── M1 Experience Graph (Postgres + PostGIS)
   ├── M4 Context (Open-Meteo weather/marine, ORS matrix)
   └── M3 Enrichment (Claude Sonnet, Batch API)
        │
  M8 Router → Viator affiliate links
  M10 Telemetry → session/click/booking events

Tools

search_experiences

Search Phuket activities for a travel party. Returns a portfolio of ~4 diverse recommendations.

{
  "date": "2026-09-10",
  "staying": "kata",
  "party": [{"role": "adult", "age": 38}, {"role": "child", "age": 9}],
  "constraints": {"motion_comfort": "low"},
  "energy": "high",
  "time_slot": "morning",
  "max_results": 4
}

Response includes: candidates with attributes, booking links, reason codes, weather context, sea state, catalog breadth stats, and refine hints.

get_experience

Get full details for a specific experience by ID.

{"experience_id": "exp_27613P9"}

Stack

  • Runtime: Node 22, TypeScript (strict), ESM
  • Monorepo: pnpm workspaces
  • DB: Postgres 16 + PostGIS, Drizzle ORM
  • MCP: @modelcontextprotocol/sdk streamable HTTP transport behind Fastify
  • Enrichment: Anthropic Batch API (Claude Sonnet 4), structured extraction with evidence validation
  • Weather/Marine: Open-Meteo (no key)
  • Travel matrix: OpenRouteService (one batched matrix call for all 13 zones)
  • Deploy: systemd + Caddy reverse proxy on VPS

Evidence hierarchy

1. human_correction    — Dan's per-attribute overrides
2. operator_terms      — verified T&C from specific operators
3. viator_structured   — supplier-declared flags (stored verbatim)
4. dan-rules           — category/venue-level local knowledge (8 rule groups)
5. derived             — formula-computed (seasickness = vessel × water_exposure)
6. extraction          — LLM structural/textual inference (base)

Key design decisions

  • Portfolio, not top-k — 4 diverse candidates from distinct venues/activity types
  • Structured constraints, not free text — no health language in any field (privacy by design)
  • Transfer penalty always on — transfer/duration ratio ≥1 = severe penalty
  • Graceful decline for unsupported destinations — never throws, logs demand
  • Directive 9 (Viator-tomorrow test) — every served feature must add transformation, corroboration, composition, or context a single provider can't replicate

Built with

Built solo in ~1 week with Claude Code (Claude Opus). See meta/POSTMORTEM.md for the build retrospective.

License

MIT

Questions fréquentes

Qu'est-ce que Thailand Fun Experiences ?

Phuket activity search with live weather, sea state, transfer times and party-fit filtering.

Comment installer Thailand Fun Experiences ?

Il fonctionne comme serveur distant. Dans Claude Code : claude mcp add --transport http thailand-fun-experiences 'https://thailandfunexperiences.com/mcp'. Pour les autres clients, collez la configuration JSON de cette page dans leurs réglages MCP.

Faut-il une clé API pour Thailand Fun Experiences ?

Son entrée au registre n'indique aucune clé ni secret obligatoire. Certaines fonctions peuvent tout de même demander un compte auprès du service auquel il se connecte.

Thailand Fun Experiences est-il open source ?

Oui. Son code est sur GitHub sous licence MIT.

Qui maintient Thailand Fun Experiences ?

Il est publié par hangingfox67. AI.tn le référence sans le maintenir ni le recommander.

Issu du registre MCP officiel. Être listé n'est pas une recommandation : vérifiez le code et les permissions d'un serveur avant de lui donner accès à vos données.