mcpField
S
SkyGlance — What's Flying Above You

SkyGlance — What's Flying Above You

本地服务
github.com地图与出行04 周前更新

关于 SkyGlance — What's Flying Above You

SkyGlance 是一个用于查询实时飞机位置、身份和航线的 MCP 服务,也可记录本地目击历史。它根据仰角和方位提供观测指引,并将查询位置坐标取整后发送给数据源。

主要功能

  1. 01查询附近及全球航班
  2. 02识别机型、运营方与航线
  3. 03按仰角和方位指引观测
  4. 04记录本地飞机目击历史
  5. 05查询机场活动与机队
  6. 06发送前将位置坐标取整

适用场景

  1. 01查询头顶飞机及即将经过的航班
  2. 02识别看到的飞机并查看航线
  3. 03搜索指定机型或航空公司的飞机
  4. 04查看个人目击记录和统计

MCP 相关

MCP 服务向客户端提供飞机位置、识别、航线、机场活动和目击历史等工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"darshjoshi-skyglance": {
"command": "uvx",
"args": [
"skyglance"
],
"env": {
"SKYGLANCE_HOME_LAT": "<SKYGLANCE_HOME_LAT>",
"SKYGLANCE_HOME_LON": "<SKYGLANCE_HOME_LON>",
"SKYGLANCE_POLL": "<SKYGLANCE_POLL>"
}
}
}
}
启动命令uvx skyglance
需要配置的环境变量
SKYGLANCE_HOME_LATYour latitude. Enables background sighting history.
SKYGLANCE_HOME_LONYour longitude. Enables background sighting history.
SKYGLANCE_POLLSet to 0 to disable background history recording.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypiskyglance0.2.1

工具

24

收录的工具列表 · 更新于 2 周前

参数类型必填说明
latany否
lonany否
limitinteger否
radius_nminteger否

详细介绍

SkyGlance

询问 Claude 你上空有什么飞机。
实时位置、真实飞机身份、航线、照片,以及所有飞过这里的飞机记录。

PyPI 许可证:MIT Python 3.10+ 兼容 MCP


快速开始

claude mcp add skyglance -- uvx --from skyglance skyglance

然后询问 Claude:“现在有什么飞机正在我上空飞过?”

需要 uv。其安装指南涵盖所有平台。无需 API 密钥——这里的所有数据源都是免费的。

设置你的位置,这样就不必反复说明,也能让 SkyGlance 建立目击记录:

claude mcp add skyglance \
  -e SKYGLANCE_HOME_LAT=40.71 -e SKYGLANCE_HOME_LON=-74.01 \
  -- uvx --from skyglance skyglance
安装为 Claude Code 插件

该插件将服务与 sky 技能一同提供,教会 Claude 如何解读仰角,以及如何向从未观测过飞机的人介绍飞机。

/plugin marketplace add darshjoshi/skyglance-mcp
/plugin install skyglance@skyglance
SkyGlance Spotter:Claude 目录版

仓库根目录本身也是一个插件,名为 SkyGlance Spotter(skyglance-spotter),专为 Anthropic 的 Claude 插件目录打造。它使用本仓库源码运行同一个服务,区别有以下四点:

  • 不包含两个工具。 不提供 military_aircraft 和 privacy_blocked_aircraft,且 search_aircraft 没有军事筛选功能。这些功能用于追踪运营方或所有者不希望被追踪的飞机。
  • 历史记录需主动启用。 只有在插件设置中开启 Record sighting history 后,才会记录目击历史。
  • 使用设置,而非环境变量。 可选的插件设置包括家庭位置的纬度和经度。
  • 历史记录保存在插件数据文件夹中。 历史数据库保存在 Claude Code 会跨插件更新保留、卸载时删除的文件夹中。uv 首次启动时创建的 Python 环境位于插件文件夹中,并会在每次更新后重建。
/plugin marketplace add darshjoshi/skyglance-mcp
/plugin install skyglance-spotter@skyglance

