BangkokVacay Directory

Search curated Bangkok, Thailand tours, activities, hotels, restaurants, nightlife and services.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
61%
Naming quality
100%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,384Tokens (tool definitions)
~4.0 KBTypical response size
Moderate attention impact (1.86% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "bangkokvacay-directory": {
      "url": "https://bangkokvacay-connector.michael-b38.workers.dev/mcp"
    }
  }
}

Remote endpoints

https://bangkokvacay-connector.michael-b38.workers.dev/mcpstreamable-http

What it can do

Tool inventory

Tools (5)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢search_listings(q, category, area, price_tier, amenities, ...)

Search BangkokVacay's curated directory of Bangkok, Thailand businesses (hotels, restaurants, bars, activities, attractions, shops and services). Read-only. Filters: keyword, category, area/neighborhood, price tier, amenities (e.g. pool, spa, river_view, rooftop, michelin), tag, and distance from a lat/lng or from another listing. Returns compact plain-text listings (description shortened; use get_listing for the full text, hours and FAQ) with the listing page URL, address, phone, website, up to 2 credited photos, and booking links. Booking links are the path to book with the named provider (Expedia for hotels, plus Viator/Klook where the listing has one), not ads; those marked affiliate:true are affiliate links, and BangkokVacay may earn a commission if the user books, at no extra cost to them. Results are not ranked by commission. Pass check_in/check_out to get date-specific Expedia hotel links (live rates are shown on Expedia, not in this result).

Input Schema

{
  "type": "object",
  "properties": {
    "q": {
      "type": "string",
      "description": "Keywords, e.g. 'rooftop bar', 'temple', 'tasting menu'"
    },
    "category": {
      "type": "string",
      "description": "Category name or id from list_categories, e.g. 'Hotels'"
    },
    "area": {
      "type": "string",
      "description": "Area/neighborhood, e.g. 'Pathum Wan', 'Sukhumvit', 'Riverside', 'Bang Rak'. See list_filters."
    },
    "price_tier": {
      "type": "string",
      "enum": [
        "budget",
        "moderate",
        "upscale",
        "luxury"
      ]
    },
    "amenities": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "ski_in_ski_out",
          "walk_to_lifts",
          "pool",
          "hot_tub",
          "spa",
          "fitness_center",
          "pet_friendly",
          "parking",
          "shuttle",
          "family_friendly",
          "breakfast",
          "kitchen",
          "rooftop",
          "river_view",
          "outdoor_seating",
          "apres_ski",
          "live_music",
          "free_entry",
          "michelin",
          "wheelchair_accessible"
        ]
      },
      "description": "All must match"
    },
    "tag": {
      "type": "string",
      "description": "Exact listing tag, see list_filters"
    },
    "near_lat": {
      "type": "number"
    },
    "near_lng": {
      "type": "number"
    },
    "near_listing_id": {
      "type": "string",
      "description": "Rank by distance from this listing"
    },
    "radius_km": {
      "type": "number",
      "description": "Max distance (km) when near_* is set"
    },
    "has_booking_link": {
      "type": "boolean",
      "description": "Only listings with a booking link"
    },
    "check_in": {
      "type": "string",
      "description": "YYYY-MM-DD (hotels)"
    },
    "check_out": {
      "type": "string",
      "description": "YYYY-MM-DD"
    },
    "adults": {
      "type": "integer",
      "minimum": 1,
      "maximum": 14,
      "default": 2
    },
    "sort": {
      "type": "string",
      "enum": [
        "relevance",
        "distance",
        "name"
      ]
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50,
      "default": 10
    },
    "page": {
      "type": "integer",
      "minimum": 1,
      "default": 1
    }
  },
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "status": {
      "type": "string"
    },
    "total": {
      "type": "integer"
    },
    "page": {
      "type": "integer"
    },
    "per_page": {
      "type": "integer"
    },
    "returned": {
      "type": "integer"
    },
    "has_more": {
      "type": "boolean"
    },
    "affiliate_disclosure": {
      "type": "string"
    },
    "data_fetched_at": {
      "type": "string"
    },
    "listings": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "url": {
            "type": [
              "string",
              "null"
            ],
            "description": "Listing page on bangkokvacay.com"
          },
          "category": {
            "type": [
              "string",
              "null"
            ]
          },
          "area": {
            "type": [
              "string",
              "null"
            ]
          },
          "price_tier": {
            "type": [
              "string",
              "null"
            ]
          },
          "amenities": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "description": {
            "type": "string",
            "description": "Plain text"
          },
          "address": {
            "type": [
              "string",
              "null"
            ]
          },
          "lat": {
            "type": [
              "number",
              "null"
            ]
          },
          "lon": {
            "type": [
              "number",
              "null"
            ]
          },
          "phone": {
            "type": [
              "string",
              "null"
            ]
          },
          "website": {
            "type": [
              "string",
              "null"
            ]
          },
          "booking_link": {
            "type": [
              "string",
              "null"
            ],
            "description": "First affiliate booking link, if any"
          },
          "booking": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "provider": {
                  "type": "string"
                },
                "label": {
                  "type": "string"
                },
                "url": {
                  "type": "string"
                },
                "affiliate": {
                  "type": "boolean"
                }
              }
            }
          },
          "photos": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "photo_details": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "url": {
                  "type": "string"
                },
                "caption": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "credit": {
                  "type": "string"
                },
                "source": {
                  "type": "string"
                }
              }
            }
          },
          "distance_km": {
            "type": "number"
          }
        },
        "required": [
          "id",
          "name"
        ]
      }
    }
  },
  "required": [
    "status",
    "total",
    "listings"
  ]
}
🟢get_listing(id, check_in, check_out, adults)

