test_mcp_server / tools /restaurant_tool.py
SrikanthNagelli's picture
initial commit
b0979b9
"""
Restaurant search tool for MCP server.
"""
from smolagents import Tool
from typing import Optional, Dict, Any
from services.restaurant_service import restaurant_service
class RestaurantSearchTool(Tool):
"""Tool for searching restaurants using enhanced restaurant service."""
def __init__(self):
self.name = "restaurant_search"
self.description = "Search for restaurants and dining options in a location"
self.input_type = "object"
self.output_type = "object"
self.inputs = {
"location": {
"type": "string",
"description": "Location to search for restaurants"
},
"cuisine": {
"type": "string",
"description": "Type of cuisine (optional)",
"optional": True,
"nullable": True
}
}
self.outputs = {
"location": {
"type": "string",
"description": "Search location"
},
"total_found": {
"type": "integer",
"description": "Total number of restaurants found"
},
"restaurants": {
"type": "array",
"description": "List of restaurants found"
}
}
self.required_inputs = ["location"]
self.is_initialized = True
def forward(self, location: str, cuisine: Optional[str] = None) -> dict:
"""Search for restaurants using enhanced restaurant service."""
try:
# The service now correctly handles location and cuisine parsing
results = restaurant_service.search_restaurants(location, cuisine=cuisine)
return results
except Exception as e:
return {
"location": location,
"total_found": 0,
"restaurants": [],
"error": f"Unexpected error: {str(e)}"
}