opensky-mcp
使用OpenSky Network API的MCP服务器,用于实时飞机追踪。
它的功能
为AI助手(Claude Code)提供查询实时航班数据的工具:
- 地理区域内飞机
- 通过呼号追踪特定航班
- 机场到达/出发(信息)
- 实时位置、高度、速度
工具
1. get_aircraft_in_region
查询边界框内的所有飞机。
示例:
Get aircraft over Northern Virginia:
- lat_min: 38.8
- lat_max: 39.0
- lon_min: -77.5
- lon_max: -77.02. get_aircraft_by_callsign
追踪特定航班。
示例:
Track United flight 123:
- callsign: UAL1233. get_all_aircraft
获取全球范围内所有被追踪的飞机(限制结果数量)。
4. get_arrivals
在特定时间窗口内抵达机场的航班。
示例:
Reagan National arrivals in last hour:
- icao: KDCA
- begin:
- end: 5. get_departures
在特定时间窗内从某机场出发的航班。
安装
1. 克隆仓库
git clone https://github.com/tyleryouk/opensky-mcp-public.git
cd opensky-mcp-public2. 创建虚拟环境并安装依赖项
python3 -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
pip install -r requirements.txt3. 测试服务器
# Make executable (Unix/Linux/Mac)
chmod +x server.py
# Test run (should start without errors)
python3 server.py
# Press Ctrl+C to stop配置
为克劳德·科德(或根据具体语境可译为“致克劳德·科德”、“关于克劳德·科德”等)
在您的Claude代码MCP设置中添加:
{
"mcpServers": {
"opensky-mcp": {
"command": "/path/to/opensky-mcp-public/.venv/bin/python",
"args": ["/path/to/opensky-mcp-public/server.py"]
}
}
}重要提示: 使用虚拟环境Python解释器的完整路径。
然后重启Claude Code。
在Claude代码中的使用
配置完成后,可通过自然语言使用:
"Show me all aircraft over Washington DC"
→ Calls get_aircraft_in_region with DC bounding box
"Track United 456"
→ Calls get_aircraft_by_callsign技术细节
API OpenSky Network REST API(https://opensky-network.org)
- 匿名访问(无需认证)
- 速率限制:匿名用户每天约100次请求
栈(Stack):
- Python 3.11+
- aiohttp 用于异步 HTTP 请求
- MCP SDK(Anthropic)
特点:
- 带超时处理(10秒)的异步API调用
- 网络故障的错误处理
- 数据转换(原始状态向量 → 可读格式)
- 单位换算(米→英尺,米/秒→节)
数据格式
OpenSky通过飞机遥测数据返回“状态向量”:
- 位置(纬度/经度)
- 海拔高度(气压高度 + 几何高度)
- 速度(地面速度)
- 航向(真实航迹)
- 垂直速度(爬升/下降)
- 应答器数据(ICAO24,应答码,呼号)
常见机场ICAO代码
DMV区域:
- KDCA - 雷根国家机场
- KIAD - 杜勒斯国际机场
- KBWI - 巴尔的摩/华盛顿
美国主要(方面/观点/政策等,具体含义需根据上下文确定):
- KJFK - 纽约肯尼迪国际机场(JFK)
- KLAX - 洛杉矶国际机场(LAX)
- KORD - 芝加哥奥黑尔机场
- KATL - 亚特兰大
- KDFW - 达拉斯/沃斯堡
局限性
- 匿名API访问 = 限制速率(避免高频轮询)
- 历史数据需要经过认证的访问权限(尚未实现)
- 大的边界框会返回大量数据(请使用较小的区域)
- 一些飞机(军用、私人飞机)不广播呼号
示例查询
弗吉尼亚北部(华盛顿特区地区):
{
"lat_min": 38.8,
"lat_max": 39.0,
"lon_min": -77.5,
"lon_max": -77.0
}杜勒斯地区:
{
"lat_min": 38.9,
"lat_max": 39.0,
"lon_min": -77.5,
"lon_max": -77.4
}故障排除
服务器无法启动:
- 检查Python版本:
python3 --version(需要3.11及以上版本) - 安装依赖项:
pip install -r requirements.txt
在Claude代码中未显示任何工具:
- 检查MCP配置路径是否正确
- 在配置中使用完整的绝对路径
- 完全重启Claude代码
API错误:
- OpenSky 对匿名用户设有限速
- 在请求之间等待几分钟
- 较大的边界框 = 更慢的响应速度
许可证
MIT 许可证 - 详见 LICENSE 文件
作者
泰勒·尤克 -
