Tripadvisor MCP 服务器
一个 模型上下文协议 (MCP) 服务器,用于 Tripadvisor 内容 API。
该服务器通过标准化的 MCP 接口提供对 Tripadvisor 地点数据、评论和照片的访问,使 AI 助手能够搜索旅游目的地和体验。
功能
-
在 Tripadvisor 上搜索地点(酒店、餐厅、景点)
-
获取特定地点的详细信息
-
检索地点的评论和照片
-
基于坐标搜索附近地点
-
API 密钥认证
-
支持 Docker 容器化
-
为 AI 助手提供交互式工具
工具列表是可配置的,因此您可以选择要向 MCP 客户端提供的工具。
使用方法
-
从 Tripadvisor 开发者门户 获取您的 Tripadvisor 内容 API 密钥。
-
通过
.env文件或系统环境变量配置您的 Tripadvisor 内容 API 环境变量:
# 必需:Tripadvisor 内容 API 配置
TRIPADVISOR_API_KEY=your_api_key_here
- 将服务器配置添加到您的客户端配置文件中。例如,对于 Claude Desktop:
{
"mcpServers": {
"tripadvisor": {
"command": "uv",
"args": [
"--directory",
"<full path to tripadvisor-mcp directory>",
"run",
"src/tripadvisor_mcp/main.py"
],
"env": {
"TRIPADVISOR_API_KEY": "your_api_key_here"
}
}
}
}
注意:如果在 Claude Desktop 中看到
Error: spawn uv ENOENT错误,您可能需要指定uv的完整路径,或在配置中设置环境变量NO_UV=1。
Docker 使用方法
该项目包含 Docker 支持,便于部署和隔离。
构建 Docker 镜像
使用以下命令构建 Docker 镜像:
docker build -t tripadvisor-mcp-server .
使用 Docker 运行
您可以通过多种方式使用 Docker 运行服务器:
直接使用 docker run:
docker run -it --rm \
-e TRIPADVISOR_API_KEY=your_api_key_here \
tripadvisor-mcp-server
使用 docker-compose:
创建一个 .env 文件并添加您的 Tripadvisor API 密钥,然后运行:
docker-compose up
在 Claude Desktop 中使用 Docker 运行
要在 Claude Desktop 中使用容器化服务器,请更新配置以使用 Docker 和环境变量:
{
"mcpServers": {
"tripadvisor": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-e", "TRIPADVISOR_API_KEY",
"tripadvisor-mcp-server"
],
"env": {
"TRIPADVISOR_API_KEY": "your_api_key_here"
}
}
}
}
此配置通过使用 -e 标志将环境变量从 Claude Desktop 传递给 Docker 容器,只需提供变量名,并在 env 对象中提供实际值。
开发
欢迎贡献!如果您有任何建议或改进,请打开问题或提交拉取请求。
该项目使用 uv 管理依赖项。按照您的平台说明安装 uv:
curl -LsSf https://astral.sh/uv/install.sh | sh
然后,您可以创建虚拟环境并安装依赖项:
uv venv
source .venv/bin/activate # 在 Unix/macOS 上
.venv\Scripts\activate # 在 Windows 上
uv pip install -e .
项目结构
项目已使用 src 目录结构组织:
tripadvisor-mcp/
├── src/
│ └── tripadvisor_mcp/
│ ├── __init__.py # 包初始化
│ ├── server.py # MCP 服务器实现
│ └── main.py # 主应用逻辑
├── Dockerfile # Docker 配置
├── docker-compose.yml # Docker Compose 配置
├── .dockerignore # Docker 忽略文件
├── pyproject.toml # 项目配置
└── README.md # 此文件
测试
该项目包含一个测试套件,确保功能并帮助防止回归。
使用 pytest 运行测试:
# 安装开发依赖
uv pip install -e ".[dev]"
# 运行测试
pytest
# 运行带覆盖率报告的测试
pytest --cov=src --cov-report=term-missing
工具
| 工具 | 类别 | 描述 |
|---|---|---|
search_locations | 搜索 | 通过查询文本、类别和其他过滤器搜索地点 |
search_nearby_locations | 搜索 | 在特定坐标附近查找地点 |
get_location_details | 获取 | 获取地点的详细信息 |
get_location_reviews | 获取 | 检索地点的评论 |
get_location_photos | 获取 | 获取地点的照片 |
许可证
MIT