Flight Ticket MCP Server
Supports configuration through .env files, allowing users to easily customize server settings like transport protocol, host, port, and logging options.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Flight Ticket MCP Serverfind flights from New York to Los Angeles for next Friday"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Flight Ticket MCP Server
一个基于模型上下文协议(MCP)的航空机票查询服务器。该服务器为AI助手提供标准化的航班实时动态查询功能接口。
概述
Flight Ticket MCP Server 实现了供航空机票相关查询操作的工具和资源。它作为AI助手与航空服务系统之间的桥梁,专注于航班实时动态查询功能。
该服务器采用模块化架构,将核心功能、工具和实用程序分离,使其具有高度的可维护性和可扩展性。
Related MCP server: Travel MCP Server
功能特性
航班路线查询
根据出发地、目的地和出发日期查询可用航班
支持282个国内城市和机场代码
智能城市名称解析(支持城市名、机场代码、完整格式)
实时航班价格和航班时刻信息
航空公司和机型信息
航站楼和登机口信息
价格统计和航空公司分布
格式化输出结果
航班中转路线查询
根据出发地、中转地、目的地查询联程航班
支持自定义最小和最大中转时间(默认2-5小时)
智能筛选符合中转时间要求的航班组合
提供完整的两段航程信息
支持国内外航线中转查询
详细的中转时间计算和验证
天气信息查询
按经纬度查询:精确地理位置天气查询
按城市名查询:支持主要城市直接查询
支持历史、当前和未来天气数据
提供温度、湿度、风速、天气状况等详细信息
自动处理时区和日期范围
支持武汉、北京、上海等主要城市预设
航班信息查询
根据航班号查询详细的航班信息
包含航班状态、座位配置、价格信息
提供天气信息(出发地和目的地)
显示航班基本信息(航空公司、机型、航线类型)
详细的航站楼、登机口信息
实时动态状态(准时、延误、登机、飞行中等)
座位价格和可用性信息
附加服务信息(餐食、WiFi、娱乐系统等)
实时航班跟踪
航班实时状态查询:查询航班实时位置和状态
机场周边航班查询:查询指定机场周边30公里范围内的所有航班
区域航班查询:查询指定地理区域内的所有实时航班
批量航班跟踪:同时跟踪多个航班的实时状态
支持中国主要机场代码(PEK、PVG、CAN等70+机场)
提供详细的航班位置、速度、高度、状态信息
无需认证的公开API,实时更新航班数据
日期时间工具
获取当前系统日期(YYYY-MM-DD格式)
获取当前系统日期时间(YYYY-MM-DD HH:mm:ss格式)
为其他功能提供标准化的日期时间支持
自动处理时区和格式转换
数据处理与智能化
智能城市解析:支持多种城市输入格式(城市名、机场代码、完整格式)
参数验证:全面的输入参数验证和错误处理
结果格式化:统一的JSON格式输出,便于AI助手解析
错误恢复:完善的异常处理和降级机制
日志记录:详细的操作日志和调试信息
技术架构
核心模块 (Core)
航班数据模型和结构定义
机场、航空公司、航班、价格等数据模型
航班中转和座位配置数据结构
工具模块 (Tools)
航班搜索工具 (
flight_search_tools.py) - 航班路线查询功能航班中转工具 (
flight_transfer_tools.py) - 多段航程和中转查询航班信息工具 (
flight_info_tools.py) - 根据航班号查询详细信息实时航班跟踪工具 (
simple_opensky_tools.py) - 基于OpenSky Network的实时航班跟踪天气查询工具 (
weather_tools.py) - 基于经纬度和城市的天气查询日期时间工具 (
date_tools.py) - 日期时间获取和处理
实用工具 (Utils)
城市字典 (
cities_dict.py) - 282个城市和机场代码映射数据验证器 (
validators.py) - 输入参数验证和格式检查日期工具 (
date_utils.py) - 日期格式化和时区处理API客户端 (
api_client.py) - HTTP请求封装和错误处理
MCP集成层
FastMCP服务器 - 基于FastMCP框架的MCP协议实现
多传输协议支持 - stdio、SSE、HTTP传输协议
工具注册管理 - 统一的工具注册和调用机制
环境配置管理 - 灵活的配置和环境变量支持
支持的传输协议
本服务器支持三种传输协议:
sse - Server-Sent Events(默认,适用于Web应用)
stdio - 标准输入输出(适用于Claude Desktop)
streamable-http - 可流式HTTP(适用于HTTP客户端)
安装
前置要求
Python 3.11 或更高版本
pip 包管理器(或 uvx 工具)
方式一:从PyPI安装(推荐)
# 使用pip安装
pip install flight-ticket-mcp-server
# 或使用uvx直接运行(无需安装)
uvx flight-ticket-mcp-server
# 或使用uvx安装后运行
uvx --install flight-ticket-mcp-server方式二:本地开发安装
# 克隆或下载项目
cd FlightTicketMCP
# 安装依赖
pip install -r requirements.txt
# 或从本地源码安装
pip install -e .uvx 使用说明
uvx 是一个现代的Python包运行工具,可以直接运行PyPI包而无需先安装到系统环境:
# 安装uv(包含uvx工具)
pip install uv
# 直接运行MCP服务器(无需安装)
uvx flight-ticket-mcp-server
# 使用最新版本(推荐)
uvx flight-ticket-mcp-server@latest
# 带参数运行
uvx flight-ticket-mcp-server --help
# 指定版本运行
uvx flight-ticket-mcp-server==1.0.1
# 强制重新安装最新版本
uvx flight-ticket-mcp-server@latest --helpuvx 的优势:
🚀 无需污染全局Python环境
📦 自动管理虚拟环境
🔄 支持直接运行最新版本
🛡️ 隔离依赖,避免冲突
启动方式
1. 直接启动(默认SSE模式)
# 使用主启动文件(默认启动SSE模式,监听127.0.0.1:8000)
python flight_ticket_server.py
# 或者直接运行main.py
python main.py2. 调试模式启动
# 启用调试模式,会输出详细日志
set MCP_DEBUG=true
python flight_ticket_server.py
# Linux/macOS
export MCP_DEBUG=true
python flight_ticket_server.py3. 不同传输协议启动
SSE模式(默认)
# 直接启动,使用默认SSE配置(127.0.0.1:8000)
python flight_ticket_server.pystdio模式
# Windows
set MCP_TRANSPORT=stdio
python flight_ticket_server.py
# Linux/macOS
export MCP_TRANSPORT=stdio
python flight_ticket_server.pyHTTP模式
# 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.py4. 环境变量配置
使用 .env 文件(推荐)
项目提供了 .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文件 > 程序默认值
直接设置环境变量
如果不使用 .env 文件,也可以直接设置环境变量:
支持的环境变量:
变量名 | 描述 | 默认值 | 可选值 |
| 传输协议类型 |
|
|
| 服务器主机地址 |
| 任何有效IP地址 |
| 服务器端口 |
| 1-65535 |
| HTTP路径 |
| 任何有效路径 |
| SSE路径 |
| 任何有效路径 |
| 调试模式 |
|
|
| 日志级别 |
|
|
| 日志文件路径 |
| 任何有效路径 |
| 日志文件最大大小(MB) |
| 正整数 |
| 日志备份数量 |
| 正整数 |
| FastMCP日志级别 |
|
|
5. 启动验证
启动成功后,您会看到类似输出:
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/sse6. 日志文件
服务器启动后会在 logs/ 目录下生成以下日志文件:
flight_server.log- 一般日志(INFO级别及以上)flight_server_error.log- 错误日志(ERROR级别)flight_server_debug.log- 调试日志(仅在调试模式下生成)
7. 停止服务器
stdio模式: 按
Ctrl+C停止HTTP/SSE模式: 按
Ctrl+C或发送SIGTERM信号
使用方法
MCP客户端配置
方式一:使用uvx(推荐)
使用uvx运行MCP服务器,无需预先安装,简洁优雅:
{
"mcpServers": {
"flight-ticket-server": {
"command": "uvx",
"args": ["flight-ticket-mcp-server@latest"]
}
}
}uvx配置的优势:
🚀 无需预先安装包
📦 自动管理依赖和虚拟环境
🔄 始终运行最新版本
🛡️ 隔离环境,避免冲突
方式二:使用pip安装后运行
如果已通过pip安装,可以直接使用命令行工具:
{
"mcpServers": {
"flight-ticket-server": {
"command": "flight-ticket-mcp-server"
}
}
}方式三:本地开发版本
对于本地开发或自定义版本:
{
"mcpServers": {
"flight-ticket-server": {
"command": "python",
"args": ["D:\\FlightTicketMCP\\flight_ticket_server.py"],
"env": {
"MCP_TRANSPORT": "stdio"
}
}
}
}配置文件位置
将上述配置添加到Claude Desktop配置文件中:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.jsonLinux:
~/.config/claude/claude_desktop_config.json
应用配置
保存配置文件
重启Claude Desktop
在Claude Desktop中应该能看到flight-ticket-server连接成功
不同传输协议的配置
SSE模式(默认)
{
"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"
}
}
}
}stdio模式
{
"mcpServers": {
"flight-ticket-server": {
"command": "python",
"args": ["D:\\FlightTicketMCPServer\\flight_ticket_server.py"],
"env": {
"MCP_TRANSPORT": "stdio"
}
}
}
}HTTP模式
{
"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"
}
}
}
}MCP客户端测试
测试连接
配置完成后,可以通过以下方式测试MCP服务器连接:
Claude Desktop测试:
重启Claude Desktop
检查状态栏是否显示"flight-ticket-server"连接成功
在对话中尝试询问:"你现在有哪些工具可用?"
命令行测试:
# 使用uvx直接测试 uvx flight-ticket-mcp-server --help # 或使用已安装的包测试 flight-ticket-mcp-server --help # 测试模块化运行 python -m flight_ticket_mcp_server --helpMCP协议测试:
# 使用MCP inspector工具测试(如果安装了) npx @modelcontextprotocol/inspector uvx flight-ticket-mcp-server
验证工具注册
成功连接后,您的Claude应该能够访问以下工具:
✈️ searchFlightRoutes - 航班路线查询
📅 getCurrentDate - 获取当前日期
🔄 getTransferFlightsByThreePlace - 航班中转查询
🌤️ getWeatherByLocation - 经纬度天气查询
🏙️ getWeatherByCity - 城市天气查询
ℹ️ getFlightInfo - 航班信息查询
📡 getFlightStatus - 航班实时状态查询
🛫 getAirportFlights - 机场周边航班查询
🗺️ getFlightsInArea - 区域航班查询
📊 trackMultipleFlights - 批量航班跟踪
故障排除
如果连接失败,请检查:
uvx配置:
# 检查uv/uvx是否安装 uvx --version # 手动测试包运行 uvx flight-ticket-mcp-server@latest包版本:
# 强制使用最新版本 uvx flight-ticket-mcp-server@latest # 清除uvx缓存后重试 uv cache clean uvx flight-ticket-mcp-server@latest配置文件语法:
确保JSON格式正确
检查引号和括号匹配
验证配置文件路径
日志检查:
查看Claude Desktop的日志输出
检查服务器启动日志
示例操作
配置完成后,您可以要求Claude执行以下操作:
航班路线查询
"查询重庆到广州明天的航班"
"搜索上海到北京后天的所有航班"
"查看深圳飞成都2024年7月20日的航班价格"
"北京到三亚的航班有哪些选择"
"帮我找一下成都到杭州下周二的航班信息"
航班中转查询
"查询北京经香港到纽约的中转航班"
"搜索上海经迪拜到伦敦的联程航班,中转时间3-6小时"
"查找广州经新加坡到悉尼的航班,最短中转2小时"
"北京到洛杉矶,经东京中转的航班有哪些"
天气信息查询
"查询北京今天和明天的天气情况"
"上海的天气怎么样"
"查询纬度39.9042,经度116.4074的天气"(北京坐标)
"武汉本周的天气预报"
"查询重庆2024年7月15日到7月17日的天气"
航班信息查询
"查询航班CA1234的详细信息"
"MU5678这个航班现在什么状态"
"帮我查看航班HU7890的座位和价格信息"
"CZ3691航班的登机口和航站楼信息"
实时航班跟踪查询
"查询航班CCA1234的实时状态和位置"
"查看北京首都机场周边有哪些航班"
"查询北京地区(纬度39-41,经度115-118)内的所有航班"
"同时跟踪航班CCA1234、CSN5678、MU9876的实时状态"
"查看浦东机场附近正在飞行的航班"
"这架飞机现在在哪里?飞行高度和速度是多少?"
日期时间查询
"今天是几号"
"现在的日期和时间是什么"
"帮我获取当前日期"
综合查询示例
"我要从成都飞北京,明天出发,顺便告诉我北京的天气"
"查询上海到广州的航班,还有广州的天气情况"
"帮我规划从重庆到东京的行程,需要中转,并查看目的地天气"
"查询CA1234航班信息,以及出发地和目的地的天气"
"我的航班是MU5678,帮我查看航班状态和座位情况"
"查询CCA1234航班的实时位置,同时告诉我目的地天气"
"我想知道北京机场现在有哪些航班起飞,以及北京的天气状况"
API参考
航班路线查询
searchFlightRoutes(departure_city, destination_city, departure_date) # 根据出发地、目的地和日期查询可用航班输入参数:
departure_city: 出发城市名称或机场代码 (如: "重庆", "CKG", "重庆(CKG)")destination_city: 目的地城市名称或机场代码 (如: "广州", "CAN", "广州(CAN)")departure_date: 出发日期 (YYYY-MM-DD格式)
输出信息:
航班列表(包含航班号、航空公司、起飞到达时间、机场、航站楼、价格)
价格统计(最低价、最高价、平均价)
航空公司分布统计
格式化的查询结果输出
支持的城市:282个国内城市和机场
支持的城市格式:
城市名:上海、北京、重庆、广州等
机场代码:SHA、BJS、CKG、CAN等
完整格式:上海(SHA)、北京(BJS)等
航班中转路线查询
getTransferFlightsByThreePlace(from_place, transfer_place, to_place, min_transfer_time, max_transfer_time)输入参数:
from_place: 出发地城市名称或机场代码 (如: "北京", "BJS")transfer_place: 中转地城市名称或机场代码 (如: "香港", "HKG")to_place: 目的地城市名称或机场代码 (如: "纽约", "NYC")min_transfer_time: 最小中转时间(小时),默认2.0小时max_transfer_time: 最大中转时间(小时),默认5.0小时
输出信息:
符合条件的中转航班组合列表
第一段航程详细信息(出发地到中转地)
第二段航程详细信息(中转地到目的地)
实际中转时间计算
航班号、时间、机场等详细信息
天气信息查询
按经纬度查询
getWeatherByLocation(latitude, longitude, start_date, end_date)输入参数:
latitude: 纬度 (如: 39.9042)longitude: 经度 (如: 116.4074)start_date: 开始日期 (YYYY-MM-DD格式),可选end_date: 结束日期 (YYYY-MM-DD格式),可选
按城市名查询
getWeatherByCity(city_name, start_date, end_date)输入参数:
city_name: 城市名称 (如: "北京", "上海", "武汉")start_date: 开始日期 (YYYY-MM-DD格式),可选end_date: 结束日期 (YYYY-MM-DD格式),可选
输出信息:
天气状况描述
温度信息(最高温、最低温、当前温度)
湿度、风速、风向
降水概率和降水量
日出日落时间
紫外线指数
航班信息查询
getFlightInfo(flight_number) # 根据航班号查询详细航班信息输入参数:
flight_number: 航班号 (如: "CA1234", "MU5678", "CZ3691")
输出信息:
航班基本信息(航空公司、机型、航线类型)
航线信息(出发和到达机场、航站楼、登机口)
实时状态(准时、延误、登机、飞行中、已到达等)
座位配置(经济舱、商务舱、头等舱座位数)
价格信息(各舱位价格和可用性)
天气信息(出发地和目的地当前天气)
附加服务(值机柜台、行李额度、餐食、WiFi等)
支持的航班号格式:
中国国际航空:CA1234、CA8901
中国东方航空:MU5678、MU2468
中国南方航空:CZ3691、CZ1357
海南航空:HU7890
厦门航空:MF8123
春秋航空:9C8765
吉祥航空:HO1288
国外航空:UA858、NH955 等
实时航班跟踪
航班实时状态查询
getFlightStatus(flight_number, date=None) # 查询航班实时状态输入参数:
flight_number: 航班呼号 (如: "CCA1234", "CSN5678", "MU9876")date: 日期参数(OpenSky仅支持实时数据,此参数被忽略)
输出信息:
航班实时位置(经纬度、高度)
飞行速度(地面速度、垂直速度)
航班状态(飞行中、地面、滑行、静止)
航向角和高度信息
最后联系时间
起源国家信息
机场周边航班查询
getAirportFlights(airport_code, flight_type="departure") # 查询机场周边航班输入参数:
airport_code: 机场代码 (如: "PEK", "PVG", "CAN", "CTU", "XIY")flight_type: 航班类型(此参数仅为兼容性,OpenSky返回所有航班)
输出信息:
机场周边30公里范围内的所有航班
每架航班的实时位置和状态
航班呼号、速度、高度信息
机场坐标和搜索范围
支持的机场代码(70+个):
北京:PEK(首都)、PKX(大兴)
上海:PVG(浦东)、SHA(虹桥)
广州:CAN、深圳:SZX、成都:CTU/TFU
重庆:CKG、西安:XIY、昆明:KMG
杭州:HGH、南京:NKG、武汉:WUH
以及其他主要城市机场
区域航班查询
getFlightsInArea(min_lat, max_lat, min_lon, max_lon) # 查询指定区域内航班输入参数:
min_lat: 最小纬度 (如: 39.0)max_lat: 最大纬度 (如: 41.0)min_lon: 最小经度 (如: 115.0)max_lon: 最大经度 (如: 118.0)
输出信息:
指定地理区域内的所有实时航班
航班位置、速度、高度等详细信息
边界框坐标和查询范围
批量航班跟踪
trackMultipleFlights(flight_numbers, date=None) # 批量跟踪多个航班输入参数:
flight_numbers: 航班呼号列表 (如: ["CCA1234", "CSN5678", "MU9876"])date: 日期参数(OpenSky仅支持实时数据)
输出信息:
多个航班的实时状态汇总
每个航班的详细查询结果
成功查询数量统计
批量查询执行时间
注意事项:
OpenSky Network仅提供实时数据,不支持历史航班查询
API有频率限制,批量查询时会自动添加延时
部分航班可能无呼号信息或位置数据不完整
数据精度和可用性取决于ADS-B信号覆盖
日期时间工具
getCurrentDate() # 获取当前日期(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=true查看实时日志:
tail -f logs/flight_server.log
故障排除
常见问题
端口被占用
# 更改端口 set MCP_PORT=8001 python flight_ticket_server.py导入错误
# 确保在正确的目录 cd FlightTicketMCPServer/flight_ticket_server python flight_ticket_server.py权限问题
# 检查文件权限 ls -la flight_ticket_server.py chmod +x flight_ticket_server.py
日志分析
查看日志文件了解详细错误信息:
# 查看一般日志
cat logs/flight_server.log
# 查看错误日志
cat logs/flight_server_error.log
# 实时监控日志
tail -f logs/flight_server.log许可证
MIT License - 查看 LICENSE 文件获取详细信息。
贡献
欢迎提交Issue和Pull Request来改进这个项目。
支持
如果您遇到问题或有功能建议,请在GitHub上创建Issue。
Available Tools
10 toolsgetAirportFlightsC
机场周边航班查询 - 查询指定机场周边30公里范围内的所有航班。支持主要机场代码如PEK、PVG、CAN等
| Name | Required | Description | Default |
|---|---|---|---|
| airport_code | Yes | ||
| flight_type | No | departure |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the query scope (30km radius) and supported airport codes, but lacks critical details: whether this is a read-only operation, potential rate limits, authentication needs, error handling, or what the output format looks like. For a query tool with zero annotation coverage, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded: it states the core functionality in the first sentence and adds supporting details in the second. There's no wasted text, though it could be slightly more structured (e.g., bullet points for parameters).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (query tool with geographic filtering), lack of annotations, and no output schema, the description is incomplete. It misses behavioral traits (e.g., read-only status, rate limits), full parameter documentation, and output details. For a tool with two parameters and no structured support, this leaves significant gaps for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains 'airport_code' by listing examples (PEK, PVG, CAN) and implies 'flight_type' through context (departures/arrivals), but doesn't detail allowed values or defaults. The description adds some meaning beyond the bare schema, but doesn't fully document both parameters, resulting in a baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: '查询指定机场周边30公里范围内的所有航班' (query all flights within 30km of a specified airport). It specifies the verb (query) and resource (flights) with a geographic scope. However, it doesn't explicitly differentiate from sibling tools like 'getFlightsInArea' or 'getFlightInfo', which might have overlapping functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides minimal usage guidance: it mentions supporting major airport codes like PEK, PVG, CAN, but offers no explicit advice on when to use this tool versus alternatives (e.g., 'getFlightsInArea' or 'getFlightInfo'). There's no mention of prerequisites, exclusions, or comparative context with siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getCurrentDateA
获取当前日期 - 返回格式为 yyyy-MM-dd 的当前日期字符串
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the return format ('yyyy-MM-dd 字符串') which is valuable behavioral information. However, it doesn't mention timezone behavior, whether it's server-side or client-side, or any rate limits/authentication needs. It adds some context but leaves gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Perfectly concise - one sentence that states the purpose and key behavioral detail (return format). Zero wasted words, front-loaded with the core function. Every element earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 0-parameter tool that returns a date string, the description is nearly complete. It specifies the return format, which is crucial. Without an output schema, this information is valuable. The main gap is lack of timezone clarification, but otherwise sufficient for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters with 100% schema description coverage (empty schema). The description appropriately doesn't discuss parameters since none exist. It focuses correctly on the output behavior. Baseline for 0 parameters is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific verb ('获取当前日期' - get current date) and resource (current date), and distinguishes from all sibling tools which are flight/weather-related. It precisely defines what the tool does without being tautological.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context (when you need the current date in a specific format) but doesn't explicitly state when to use this tool versus alternatives. No sibling tools overlap in functionality, so no explicit differentiation is needed, but no guidance on prerequisites or limitations is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getFlightInfoB
航班信息查询 - 根据航班号查询详细的航班信息,包括航班状态、座位配置、价格、天气等
| Name | Required | Description | Default |
|---|---|---|---|
| flight_number | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions querying detailed information but doesn't specify whether this is a read-only operation, if it requires authentication, rate limits, error handling, or data freshness. For a tool with no annotation coverage, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose ('航班信息查询') and lists key data points. There's no wasted text, but it could be slightly more structured by separating usage context from data details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of flight data queries, no annotations, no output schema, and low schema coverage, the description is incomplete. It lacks details on return format (e.g., structured data vs. raw text), error cases, and behavioral traits like latency or data sources, making it inadequate for reliable agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, so the description must compensate. It adds meaning by specifying that the flight_number parameter is used to query detailed flight info, but it doesn't provide format details (e.g., airline code, number pattern) or examples. This offers basic context but falls short of fully compensating for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: query detailed flight information based on flight number, listing specific data points like status, seat configuration, price, and weather. It distinguishes from siblings like getFlightStatus (which might only return status) and getAirportFlights (which queries by airport). However, it doesn't explicitly differentiate from all siblings, such as trackMultipleFlights, which might handle multiple flights.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by stating '根据航班号查询' (query based on flight number), suggesting this tool is for single-flight queries. However, it doesn't explicitly state when to use this versus alternatives like getFlightsInArea (for area-based queries) or searchFlightRoutes (for route searches), nor does it mention prerequisites or exclusions, leaving some ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getFlightsInAreaC
区域航班查询 - 查询指定地理区域内的所有航班。参数为边界框坐标(最小纬度,最大纬度,最小经度,最大经度)
| Name | Required | Description | Default |
|---|---|---|---|
| max_lat | Yes | ||
| max_lon | Yes | ||
| min_lat | Yes | ||
| min_lon | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but provides minimal behavioral context. It states it's a query operation (implied read-only) and mentions bounding box coordinates, but doesn't disclose rate limits, authentication needs, response format, pagination, or what happens with invalid coordinates. For a tool with 4 parameters and no annotations, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with zero waste. The first sentence states purpose, the second explains parameters. It's appropriately sized and front-loaded with the core functionality. No redundant or verbose language.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 4 parameters, 0% schema coverage, no annotations, and no output schema, the description is incomplete. It covers basic purpose and parameter types but lacks critical details like return format, error conditions, coordinate system, and usage context. The agent would struggle to use this effectively without trial-and-error.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It mentions parameters are bounding box coordinates (最小纬度,最大纬度,最小经度,最大经度) which adds meaning beyond the schema's generic number types, but doesn't explain coordinate systems (e.g., WGS84), valid ranges, or ordering requirements. With 4 undocumented parameters, this partial information is inadequate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('查询' - query) and resource ('航班' - flights) with specific scope ('指定地理区域内' - within a specified geographic area). It distinguishes from siblings like getFlightInfo (specific flight) or getAirportFlights (airport-based), but doesn't explicitly name alternatives. The purpose is unambiguous but lacks explicit sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. The description mentions the parameter format but doesn't indicate scenarios where this tool is preferred over siblings like searchFlightRoutes or getAirportFlights. There's no mention of prerequisites, limitations, or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getFlightStatusA
航班实时状态查询 - 使用OpenSky Network查询航班实时位置和状态。flight_number为航班呼号(如CCA1234),date参数无效(仅支持实时数据)
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | ||
| flight_number | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that it only supports real-time data (date parameter is ineffective), which is a key behavioral trait. However, it lacks details on rate limits, error handling, or response format, leaving gaps in transparency for an API-based query tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, followed by specific parameter guidance in a single, efficient sentence. Every part adds value without redundancy, making it appropriately sized for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no annotations, no output schema, and low schema coverage, the description is moderately complete. It covers the real-time constraint and parameter semantics well, but for a query tool, it should ideally mention the type of data returned (e.g., position, altitude, speed) or potential limitations, leaving room for improvement.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It adds crucial meaning: it explains that 'flight_number' is the flight call sign (e.g., CCA1234) and that 'date' is ineffective since only real-time data is supported. This clarifies parameter usage beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('查询' meaning 'query' or 'retrieve') and resource ('航班实时状态' meaning 'flight real-time status'), and distinguishes it from siblings by specifying it uses OpenSky Network for real-time position and status, unlike other tools that might handle historical data or different queries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides clear context on when to use this tool: for real-time flight status queries using OpenSky Network, with a flight number as the key input. It implicitly distinguishes from siblings by focusing on single-flight real-time data, but does not explicitly name alternatives or state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getTransferFlightsByThreePlaceA
航班中转路线查询 - 根据出发地、中转地、目的地、最小转机时间、最大转机时间查询中转航班信息,最小转机时间默认为2小时,最大转机时间默认为5小时
| Name | Required | Description | Default |
|---|---|---|---|
| from_place | No | 北京 | |
| max_transfer_time | No | ||
| min_transfer_time | No | ||
| to_place | No | 纽约 | |
| transfer_place | No | 香港 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states what the tool does, not behavioral traits like whether this is a read-only operation, what format results return, if there are rate limits, authentication requirements, or error conditions. It mentions default values which is helpful but insufficient for full behavioral understanding.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured in a single sentence that front-loads the core purpose and lists all parameters with their defaults. Every element serves a purpose with minimal waste, though it could be slightly more polished in phrasing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 5 parameters with no schema descriptions, no annotations, and no output schema, the description does a reasonable job explaining the query purpose and parameters but lacks information about return format, result structure, error handling, or any constraints beyond the time defaults. It's adequate but has clear gaps for a tool with this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage and 5 parameters, the description adds significant value by listing all parameters (出发地, 中转地, 目的地, 最小转机时间, 最大转机时间) and explaining their purpose in the query context. It also provides default values for time parameters, which compensates well for the lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific verb ('查询' - query/search) and resource ('航班中转路线' - flight transfer routes), and distinguishes from siblings by specifying it's for transfer flights with three places (departure, transfer, destination) rather than direct flights, airport flights, or route searches.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context (when you need transfer flight information with specific transfer place and time constraints) but doesn't explicitly state when to use this vs alternatives like 'searchFlightRoutes' or 'getFlightInfo'. It mentions default values which provide some implicit guidance on typical usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getWeatherByCityB
城市天气查询 - 根据城市名查询天气信息。支持武汉、北京、上海等主要城市。如果不提供日期,默认查询今天和明天的天气数据
| Name | Required | Description | Default |
|---|---|---|---|
| city_name | Yes | ||
| end_date | No | ||
| start_date | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It reveals that the tool defaults to querying today and tomorrow's weather when dates aren't provided, which is useful behavioral context. However, it doesn't mention rate limits, authentication requirements, error conditions, or what happens with invalid city names. The description adds some value but leaves significant behavioral aspects undocumented.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately concise with two sentences that each serve a clear purpose: the first states the core functionality, the second provides important usage details about supported cities and default date behavior. There's no wasted text, and key information is front-loaded. The structure could be slightly improved with clearer separation of city support vs date behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a 3-parameter tool with no annotations and no output schema, the description provides basic but incomplete coverage. It explains the core purpose and some behavioral defaults, but doesn't cover parameter formats, return values, error conditions, or authentication requirements. For a weather query tool that likely returns structured data, the description should ideally mention what weather information is returned (temperature, conditions, etc.) since there's no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage for all 3 parameters, the description must compensate but only partially does so. It explains that 'city_name' is required and lists example cities, and mentions that date parameters are optional with default behavior when omitted. However, it doesn't explain the format or meaning of 'start_date' and 'end_date' parameters, leaving them largely undocumented. The description adds some semantic value but doesn't fully compensate for the schema coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: '城市天气查询 - 根据城市名查询天气信息' (City weather query - query weather information based on city name). It specifies the verb '查询' (query) and resource '天气信息' (weather information), making the purpose explicit. However, it doesn't explicitly differentiate from its sibling 'getWeatherByLocation' beyond mentioning city-based vs location-based queries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides some usage context: '支持武汉、北京、上海等主要城市' (supports major cities like Wuhan, Beijing, Shanghai) and '如果不提供日期,默认查询今天和明天的天气数据' (if no date is provided, defaults to querying today and tomorrow's weather data). This gives implied guidance on when to use it (for city-based queries with optional date ranges) but doesn't explicitly state when to choose this over 'getWeatherByLocation' or other alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getWeatherByLocationC
天气信息查询 - 根据经纬度查询天气信息,使用Open-Meteo API。如果不提供日期,默认查询今天和明天的天气数据
| Name | Required | Description | Default |
|---|---|---|---|
| end_date | No | ||
| latitude | Yes | ||
| longitude | Yes | ||
| start_date | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the data source (Open-Meteo API) and default date behavior, but doesn't describe important behavioral traits such as rate limits, authentication requirements, error conditions, response format, or what specific weather data is returned. For a tool with 4 parameters and no annotation coverage, this leaves significant gaps in understanding how the tool behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately concise with two sentences that each add value. The first sentence establishes the core purpose and method, while the second provides important default behavior information. There's no wasted language or redundancy, though it could be slightly more structured for clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (4 parameters, no output schema, no annotations), the description is insufficiently complete. It covers the basic purpose and default date behavior but misses critical information about parameter formats, return values, error handling, and differentiation from sibling tools. For a weather query tool that likely returns structured data, the lack of output description is particularly problematic.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage (none of the 4 parameters have descriptions in the schema), the description provides minimal parameter guidance. It only mentions that dates are optional and have default behavior, but doesn't explain what the latitude/longitude parameters represent (coordinate format, valid ranges), what date format to use, or the relationship between start_date and end_date. The description doesn't adequately compensate for the complete lack of schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: '天气信息查询 - 根据经纬度查询天气信息' (Weather information query - query weather information based on latitude and longitude). It specifies the verb (query) and resource (weather information) with the specific method (using latitude/longitude). However, it doesn't explicitly differentiate from its sibling 'getWeatherByCity' which likely queries by city name instead of coordinates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides some usage context: '如果不提供日期,默认查询今天和明天的天气数据' (If no date is provided, it defaults to querying today and tomorrow's weather data). This gives guidance on default behavior when parameters are omitted. However, it doesn't explicitly state when to use this tool versus the sibling 'getWeatherByCity' or other weather-related alternatives, nor does it mention any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchFlightRoutesC
航班路线查询 - 根据出发地、目的地和出发日期查询可用航班信息
| Name | Required | Description | Default |
|---|---|---|---|
| departure_city | Yes | ||
| departure_date | Yes | ||
| destination_city | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. While it indicates this is a query/search operation, it doesn't describe what '可用航班信息' (available flight information) includes, whether there are rate limits, authentication requirements, pagination behavior, or what happens when no flights are found. For a search tool with zero annotation coverage, this leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise - a single sentence that efficiently communicates the core functionality. Every word earns its place with no redundant information, making it front-loaded and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of flight search (3 required parameters, no output schema, no annotations), the description is inadequate. It doesn't explain what information is returned, how results are structured, whether there are sorting/filtering options, or error conditions. For a search tool with multiple sibling alternatives, more contextual information is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 0%, so the description must compensate. It mentions the three parameters (departure city, destination city, departure date) but provides no additional semantic context beyond their names. No format requirements (e.g., date format, city naming conventions), examples, or constraints are given, leaving parameters largely undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('查询' - query/search) and resources ('航班信息' - flight information), and identifies the key parameters (departure city, destination city, departure date). However, it doesn't explicitly distinguish this tool from sibling tools like 'getFlightInfo' or 'getTransferFlightsByThreePlace', which appear to be related flight search tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention any prerequisites, exclusions, or comparisons with sibling tools like 'getFlightInfo' or 'getTransferFlightsByThreePlace', leaving the agent with no context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trackMultipleFlightsC
批量航班跟踪 - 同时查询多个航班的实时状态。flight_numbers为航班呼号列表,如['CCA1234','CSN5678']
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | ||
| flight_numbers | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. It mentions '实时状态' (real-time status) which implies live data retrieval, but doesn't address critical aspects like rate limits, authentication needs, data freshness, error handling, or whether this is a read-only operation. For a tool with no annotations, this leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately concise with two sentences: one stating the purpose and one explaining the key parameter. There's no wasted text, and the example is helpful. It could be slightly improved by front-loading the purpose more clearly, but overall it's efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and 0% schema description coverage, the description is incomplete. It covers the basic purpose and one parameter but misses the optional 'date' parameter, behavioral traits (rate limits, auth, etc.), and output format. For a tool with 2 parameters and real-time data implications, this leaves too many gaps for effective agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains 'flight_numbers' as a list of flight call signs with an example ['CCA1234','CSN5678'], which adds meaningful context beyond the bare schema. However, it doesn't mention the optional 'date' parameter at all, leaving half the parameters undocumented. The description provides partial but incomplete parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: '批量航班跟踪 - 同时查询多个航班的实时状态' (Batch flight tracking - query real-time status of multiple flights simultaneously). It specifies the verb (query/track), resource (flights), and scope (multiple/batch). However, it doesn't explicitly differentiate from siblings like 'getFlightStatus' which might handle single flights.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With siblings like 'getFlightStatus' (likely for single flights) and 'getAirportFlights' (airport-specific), there's clear potential for overlap, but the description offers no explicit when/when-not instructions or alternative recommendations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
10 tool updates
v1.0.0- First observed
getAirportFlights - First observed
getCurrentDate - First observed
getFlightInfo - First observed
getFlightsInArea - First observed
getFlightStatus - First observed
getTransferFlightsByThreePlace - First observed
getWeatherByCity - First observed
getWeatherByLocation - First observed
searchFlightRoutes - First observed
trackMultipleFlights
TDQS
Most tools have distinct purposes, such as getFlightInfo for detailed flight data and getFlightStatus for real-time tracking. However, getAirportFlights and getFlightsInArea could be confused as both query flights in a geographic area, though one uses airport codes and the other uses bounding boxes. The weather tools (getWeatherByCity and getWeatherByLocation) also overlap but are differentiated by input type.
Tool names generally follow a consistent verb_noun pattern with 'get' or 'search' prefixes, such as getFlightInfo and searchFlightRoutes. Minor deviations include trackMultipleFlights using 'track' instead of 'get', and getTransferFlightsByThreePlace having a verbose name that breaks the pattern slightly, but overall the naming is readable and predictable.
With 10 tools, the count is well-scoped for a flight ticket server, covering core operations like flight queries, status tracking, weather checks, and route searches. Each tool serves a specific function without redundancy, making the set manageable and appropriate for the domain.
The tool surface covers essential flight-related operations, including search, status, weather, and transfers, with no major gaps for typical agent workflows. Minor gaps might include booking or payment tools, but these are outside the scope of query-focused operations, and agents can work around this with the provided tools for information retrieval.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Flight search MCP server providing search, pagination, and itinerary details for AI assistants.
Search and compare flight offers through a cache-aware Streamable HTTP MCP server for AI agents.
Give AI assistants access to real-time data. Search the web, compare flights, find hotels, and more.
The Turkish Airlines MCP server enables AI models to securely access live airline data and services, designed for developers and power users to build and test AI-driven travel solutions. It provides 13 specialized tools covering flight information (real-time status, schedules, availability), booking management (PNR details, check-in, baggage allowances), and personalized services (Miles&Smiles profiles, flight history, promotions). The server uses OAuth 2.0 authentication and is deployed on cloud-native infrastructure with enterprise-level security.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceA comprehensive airline booking operations server that enables users to search flights, create bookings, check-in, select seats, track flights, and manage loyalty programs through natural language interactions.1-
- AlicenseNot gradedqualityBmaintenanceA comprehensive travel aggregation server that enables AI assistants to search for flights and hotels, track flight statuses in real-time, and retrieve airport information. It integrates with Amadeus and AviationStack APIs to provide data on pricing, schedules, and travel routes through natural language.4MIT
- AlicenseAqualityCmaintenanceMCP server giving AI agents access to real-time aviation data — live flight tracking, airport weather, airline and airport information.103MIT
- AlicenseAqualityCmaintenanceProvides real-time and historical flight data via the Flightradar24 API, enabling AI assistants to track aircraft positions, flight summaries, and airport details.159425MIT
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/xiaonie7/FlightTicketMCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server