Flight Ticket MCP Server是一个基于模型上下文协议(MCP)的航空机票查询服务器,它为AI助手提供标准化的航班实时动态查询功能接口,有效连接AI助手与航空服务系统。
# 克隆或下载项目
cd FlightTicketMCPServer
# 安装依赖
pip install -r requirements.txt
# 使用主启动文件(默认启动SSE模式,监听127.0.0.1:8000)
python flight_ticket_server.py
# 或者直接运行main.py
python main.py
# 启用调试模式,会输出详细日志
set MCP_DEBUG=true
python flight_ticket_server.py
# Linux/macOS
export MCP_DEBUG=true
python flight_ticket_server.py
# 直接启动,使用默认SSE配置(127.0.0.1:8000)
python flight_ticket_server.py
# Windows
set MCP_TRANSPORT=stdio
python flight_ticket_server.py
# Linux/macOS
export MCP_TRANSPORT=stdio
python flight_ticket_server.py
# Windows
set MCP_TRANSPORT=streamable-http
set MCP_HOST=127.0.0.1
set MCP_PORT=8000
python flight_ticket_server.py
# Linux/macOS
export MCP_TRANSPORT=streamable-http
export MCP_HOST=127.0.0.1
export MCP_PORT=8000
python flight_ticket_server.py
项目提供了 .env.example 文件作为配置模板:
# 复制配置模板
cp .env.example .env
.env 文件,根据需要修改配置值:# MCP服务器配置
MCP_TRANSPORT=sse
MCP_HOST=127.0.0.1
MCP_PORT=8000
MCP_SSE_PATH=/sse
# 日志配置
LOG_LEVEL=INFO
LOG_FILE_PATH=logs/flight_server.log
LOG_MAX_SIZE=10
LOG_BACKUP_COUNT=5
# 开发配置
MCP_DEBUG=false
.env 文件包含敏感配置,不会被提交到版本控制.env.example 是安全的模板文件,可以提交到Git如果不使用 .env 文件,也可以直接设置环境变量:
支持的环境变量:
| 变量名 | 描述 | 默认值 | 可选值 |
|---|---|---|---|
MCP_TRANSPORT |
传输协议类型 | sse |
stdio, sse, streamable-http |
MCP_HOST |
服务器主机地址 | 127.0.0.1 |
任何有效IP地址 |
MCP_PORT |
服务器端口 | 8000 |
1 - 65535 |
MCP_PATH |
HTTP路径 | /mcp |
任何有效路径 |
MCP_SSE_PATH |
SSE路径 | /sse |
任何有效路径 |
MCP_DEBUG |
调试模式 | false |
true, false, 1, 0 |
LOG_LEVEL |
日志级别 | INFO |
DEBUG, INFO, WARNING, ERROR, CRITICAL |
LOG_FILE_PATH |
日志文件路径 | logs/flight_server.log |
任何有效路径 |
LOG_MAX_SIZE |
日志文件最大大小(MB) | 10 |
正整数 |
LOG_BACKUP_COUNT |
日志备份数量 | 5 |
正整数 |
FASTMCP_LOG_LEVEL |
FastMCP日志级别 | INFO |
DEBUG, INFO, WARNING, ERROR |
启动成功后,您会看到类似输出:
Transport: sse
Logging enabled - logs will be saved to logs/ directory
Flight Ticket MCP Server starting...
Transport: sse
All tools registered successfully
Starting SSE transport on 127.0.0.1:8000/sse
服务器启动后会在 logs/ 目录下生成以下日志文件:
flight_server.log - 一般日志(INFO级别及以上)flight_server_error.log - 错误日志(ERROR级别)flight_server_debug.log - 调试日志(仅在调试模式下生成)Ctrl+C 停止Ctrl+C 或发送SIGTERM信号# 克隆或下载项目
cd FlightTicketMCPServer
# 安装依赖
pip install -r requirements.txt
{
"mcpServers": {
"flight-ticket-server": {
"command": "python",
"args": ["D:\\FlightTicketMCPServer\\flight_ticket_server.py"],
"env": {
"MCP_TRANSPORT": "sse",
"MCP_HOST": "127.0.0.1",
"MCP_PORT": "8000"
}
}
}
}
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.json{
"mcpServers": {
"flight-ticket-server": {
"command": "python",
"args": ["D:\\FlightTicketMCPServer\\flight_ticket_server.py"],
"env": {
"MCP_TRANSPORT": "sse",
"MCP_HOST": "127.0.0.1",
"MCP_PORT": "8000",
"MCP_SSE_PATH": "/sse"
}
}
}
}
{
"mcpServers": {
"flight-ticket-server": {
"command": "python",
"args": ["D:\\FlightTicketMCPServer\\flight_ticket_server.py"],
"env": {
"MCP_TRANSPORT": "stdio"
}
}
}
}
{
"mcpServers": {
"flight-ticket-server": {
"command": "python",
"args": ["D:\\FlightTicketMCPServer\\flight_ticket_server.py"],
"env": {
"MCP_TRANSPORT": "streamable-http",
"MCP_HOST": "127.0.0.1",
"MCP_PORT": "8000",
"MCP_PATH": "/mcp"
}
}
}
}
配置完成后,您可以要求Claude执行以下操作:
searchFlightsByNumber(fnum, date) # 根据航班号和日期查询航班详细信息和实时动态
输入参数:
fnum: 航班号 (如: CA3401)date: 航班起飞日期 (YYYY - MM - DD格式)输出信息:
searchFlightRoutes(departure_city, destination_city, departure_date) # 根据出发地、目的地和日期查询可用航班
输入参数:
departure_city: 出发城市名称或机场代码 (如: "重庆", "CKG", "重庆(CKG)")destination_city: 目的地城市名称或机场代码 (如: "广州", "CAN", "广州(CAN)")departure_date: 出发日期 (YYYY - MM - DD格式)输出信息:
支持的城市格式:
本服务器支持三种传输协议:
FlightTicketMCPServer/
├── flight_ticket_server/
│ ├── core/ # 核心业务逻辑
│ ├── tools/ # MCP工具实现
│ ├── utils/ # 实用工具函数
│ └── main.py # 服务器入口点
├── office_flight_ticket_server/ # 额外模块
├── tests/ # 测试文件
├── logs/ # 日志文件目录
├── pyproject.toml # 项目配置
├── requirements.txt # 项目依赖
├── flight_ticket_server.py # 主启动文件
├── mcp-config.json # MCP配置示例
└── README.md # 项目文档
# 运行所有测试
python -m pytest tests/ -v
# 运行基本功能测试
python -m pytest tests/test_basic.py -v
# 运行特定测试
python -m pytest tests/test_basic.py::TestFlightSearch::test_searchFlightsByNumber -v
logs/ 目录MCP_DEBUG=truetail -f logs/flight_server.logMIT License - 查看 LICENSE 文件获取详细信息。
欢迎提交Issue和Pull Request来改进这个项目。
如果您遇到问题或有功能建议,请在GitHub上创建Issue。