使用说明
航班搜索MCP服务器
提供航班搜索和机场信息功能的模型上下文协议(MCP)服务器。该服务器可以与Windsurf/Cascade等MCP兼容客户端集成,通过自然语言查询提供航班数据。
特性
- 机场信息:使用IATA代码获取机场的详细信息
- 航班搜索:搜索机场之间的航班
- 最便宜的路线:查找两个目的地之间最便宜的航班选项
- 数据资源:访问结构化的机场和航班数据
项目结构
local-mcp-server/
├── server.py # Main MCP server (FastMCP package)
├── server_mcp.py # Alternative server (official MCP SDK)
├── data/
│ ├── airports.json # Airport data
│ └── flights.json # Flight data
└── .venv/ # Python virtual environment
设置
1.先决条件
- Python 3.8或更高版本
- 虚拟环境(推荐)
2.安装
-
克隆或导航到项目目录:
cd c:\faizul-personal\local-mcp-server -
创建并激活虚拟环境:
python -m venv .venv .venv\Scripts\activate # Windows -
安装依赖项:
pip install fastmcp # OR for the official SDK version: pip install mcp
3.数据配置
服务器从JSON文件中加载数据 data/ 目录:
data/airports.json:带有IATA代码的机场信息data/flights.json:有定价的航线
如果这些文件不存在,服务器将使用内置的默认数据。
可用工具
1. airport_info(code: str)
使用IATA代码获取有关机场的信息。
例子:
Input: "DHK"
Output: {
"name": "BGD DHK",
"city": "Dhaka",
"country": "Bangladesh",
"iata": "DHK",
"timezone": "Asia/Dhaka"
}
2. search_flights(origin: str, destination: str)
查找两个机场之间的所有航班。
例子:
Input: origin="DHK", destination="KTM"
Output: [
{
"number": "FB101",
"origin": "DHK",
"destination": "KTM",
"price": 120,
"currency": "USD"
}
]
3. cheapest_route(origin: str, destination: str)
找到两个机场之间最便宜的航班。
例子:
Input: origin="DAC", destination="KTM"
Output: {
"number": "FB102",
"origin": "DAC",
"destination": "KTM",
"price": 115,
"currency": "USD"
}
可用资源
file://airports:简化的机场数据(仅名称和城市)flight://airports:完整的机场信息flight://routes:所有航班数据
风帆/瀑布配置
MCP客户端配置
要将此服务器与Windsurf一起使用,请将以下配置添加到MCP配置文件中:
地点: C:\Users\[username]\.codeium\windsurf\mcp_config.json
{
"mcpServers": {
"flight-server": {
"command": "C:\\faizul-personal\\local-mcp-server\\.venv\\Scripts\\python.exe",
"args": ["C:\\faizul-personal\\local-mcp-server\\server.py"]
}
}
}
替代配置(官方SDK)
如果您更喜欢使用官方MCP SDK版本(server_mcp.py):
{
"mcpServers": {
"flight-server": {
"command": "C:\\faizul-personal\\local-mcp-server\\.venv\\Scripts\\python.exe",
"args": ["C:\\faizul-personal\\local-mcp-server\\server_mcp.py"]
}
}
}
使用示例
配置Windsurf后,您可以使用自然语言查询:
- “给我DHK的机场信息”
- “查找从DHK到KTM的航班”
- “从DAC到DEL最便宜的路线是什么?”
- “显示特里布万国际机场的信息”
样品数据
机场
- DHK:孟加拉国达卡·全球之声
- 数模转换器孟加拉国达卡Hazrat Shahjalal国际机场
- KTM尼泊尔加德满都特里布万国际机场
- 删除:印度德里英迪拉·甘地国际机场
- 罪:新加坡樟宜机场,新加坡
示例航班
- FB101:DHK→ KTM(120美元)
- FB102:DAC→ KTM(115美元)
- FB201:DAC→ 德尔(90美元)
- FB202:德尔→ DAC(95美元)
- FB301:罪→ 德尔(210美元)
发展
独立运行服务器
# Activate virtual environment
.venv\Scripts\activate
# Run the server
python server.py
服务器在STDIO传输上运行,使其与MCP客户端兼容。
添加新数据
-
添加机场 向
data/airports.json:{ "CODE": { "name": "Airport Name", "city": "City Name", "country": "Country", "iata": "CODE", "timezone": "Timezone" } } -
添加航班 向
data/flights.json:{ "number": "FLIGHT_NUMBER", "origin": "ORIGIN_CODE", "destination": "DEST_CODE", "price": 100, "currency": "USD" }
故障排除
常见问题
- 服务器未启动:确保Python路径和虚拟环境在中正确
mcp_config.json - 未返回数据:检查一下
data/目录存在并且包含有效的JSON文件 - 权限错误:确保虚拟环境和Python可执行文件具有适当的权限
调试
服务器包括错误处理功能,如果JSON文件丢失或损坏,将回退到默认数据。
许可证
该项目用于教育和示范目的。
贡献
您可以使用其他机场、航班或新的MCP工具和资源来扩展服务器。