它需要 uv。首次启动时,uv run --locked 会从 PyPI 安装 uv.lock 中指定的确切依赖版本(MCP SDK、httpx 及其依赖项),整个过程需要几秒钟。SkyGlance Spotter 可在 Claude Code 和 Cowork 中使用。它在本地运行,因此无法在 claude.ai 聊天中使用。


你可以询问什么

"What's flying over me right now?"         → ranked by what you'd actually notice
"What's about to pass overhead?"           → but only 90 seconds ahead, honestly
"What is that plane?"                      → type, operator, route, photograph
"Where is flight UAL123?"                  → anywhere in the world
"Any A380s airborne?"                      → 44 of them, right now
"Any military aircraft near me?"           → and any emergencies, worldwide
"Have I ever seen this plane before?"      → your own history says
"What's the closest one ever?"             → your personal records
"Can I even see anything tonight?"         → cloud, visibility, daylight

为什么采用这种设计

“在你上方”说的是角度,不是距离。 半径筛选会返回一架距离 19 km、飞行高度为 38,000 ft 的客机——它位于地平线以上 32°,只是树梢附近的一个小点——并赋予它与一架飞行高度为 800 ft、仰角仅 0.7°、被建筑物遮挡的直升机相同的权重。SkyGlance 会计算仰角、观测方位以及斜距,因此答案会告诉你该朝哪里看。

它不会预测超出能力范围的情况。 根据航迹和地速进行直线外推,在 30 秒内的误差约为 0.11 km。到了 4 分钟时,中位误差为 6 km,77% 的飞机位置偏差超过 2 km,因为进近中的飞机不断转向。因此,倒计时最多显示 90 秒;更远的情况则只报告为“正在飞来”,不附带具体时间。

它知道自己何时看不到飞机。 免费 ADS-B 覆盖来自在自家屋顶安装接收器的志愿者。人口密集的欧洲、美国和东亚,覆盖率可达商业数据源的 90–95%。海洋、非洲和中亚的覆盖率则接近于零。当结果稀少时,SkyGlance 会如实说明,而不会暗示天空中没有飞机。

你的坐标在离开设备前会被取整。 数据源查询的坐标会精确到小数点后两位(约 1.1 km),这样志愿者数据源运营者就无法获得精确到屋顶的日志,知道你身处何处、何时醒着。方位和仰角仍会根据你的精确位置在本地计算,因此告知你观测目标时依然准确。测试会确保未经取整的坐标绝不会传给数据源。


24 个工具

分组工具
头顶飞机whats_overhead · coming_overhead · nearest_aircraft
识别identify_aircraft · track_flight · track_history · airline_info
机场airport_activity · busiest_airports
搜索全球fleet_view · search_aircraft · global_stats
观机military_aircraft · emergencies · find_by_type · interesting_nearby · privacy_blocked_aircraft
背景信息viewing_conditions · feed_health
你的历史记录sighting_history · is_this_new · my_records · spotting_stats · poller_status
与 Flightradar24 的对比

SkyGlance 是问答工具,而不是地图,因此比较的是你能查到什么,而不是你能看到什么。

SkyGlanceFR24
实时位置、机型、注册号、运营商、照片✅免费版
应答机代码、垂直速度、飞机机龄✅Silver
按航空公司、机型、高度、速度筛选✅Silver
机队视图——某家航空公司的所有在飞航班✅Business
机场动态、最繁忙机场✅ 已观测Business
飞行航迹历史✅ 约 24 h90 天 – 3 年
全球统计✅—
时刻表、延误、登机口、与时刻表对比的预计到达时间❌免费版
海洋覆盖(卫星 ADS-B)、MLAT、雷达❌所有套餐
航空图、海洋航迹、空管边界❌Gold