Read-only. Full details for one BangkokVacay listing by id: complete plain-text description, FAQ, hours, up to 10 gallery photos with captions and credits (e.g. 'Photo via Expedia'), listing page URL, and booking links (the path to book with the named provider, not ads). Links marked affiliate:true are affiliate links; BangkokVacay may earn a commission at no extra cost to the user. Returns NOT_FOUND for an unknown id.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Listing id from search_listings"
    },
    "check_in": {
      "type": "string"
    },
    "check_out": {
      "type": "string"
    },
    "adults": {
      "type": "integer",
      "minimum": 1,
      "maximum": 14
    }
  },
  "required": [
    "id"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "status": {
      "type": "string"
    },
    "affiliate_disclosure": {
      "type": "string"
    },
    "listing": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "url": {
          "type": [
            "string",
            "null"
          ],
          "description": "Listing page on bangkokvacay.com"
        },
        "category": {
          "type": [
            "string",
            "null"
          ]
        },
        "area": {
          "type": [
            "string",
            "null"
          ]
        },
        "price_tier": {
          "type": [
            "string",
            "null"
          ]
        },
        "amenities": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "tags": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "description": {
          "type": "string",
          "description": "Plain text"
        },
        "address": {
          "type": [
            "string",
            "null"
          ]
        },
        "lat": {
          "type": [
            "number",
            "null"
          ]
        },
        "lon": {
          "type": [
            "number",
            "null"
          ]
        },
        "phone": {
          "type": [
            "string",
            "null"
          ]
        },
        "website": {
          "type": [
            "string",
            "null"
          ]
        },
        "booking_link": {
          "type": [
            "string",
            "null"
          ],
          "description": "First affiliate booking link, if any"
        },
        "booking": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "provider": {
                "type": "string"
              },
              "label": {
                "type": "string"
              },
              "url": {
                "type": "string"
              },
              "affiliate": {
                "type": "boolean"
              }
            }
          }
        },
        "photos": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "photo_details": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "url": {
                "type": "string"
              },
              "caption": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "credit": {
                "type": "string"
              },
              "source": {
                "type": "string"
              }
            }
          }
        },
        "distance_km": {
          "type": "number"
        }
      },
      "required": [
        "id",
        "name"
      ]
    }
  },
  "required": [
    "status",
    "listing"
  ]
}
🟢list_categories

Read-only. List the BangkokVacay directory's top-level categories with listing counts.

Input Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "status": {
      "type": "string"
    },
    "total": {
      "type": "integer"
    },
    "categories": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": [
              "string",
              "null"
            ],
            "description": "Category id; null for categories that exist only as listing group names (filter by name instead)"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "listing_count": {
            "type": "integer"
          }
        }
      }
    }
  },
  "required": [
    "status",
    "categories"
  ]
}
🟢list_filters

Read-only. Values usable in search_listings: areas/neighborhoods, price tiers, amenities and tags, each with listing counts, plus notes on how each is derived.

Input Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "status": {
      "type": "string"
    },
    "areas": {
      "type": "array"
    },
    "price_tiers": {
      "type": "array"
    },
    "amenities": {
      "type": "array"
    },
    "tags": {
      "type": "array"
    }
  },
  "required": [
    "status"
  ]
}
🟢search_tours(q, start_date, end_date, max_price, min_rating, ...)

Read-only. Live search of bookable tours and activities in Bangkok, Thailand from Viator's partner API. Returns title, live starting ('from') price and currency, rating, review count, duration, free-cancellation flag, image and a booking_url. Optional start_date/end_date return only products Viator lists as available on those dates. Default order: keyword relevance when q is given, otherwise traveler rating; 'featured' uses Viator's own default order. booking_url is the Viator booking page and a Viator affiliate link: BangkokVacay may earn a commission if the user books, at no extra cost to them. Viator confirms the final price, availability and cancellation terms before payment.

Input Schema

{
  "type": "object",
  "properties": {
    "q": {
      "type": "string",
      "description": "Keywords, e.g. 'floating market', 'food tour', 'Ayutthaya'"
    },
    "start_date": {
      "type": "string",
      "description": "YYYY-MM-DD"
    },
    "end_date": {
      "type": "string",
      "description": "YYYY-MM-DD"
    },
    "max_price": {
      "type": "number"
    },
    "min_rating": {
      "type": "number",
      "minimum": 0,
      "maximum": 5
    },
    "free_cancellation": {
      "type": "boolean"
    },
    "sort": {
      "type": "string",
      "enum": [
        "relevance",
        "rating",
        "price_low",
        "price_high",
        "featured"
      ],
      "description": "Default: relevance to q when q is given (Viator keyword match), otherwise rating (highest traveler rating first). featured = Viator's own default order."
    },
    "currency": {
      "type": "string",
      "enum": [
        "USD",
        "EUR",
        "GBP",
        "CAD",
        "AUD",
        "THB"
      ],
      "default": "USD"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 20,
      "default": 5
    },
    "page": {
      "type": "integer",
      "minimum": 1,
      "default": 1
    }
  },
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "status": {
      "type": "string"
    },
    "total": {
      "type": "integer"
    },
    "prices_checked_at": {
      "type": "string"
    },
    "affiliate_disclosure": {
      "type": "string"
    },
    "tours": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "product_code": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "from_price": {
            "type": "number"
          },
          "currency": {
            "type": "string"
          },
          "rating": {
            "type": [
              "number",
              "null"
            ]
          },
          "review_count": {
            "type": "integer"
          },
          "booking_url": {
            "type": "string"
          },
          "affiliate": {
            "type": "boolean"
          }
        }
      }
    }
  },
  "required": [
    "status",
    "tours"
  ]
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded5 tools
verifiedversion not recorded2 tools