Skip to main content
Glama
hhw67865

TripAdvisor Vacation Planner MCP Server

by hhw67865

search_locations

Find TripAdvisor locations by search query and optional category filter to plan vacation activities, accommodations, and dining.

Instructions

Search for locations on TripAdvisor

Args:
    query: Search term (e.g., "hotels in Paris")
    category: Optional category filter (e.g., "hotels", "restaurants", "attractions")

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
queryYes
categoryNo

Implementation Reference

  • The main handler for the 'search_locations' tool. Decorated with @mcp.tool() for registration. Defines input schema via type hints and docstring. Executes search by calling TripAdvisor API via helper function.
    @mcp.tool()
    async def search_locations(query: str, category: Optional[str] = None) -> str:
        """
        Search for locations on TripAdvisor
        
        Args:
            query: Search term (e.g., "hotels in Paris")
            category: Optional category filter (e.g., "hotels", "restaurants", "attractions")
        """
        params = {"searchQuery": query}
        if category:
            params["category"] = category
        
        result = await tripadvisor_api_request("location/search", params)
        return json.dumps(result, indent=2)
  • Supporting helper function that handles API requests to TripAdvisor, used by the search_locations tool and other tools.
    async def tripadvisor_api_request(endpoint: str, params: Dict[str, Any] = None) -> Dict[str, Any]:
        """Make a request to the TripAdvisor API"""
        if not TRIPADVISOR_API_KEY:
            return {"error": "TripAdvisor API key not configured. Set TRIPADVISOR_API_KEY environment variable."}
        
        headers = {"accept": "application/json", "key": TRIPADVISOR_API_KEY}
    
        if params is None:
            params = {}
    
        params["key"] = TRIPADVISOR_API_KEY
    
        url = f"{API_BASE_URL}/{endpoint}"
        
        async with httpx.AsyncClient() as client:
            try:
                response = await client.get(url, headers=headers, params=params, timeout=30.0)
                response.raise_for_status()
                return response.json()
            except httpx.HTTPStatusError as e:
                return {
                    "error": f"HTTP error occurred: {e}",
                    "details": str(e)
                }
            
    #Resources for specific location details

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/hhw67865/tripadvisor-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server