坦诚总结: 对于观机和识别——我头顶有什么、那是什么、它经过哪里、有多少架 747 正在飞行——SkyGlance 免费提供了 FR24 需要 Silver 和 Business 套餐才能使用的功能。对于旅行安排——我的航班是否延误、登机口在哪里——它无法胜任,因为这些信息来自授权的航班时刻表数据,而不是 ADS-B。此外,FR24 的卫星网络能看到志愿者接收器根本无法接收到的海洋航班。

因此:它可以很好地替代爱好者所需的功能,但不能替代旅客所需的功能。

它刻意无法做到的事

免费的 ADS-B 提供的是位置,而不是航班时刻表。因此,它无法提供延误信息、对照时刻表的预计到达时间、登机口或航站楼信息,也无法搜索“今天从 JFK 飞往伦敦的航班”——航线查询只能反向进行,即根据你已知的呼号查询。track_history 是一个滚动的约 24 小时时间窗口,不是档案。

这些功能不在开发路线图上。它们属于另一种数据产品(Cirium、OAG、FlightAware),购买这类产品就意味着不再能做到无需 API 密钥。这些工具会明确拒绝回答这类问题,而不是给出估算;随附的技能也会告诉 Claude 这样做。

目击历史

设置 SKYGLANCE_HOME_LAT/LON 后,SkyGlance 会在后台每分钟轮询一次你所在位置上空的空域,并记录每一次飞越。这让我们能够回答实时数据流无法回答的问题:我以前见过这架飞机吗?这种机型在这里出现过吗?有东西飞过这里的最低高度是多少?

  • 数据以 SQLite 格式存储在本地的 ~/.skyglance/sky.db。不会上传到任何地方。
  • 即使打开了多个 Claude 会话,也只会有一个进程进行轮询——带有 PID 标记的锁会确保这一点,因此不会让志愿者运营的数据源承受 N 倍请求。
  • 设置 SKYGLANCE_POLL=0 可关闭此功能。
  • 坦诚说明其局限:飞越情况是根据间隔一分钟的快照推断出来的,因此两次轮询之间快速低空飞过的飞机不会被记录。poller_status 会告知你轮询间隔。
配置
变量默认值用途
SKYGLANCE_HOME_LAT / SKYGLANCE_HOME_LON未设置你的位置。启用历史记录。
SKYGLANCE_POLL1后台记录。1/true/yes/on 表示启用;其他任何值都表示停用。
SKYGLANCE_POLL_INTERVAL60两次轮询之间的秒数(最短 30 秒)。
SKYGLANCE_HOME_DIR~/.skyglance数据库和锁文件的存放位置。
SKYGLANCE_EDITION未设置设置为 directory 后,会启用上文所述的 SkyGlance Spotter 行为。插件会设置此项。

数据来源

七个免费服务,无需 API 密钥,每月费用为 $0。完整条款见 NOTICE.md。

层级服务
位置adsb.lol · adsb.fi
身份信息adsbdb.com → hexdb.io 备用
照片planespotters.net
环境状况Open-Meteo

两个位置数据源会并行查询并合并结果,而不是故障切换。根据 2026-08-02 在纽瓦克的测量结果,当时还有第三个数据源(airplanes.live):最佳单一数据源提供了 52 架飞机的信息,合并后共有 61 架,多出 17%。合并既提高了覆盖率,也提供了冗余。airplanes.live 此后已对未提前联系他们的人关闭 API,因此 SkyGlance 不再查询该服务。

每个数据源都由断路器保护(失败三次后冷却 30 秒)。这些服务由志愿者自费提供带宽,不提供 SLA,也不对任何人负有义务。如果两个数据源都失败,系统会提供上一次成功的快照,并标记为 stale,而不是返回错误——比起一直转圈,40 秒前的飞机信息更有用。

不适用于任何运营场景。 调度、安全、与 ATC 相关的用途——请购买商业数据源。上游服务的条款也有同样的说明。

网络访问

