旅行服务器MCP
模块化MCP服务器,用于使用Duffel API搜索航班。专为可扩展性、可维护性和清晰度而构建。
分步教程
如果您想了解如何从头开始创建此服务器的指导性演练,请查看 分步教程.
特性
- 使用Duffel API搜索任意两个机场之间的航班
- 具有清晰关注点分离的细粒度、记录良好的代码库
- 每次搜索都会返回详细的调试日志记录
- 易于扩展以适应新的工具、模型或提供商
项目结构
travelserver/
├── main.py # Entrypoint: sets up and runs the MCP server
├── duffel_client.py # Duffel API HTTP logic (search_flights)
├── models/
│ ├── __init__.py
│ ├── flight_search_params.py
│ └── flight_offer.py
├── tools/
│ └── flight_tools.py # MCP tool for flight search
├── .env # (not committed) Your Duffel API key
├── pyproject.toml # Project dependencies
└── ...设置
- 克隆存储库
git clone https://github.com/kidehen/mcp-travel-server.git
cd mcp-travel-server- 使用uv创建和激活虚拟环境:
uv venv
source .venv/bin/activate- 使用uv安装依赖项:
uv pip install -e .- 创建一个
.env项目根目录中的文件:
DUFFEL_ACCESS_TOKEN=your_duffel_api_key_here运行服务器
使用以下命令运行服务器 紫外线:
uv run main.pyClaude桌面MCP服务器配置
{
"mcpServers": {
"travel-server": {
"command": "/opt/homebrew/bin/uv",
"args": [
"--directory",
"/Users/jidehen/Documents/Projects/mcp-servers/travelserver",
"run",
"main.py"
]
}
}
}用法
- MCP服务器公开了一个
get_flights搜索航班的工具。 - 您可以将此服务器连接到兼容MCP的客户端(例如Claude Desktop)。
- 当用户询问航班时,客户将致电
get_flights工具具有适当的参数。 - 服务器返回航班报价列表和详细的调试日志以进行故障排除。
环境变量
DUFFEL_ACCESS_TOKEN:您的Duffel API密钥(必需,设置在.env)
扩展项目
- 将新模型添加到
models/(每个文件一个) - 添加新工具
tools/ - 将新的API集成添加到它们自己的目录(例如。,
duffel/,amadeus/) - 保持配置
config/根据需要
常见问题解答
- MCP客户如何知道如何与Duffel API互动?
> MCP客户从不直接与Duffel交谈。它调用这个MCP服务器的工具,该工具在内部处理所有Duffel API逻辑并将结果返回给客户端。
- MCP客户端如何知道触发此服务器进行航班查询?
> MCP客户端发现所有可用的MCP服务器及其工具。当用户询问航班时,客户端使用自然语言理解将用户的意图与 get_flights 工具,然后调用它。
许可证
麻省理工学院
可用工具
获取航班
搜索两个地点之间的可用航班。
参数:
origin:始发机场代码(例如“LHR”)destination:目的地机场代码(例如“JFK”)departure_date:YYYY-MM-DD格式的出发日期return_date(可选):以YYYY-MM-DD格式返回日期passengers(可选):成年乘客人数(默认值:1)cabin_class(可选):客舱级别(经济舱、商务舱、头等舱)(默认:经济舱)
示例响应:
[
{
"airline": "British Airways",
"flight_number": "BA178",
"departure_time": "2024-03-20T10:00:00",
"arrival_time": "2024-03-20T13:00:00",
"price": 299.99,
"currency": "USD",
"stops": 0
}
]