batteryshark/mcp-sandals-boujiebot
If you are the rightful owner of mcp-sandals-boujiebot and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
Sandals BoujieBot MCP Server is a luxury travel concierge service providing comprehensive access to Sandals resort information, real-time room availability, restaurant details, and intelligent price monitoring with Discord notifications.
Sandals BoujieBot MCP Server
Your luxury travel concierge for Sandals Resorts. This MCP server provides comprehensive access to Sandals resort information, real-time room availability, restaurant details with menus, and intelligent price monitoring with Discord notifications.
Features
🏖️ Resort Discovery
- 19 Caribbean Resorts with complete details
- Search by criteria: Island, kids policy, airport distance
- Airport information: Codes, distances, travel times
- Resort amenities: Room counts, restaurant counts, descriptions
🏨 Room Intelligence
- Complete room data: 24+ room types per resort with full descriptions
- Real room views: "Beachfront, Oceanview", "Garden View", etc.
- Photo galleries: 3+ high-resolution images per room
- Detailed amenities: 25+ amenities per room with descriptions
- Special attributes: Butler service, soaking tubs, in-room dining details
- Live availability: Real-time pricing via Sandals API
- Flexible date search: Find alternatives around preferred dates
🍽️ Dining & Restaurants
- 8-12 restaurants per resort with complete information
- Real PDF menus: Direct links to current menu PDFs
- Dining details: Hours, dress codes, meal times, reservations
- Cuisine types: French, Italian, Thai, Caribbean, Mediterranean, etc.
💰 Price Monitoring (Optional)
- Intelligent price watches: Monitor specific room/date combinations
- Discord notifications: Automatic alerts when prices drop below targets
- Flexible monitoring: Multiple rooms and dates simultaneously
- Requires:
DISCORD_WEBHOOK_URL
environment variable
Available Tools
Resort Discovery
search_resorts()
- Find resorts by island, kids policy, distanceget_resort_details()
- Complete resort information with amenity counts
Restaurant & Dining
get_resort_restaurants()
- All restaurants with menus, hours, dress codesget_restaurant_menu()
- Detailed restaurant info with PDF menu links
Room & Accommodations
get_resort_rooms()
- All room types with descriptions and amenitiesget_room_details()
- Detailed room info by specific room codefind_rooms_by_class()
- Search by room class (BUTLER, OVERWATER, etc.)
Live Availability & Pricing
check_room_availability()
- Real-time pricing via Sandals APIfind_flexible_dates()
- Alternative dates around preferences
Price Monitoring (Requires Discord Webhook)
add_price_watch()
- Set up intelligent price monitoringlist_price_watches()
- View all active price watchesremove_price_watch()
- Remove price monitoringcheck_price_watches()
- Manual check with Discord notifications
Resources & Prompts
sandals://resorts/all
- Complete resort listing resourceplan_vacation_prompt()
- AI vacation planning assistant
MCP Server Configuration
Basic stdio Configuration
{
"mcpServers": {
"sandalsBoujieBot": {
"type": "stdio",
"command": "uv",
"args": ["run", "--directory", "/path/to/sandals_mcp", "python", "sandals_boujiebot_server.py"]
}
}
}
With Discord Price Monitoring
{
"mcpServers": {
"sandalsBoujieBot": {
"type": "stdio",
"command": "uv",
"args": ["run", "--directory", "/path/to/sandals_mcp", "python", "sandals_boujiebot_server.py"],
"env": {
"DISCORD_WEBHOOK_URL": "https://discord.com/api/webhooks/YOUR_WEBHOOK_URL"
}
}
}
}
HTTP Server Mode
{
"mcpServers": {
"sandalsBoujieBot": {
"type": "http",
"url": "https://your-domain.com/mcp/"
}
}
}
Configuration File Locations:
- VS Code:
.vscode/mcp.json
(project) or user settings - Claude Desktop:
claude_desktop_config.json
- Cursor:
.cursor/mcp.json
(project) or~/.cursor/mcp.json
(user) - LM Studio:
~/.lmstudio/mcp.json
Installation & Setup
Prerequisites
- Python 3.12+
- uv package manager
Quick Start
# Clone or download the project
cd /path/to/sandals_mcp
# Install dependencies
uv sync
# Test the server
uv run python -c "import sandals_boujiebot_server; print('Server ready!')"
# Run in stdio mode (for MCP clients)
uv run python sandals_boujiebot_server.py
# Run in HTTP mode (for web access)
HOST=127.0.0.1 PORT=8000 uv run python sandals_boujiebot_server.py
Discord Price Monitoring Setup (Optional)
- Create a Discord webhook in your server:
- Server Settings → Integrations → Webhooks → New Webhook
- Copy the webhook URL
- Set the environment variable:
export DISCORD_WEBHOOK_URL="https://discord.com/api/webhooks/YOUR_WEBHOOK_URL"
- Restart the server
Without this setup, price monitoring tools will return helpful error messages.
Data Coverage
Complete Caribbean Coverage:
- 19 Sandals Resorts across Jamaica, Barbados, Saint Lucia, Antigua, Grenada, Bahamas, Turks & Caicos
- 450+ room types with full descriptions, amenities, and photos
- 190+ restaurants with PDF menus, hours, and dress codes
- Real-time availability via official Sandals booking API
Usage Examples
Find Perfect Resort
# Adult-only resorts in Jamaica near airport
result = await client.call_tool("search_resorts", {
"island": "Jamaica",
"kids_allowed": false,
"max_airport_distance": 10
})
# Returns: Complete resort details with airport codes and distances
Get Restaurant Information
# All restaurants at a resort
result = await client.call_tool("get_resort_restaurants", {
"resort_code": "SMB"
})
# Returns: 12 restaurants with menus, hours, dress codes, meal times
# Specific restaurant with menu
result = await client.call_tool("get_restaurant_menu", {
"resort_code": "SMB",
"restaurant_name": "Bayside"
})
# Returns: Full details including PDF menu URL
Explore Accommodations
# Find all Butler suites across resorts
result = await client.call_tool("find_rooms_by_class", {
"room_class": "BUTLER",
"max_results": 5
})
# Get detailed room information
result = await client.call_tool("get_room_details", {
"resort_code": "SRC",
"room_code": "OWB" # Overwater Bungalow
})
# Returns: Full description, 30+ amenities, 3+ photos, room views
Check Live Availability
# Real-time pricing and availability
result = await client.call_tool("check_room_availability", {
"resort_code": "SMB",
"check_in_date": "2024-06-15",
"check_out_date": "2024-06-22",
"guests": 2
})
# Returns: Live pricing from Sandals API
# Find flexible dates
result = await client.call_tool("find_flexible_dates", {
"resort_code": "SRC",
"preferred_date": "2024-07-01",
"room_code": "OWB",
"flexibility_days": 7
})
# Returns: Available dates within 7 days of preference
Set Up Price Monitoring (Requires Discord)
# Monitor specific room/dates for price drops
result = await client.call_tool("add_price_watch", {
"resort_code": "SRC",
"room_code": "OWB",
"check_in_date": "2024-07-01",
"check_out_date": "2024-07-08",
"max_price": 15000,
"watch_name": "Dream Overwater Bungalow"
})
# Sets up automated monitoring with Discord notifications
Development
Testing
# Run basic tests
uv run python -c "
import sandals_boujiebot_server
from fastmcp import Client
import asyncio
async def test():
client = Client(sandals_boujiebot_server.mcp)
async with client:
tools = await client.list_tools()
print(f'Server has {len(tools)} tools available')
asyncio.run(test())
"
# Test with pytest (if you add tests)
uv run pytest
Development Mode
# Run with FastMCP development tools
uv run fastmcp dev sandals_boujiebot_server.py
Architecture
Built on FastMCP 2.12+ with these principles:
- Data-Driven: All resort information from comprehensive JSON datasets
- API Integration: Real-time availability via official Sandals booking API
- Async-First: Non-blocking operations for better performance
- Optional Features: Price monitoring gracefully disabled without Discord webhook
- Rich Data: Full descriptions, photos, menus - not just basic info
- Production Ready: Proper error handling and configuration validation
API Integration
Integrates with the official Sandals booking API for real-time availability and pricing. Implements respectful rate limiting and error handling for reliable service.
Error Handling
- Missing configuration: Clear error messages for missing Discord webhook
- API failures: Graceful handling of booking API issues
- Invalid inputs: Helpful validation messages
- Data issues: Fallback to available data when possible
Built with FastMCP - The fastest way to build MCP servers 🚀
This is a luxury travel concierge focused on providing comprehensive, accurate information for Sandals resort planning. Every tool returns rich, actionable data to help create the perfect Caribbean vacation.