使用说明
旅行社MCP服务器
引言
旅行社MCP服务器通过利用SerpApi和CurrencyFreaks API搜索旅行相关信息,使大型语言模型(LLM)能够作为旅行社运行。它支持酒店搜索、详细的酒店信息检索、活动和地点搜索以及汇率查找,使其成为规划旅行和住宿的理想选择。此服务器与MCP兼容的客户端(如Claude Desktop)无缝集成,并需要 SERPAPI_KEY 和 CURRENCYFREAKS_API_KEY 为了操作。
演示视频
https://github.com/user-attachments/assets/0773b2ae-d49b-482f-a6fe-6173e387a4bf
工具
服务器提供了五个工具来协助旅行计划,每个工具都有详细的参数和返回值,以清楚起见:
search_hotels
- 函数:
search_hotels(query: str, check_in_date: str, check_out_date: str, adults: int = 2, currency: str = "USD", gl: str = "us", hl: str = "en", sort_by: Optional[str] = None, min_price: Optional[float] = None, max_price: Optional[float] = None, property_types: Optional[List[str]] = None, amenities: Optional[List[str]] = None, rating: Optional[str] = None, hotel_class: Optional[List[str]] = None, free_cancellation: Optional[bool] = None, special_offers: Optional[bool] = None, eco_certified: Optional[bool] = None, vacation_rentals: Optional[bool] = None, bedrooms: Optional[int] = None, bathrooms: Optional[int] = None, children: Optional[int] = None, children_ages: Optional[List[int]] = None, next_page_token: Optional[str] = None) -> Dict - 描述:使用SerpApi Google hotels API搜索指定位置的酒店或度假租赁,并支持自定义过滤器和分页。
- 参数:
query: str:要搜索的位置(例如“香港”)。必修的。check_in_date: str:入住日期采用YYYY-MM-DD格式(例如“2025-06-27”)。必修的。check_out_date: str:退房日期采用YYYY-MM-DD格式(例如“2025-06-28”)。必修的。adults: int:成人人数(默认值:2)。currency: str:价格的货币代码(例如“USD”、“EUR”)。默认值:“USD”。gl: str:本地化的国家代码(例如“我们”、“英国”)。默认值:“我们”。hl: str:结果的语言代码(例如“en”、“fr”)。默认值:“en”。sort_by: Optional[str]:排序选项:“LOWEST_PRICE”、“HIGHEST_RATING”、“MOST_REVIEWED”。默认值:无。min_price: Optional[float]:每晚最低价格。默认值:无。max_price: Optional[float]:每晚最高价格。默认值:无。property_types: Optional[List[str]]:要筛选的属性类型(例如,“BEACH_HOTELS”、“RESORTS”、“APARTMENT_HOTELS”)。默认值:无。amenities: Optional[List[str]]:要过滤的设施(例如,“FREE_WIFI”、“POOL”、“PET_FRIENDLY”)。默认值:无。rating: Optional[str]:最低评级:“THREE_POINT_FIVE_PLUS”、“FOUR_PLUS”、。默认值:无。hotel_class: Optional[List[str]]:酒店星级:“两星级”、“三星级”、“四星级”和“五星级”。默认值:无。free_cancellation: Optional[bool]:免费取消筛选。默认值:无。special_offers: Optional[bool]:筛选特价商品。默认值:无。eco_certified: Optional[bool]:生态认证房产过滤器。默认值:无。vacation_rentals: Optional[bool]:如果为真,请搜索度假租赁。默认值:无。bedrooms: Optional[int]:度假租赁的最低卧室数。默认值:无。bathrooms: Optional[int]:度假租赁的最低浴室。默认值:无。children: Optional[int]:儿童人数。默认值:无。children_ages: Optional[List[int]]:儿童年龄(1-17岁)。必须匹配children计数。默认值:无。next_page_token: Optional[str]:下一页结果的标记。默认值:无。
- 退货:一个JSON字典,包含:
properties:房产列表,包括类型、名称、描述、链接、GPS坐标、每晚房价、酒店等级、评级、评论、设施和房产代币等详细信息。serpapi_pagination:分页详细信息(当前范围,下一页标记)。- 如果失败:
{"error": str}(例如,“API请求失败: ").
find_hotel_detail
- 函数:
find_hotel_detail(query: str, property_token: str, check_in_date: str, check_out_date: str, adults: int = 2, currency: str = "USD", gl: str = "us", hl: str = "en", children: Optional[int] = None, children_ages: Optional[List[int]] = None) -> Dict - 描述:使用检索特定酒店或度假租赁的详细信息
property_token从search_hotels. - 参数:
query: str:原始搜索查询(例如“香港”)。必修的。property_token: str:来自的唯一令牌search_hotels。必填。check_in_date: str:入住日期采用YYYY-MM-DD格式(例如“2025-06-27”)。必修的。check_out_date: str:退房日期采用YYYY-MM-DD格式(例如“2025-06-28”)。必修的。adults: int:成人人数(默认值:2)。currency: str:价格的货币代码(例如“USD”)。默认值:“USD”。gl: str:本地化的国家代码(例如“我们”)。默认值:“我们”。hl: str:结果的语言代码(例如“en”)。默认值:“en”。children: Optional[int]:儿童人数。默认值:无。children_ages: Optional[List[int]]:儿童年龄(1-17岁)。必须匹配children计数。默认值:无。
- 退货:一个JSON字典,包含:
search_metadata:状态和创建时间。search_parameters:查询详细信息。hotel:姓名、描述、链接、地址、电话、GPS坐标、入住/退房时间、价格、交易、酒店等级、评级、评论、图片、设施。prices:源速率对列表。nearby_places:带有名称、距离和评级的兴趣点和餐厅。reviews_summary:总评价、星级细分和顶级类别。- 如果失败:
{"error": str}(例如,“API请求失败: ").
search_events
- 函数:
search_events(query: str, location: Optional[str] = None, gl: Optional[str] = None, hl: Optional[str] = None, start: Optional[int] = None, filters: Optional[List[str]] = None) -> Dict - 描述:使用SerpApi Google events API在指定位置搜索当前事件。
- 参数:
query: str:使用位置搜索查询(例如,“德克萨斯州奥斯汀的活动”)。必修的。location: Optional[str]:城市或地区(例如“德克萨斯州奥斯汀”)。默认值:无(使用查询位置)。gl: Optional[str]:本地化的国家代码(例如“我们”)。默认值:无。hl: Optional[str]:结果的语言代码(例如“en”)。默认值:无。start: Optional[int]:分页的结果偏移量(例如,第一页为0)。默认值:无。filters: Optional[List[str]]:事件过滤器(例如,“日期:今天”、“事件类型:虚拟事件”)。默认值:无。
- 退货:一个JSON字典,包含:
search_metadata:状态和创建时间。search_parameters:查询和引擎详细信息。events_results:事件列表,包括标题、日期、地址、链接、描述、门票信息、场地详细信息和缩略图。- 如果失败:
{"error": str}(例如,“API请求失败: ").
search_places
- 函数:
search_places(query: str, gl: Optional[str] = None, hl: Optional[str] = None) -> Dict - 描述:使用SerpApi Google top sights API搜索热门景点或地点(如景点、餐厅)。
- 参数:
query: str:使用地点类型和位置进行搜索查询(例如,“巴黎的顶级景点”)。必修的。gl: Optional[str]:本地化的国家代码(例如“我们”)。默认值:无。hl: Optional[str]:结果的语言代码(例如“en”)。默认值:无。
- 退货:一个JSON字典,包含:
search_metadata:状态和创建时间。search_parameters:查询和引擎详细信息。top_sights:带有标题、链接、描述、评级、评论、缩略图和显示更多链接的类别和景点。- 如果失败:
{"error": str}(例如,“未找到顶级景点”)。
get_latest_currency_rates
- 函数:
get_latest_currency_rates(base: str) -> Dict - 描述:使用CurrencyFreaks API检索最新的货币汇率。
- 参数:
base: str:基础货币代码(例如“USD”)。必修的。
- 退货:一个JSON字典,包含:
date:费率时间戳。base:基础货币代码。rates:货币代码及其汇率词典。- 如果失败:
{"error": str}(例如,“意外错误: ").
current_date
- 函数:
current_date() -> Dict - 描述:检索当前日期、时间和时区,以进行准确的时间敏感查询。
- 参数:没有。
- 退货:一个JSON字典,包含:
date:当前日期(例如“2025-06-30”)。time:当前时间(例如“17:18:00”)。timezone:当前时区(例如“EDT”)。- 如果失败:
{"error": str}(例如,“无法获取当前日期: ").
获取API密钥
要使用Travel Agent MCP服务器,您需要设置一个.env文件 SERPAPI_KEY 和 CURRENCYFREAKS_API_KEY.按照以下步骤获取:
- 塞拉皮基:
- 访问 https://serpapi.com/.
- 注册一个帐户并验证您的电子邮件。
- 导航到您的仪表板,在帐户设置下找到您的API密钥。
- 复制密钥以在配置中使用。
- 货币频率_ API_密钥:
- 访问 https://currencyfreaks.com/.
- 注册一个帐户。
- 在帐户设置或仪表板中查找您的API密钥。
- 复制密钥以在配置中使用。
手动配置
要在本地设置旅行社MCP服务器:
-
克隆存储库:
git clone <repository-url> -
设置UV: 安装UV(Python包和项目管理器)。按照官方UV文档了解安装说明。
-
配置MCP客户端: 将以下内容添加到您的MCP客户端配置(例如Claude Desktop)中,包括您的API密钥:
"travel-agent-mcp-server": { "command": "uv", "args": [ "--directory", "YOUR_CLONED_FOLDER", "run", "main.py" ], "env": { "SERPAPI_KEY": "your_serpapi_key", "CURRENCYFREAKS_API_KEY": "your_currencyfreaks_api_key" } }替换
YOUR_CLONED_FOLDER使用克隆存储库的路径,并替换your_serpapi_key和your_currencyfreaks_api_key使用从SerpApi和CurrencyFreaks获得的实际密钥。
远程MCP服务器配置
旅行社MCP服务器远程托管在 https://smithery.ai/server/@alan5543/旅行社mcp服务器。要使用它,请执行以下操作:
- 访问 https://smithery.ai 并登录或创建帐户。
- 转到服务器页面: https://smithery.ai/server/@alan5543/旅行社mcp服务器.
- 点击“添加到客户端”或按照Smithery.ai的集成说明进行操作。
- 更新您的MCP客户端(例如Claude Desktop)以使用远程服务器URL。有关配置远程MCP服务器的详细信息,请查看客户端的文档。
- 确保您的API密钥(
SERPAPI_KEY和CURRENCYFREAKS_API_KEY)通过Smithery.ai或按照平台文档中的说明在远程服务器上配置。 - 测试连接以确认服务器可访问且正常工作。