SkyGlance 只会发送出站请求,以获取公开航空数据。它只向每项服务发送查询所需的信息:四舍五入到小数点后两位的位置(约 1.1 km),或飞机标识符、航空公司代码或机场代码。它绝不会发送你的对话、文件或任何账户详情,也不使用 API 密钥。

主机用途
api.adsb.lol、globe.adsb.lol(以及 adsb.lol)查询某个位置附近的实时位置、按机型、呼号或注册号查询全球范围内的信息,以及约 24 小时的飞行轨迹
opendata.adsb.fi查询某个位置附近的实时位置,并与 adsb.lol 的数据合并
api.adsbdb.com查询飞机身份信息和航线
hexdb.io当 adsbdb 没有记录时,查询飞机身份信息
api.planespotters.net查询飞机照片,并注明摄影师
api.open-meteo.com查询观测条件所需的云量、能见度和日照信息
pypi.org、files.pythonhosted.org仅供插件使用:uv 在首次启动时安装锁定的依赖项
github.com仅供插件使用,并且仅在未安装 Python 3.10+ 时使用:uv 下载独立版 Python

每项服务都有自己的条款。NOTICE.md 列出了这些条款,并说明 SkyGlance 如何遵守它们。

此仓库中的两个文件仅用于开发,也会发出网络请求。服务端和插件都不会运行它们:

  • tools/build_airports.py 会从 davidmegginson.github.io 下载公有领域的 OurAirports CSV,以重新生成 src/skyglance/airport_data.py,由维护者手动运行。
  • .github/workflows/publish.yml 会在发布版本时通过 GitHub Actions 运行。它会从 Model Context Protocol registry 的 GitHub releases 下载固定版本且已验证校验和的 mcp-publisher,然后发布到 PyPI 和 MCP registry。它使用 GitHub Actions 为此工作流颁发的短期 OIDC 令牌进行身份验证。SkyGlance 及其插件绝不会读取、存储或发送任何凭据。

隐私政策

本政策适用于 SkyGlance MCP 服务、skyglance 插件和 SkyGlance Spotter 插件。

数据收集。 SkyGlance 没有账户、分析、遥测或崩溃报告功能,作者也不会收到任何数据。它不会读取 Claude 的记忆、聊天记录或你的文件。只有当你在问题中提供位置或设置家庭位置时,它才会使用你的位置。

使用方式。 位置用于查找附近的飞机。在离开你的计算机之前,位置会被四舍五入到约 1.1 km,因此数据服务不会收到你的精确位置。观测方向和高度会根据精确坐标在你的计算机上计算得出。飞机标识符、航空公司代码和机场代码只会发送给负责查询它们的服务。

存储。 SkyGlance 保留的所有内容都存储在你的计算机上,位于 SQLite 数据库中:服务端使用 ~/.skyglance/sky.db,SkyGlance Spotter 使用插件的数据文件夹。数据库会保存缓存的飞机和机场查询结果;仅当开启观测历史时,还会记录飞过你家庭位置上空的飞机。你的家庭位置存储在你配置的位置:插件存储在 Claude Code 设置中,服务端则存储在 MCP 配置中。

向第三方共享。 不会向作者共享任何内容,也不会将任何内容出售给任何人。网络访问一节中列出的服务会根据各自的隐私政策,接收每次查询所需的四舍五入后的位置或标识符。

数据保留。 本地数据会一直保留,直到你将其删除。删除 ~/.skyglance,或卸载 SkyGlance Spotter,即可移除其数据文件夹。SkyGlance 不会在其他任何地方保留数据。

联系方式。 [email protected],或提交问题。


相关项目

开发

uv venv && uv pip install -e ".[dev]"
pytest                    # geometry parity, merge, breakers, privacy, history

几何测试会与 Mac 应用中的 reference/overhead.mjs 进行精确到每一位数字的校验,该文件通过了自身的 11 个已知答案测试用例。如果移植版本出现偏差,这些测试会最先失败。

基于 MIT 许可证授权。与任何航空公司、机场或空中导航服务提供商均无关联。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。