N2YO MCP

N2YO MCP

🚀 N2YO卫星跟踪器MCP服务器

这是一个模型上下文协议(MCP)服务器,可提供对N2YO卫星跟踪数据的访问,包括两行轨道要素(TLE)数据、卫星位置和过境预测等。

🚀 快速开始

本MCP服务器与N2YO.com API集成,以提供卫星跟踪功能。N2YO是一个实时卫星跟踪服务,可提供包括军事、气象、GPS、业余无线电和商业卫星等各类卫星的全面数据。

✨ 主要特性

  • 自然语言查询:可以提出如“今晚6点哪些卫星会经过法国上空?”这样的问题。
  • TLE数据访问:通过NORAD ID获取任何卫星的两行轨道要素数据。
  • 按类别搜索:按类型(军事、气象、GPS等)查找卫星。
  • 国家过滤:按国家或组织过滤卫星。
  • 实时定位:获取卫星相对于观测者的当前位置。
  • 过境预测:预测卫星何时从您所在位置可见。
  • 头顶跟踪:查找当前位于特定位置上方的所有卫星。
  • ⭐ 无线电过境优化:为业余无线电操作员提供通信窗口。
  • ⭐ 卫星名称搜索:通过名称而非NORAD ID查找卫星。
  • ⭐ 近期发射跟踪:监测新部署的卫星。
  • ⭐ 太空碎片监测:跟踪碎片以避免碰撞。
  • ⭐ 轨迹可视化:获取卫星随时间变化的路径。

📦 安装指南

git clone 
cd n2yo-satellite-tracker-mcp
npm install
npm run build

📦 配置步骤

  1. 获取N2YO API密钥:在 N2YO.com 注册,并从您的个人资料中生成一个API密钥。
  2. 配置服务器
    • 选项A(推荐):设置环境变量 N2YO_API_KEY=your-api-key
    • 选项B:使用 set_n2yo_api_key 工具在运行时配置您的API密钥。
  3. 开始跟踪:使用各种工具跟踪卫星。

💻 使用示例

基础用法

# 选项A:通过环境变量设置API密钥(推荐)
N2YO_API_KEY=your-api-key npm start

# 选项B:启动服务器,稍后通过工具设置API密钥
npm start

服务器通过标准输入输出传输连接到与MCP兼容的客户端。

工具使用说明

set_n2yo_api_key

配置您的N2YO API密钥以访问卫星数据。 参数

  • apiKey(必需):您的N2YO API密钥

query_satellites_natural

回答关于卫星的自然语言问题(🌟 新功能)。 参数

  • query(必需):自然语言查询,如“今晚6点哪些卫星会经过法国上空?”
  • categoryFilter(可选):按类别过滤:"all"、"military"、"weather"、"gps"、"amateur"、"starlink"、"space-stations"

支持的查询模式

  • 位置:国家(法国、德国、美国等)、城市(巴黎、伦敦、纽约等)
  • 时间:“今晚”、“下午6点”、“明天早上”、“两小时后”、“现在”
  • 类别:可以在查询或 categoryFilter 参数中指定

query_satellites_with_tle

通过自然语言查询查找卫星,并返回包含名称和TLE的结构化数据(🌟 新功能)。 参数

  • query(必需):关于卫星的自然语言查询(例如,'国际空间站'、'纽约上空的星链卫星'、'军事卫星')
  • categoryFilter(可选):按类别过滤:"all"、"military"、"weather"、"gps"、"amateur"、"starlink"、"space-stations"
  • maxResults(可选):返回的最大卫星数量(默认值:10)

返回的结构化JSON包含

  • 卫星名称和NORAD ID
  • 每颗卫星的完整TLE数据
  • 位置信息
  • 查询元数据

get_satellite_tle

获取特定卫星的两行轨道要素(TLE)数据。 参数

  • noradId(必需):NORAD目录编号(例如,国际空间站的编号为 "25544")

get_satellites_by_category

按预定义类别浏览卫星。 参数

  • category(必需):以下之一:"military"、"weather"、"gps"、"navigation"、"amateur"、"geostationary"、"noaa"、"starlink"、"space-stations"、"earth-resources"
  • country(可选):国家代码过滤器(例如,"usa"、"china"、"russia")

get_satellite_position

获取卫星相对于观测者位置的当前位置。 参数

  • noradId(必需):NORAD目录编号
  • observerLat(必需):观测者纬度(-90 到 90)
  • observerLng(必需):观测者经度(-180 到 180)
  • observerAlt(可选):观测者海拔(米)(默认值:0)
  • seconds(可选):未来预测的秒数(0 - 300,默认值:0)

get_visual_passes

获取卫星在观测者位置的即将到来的可视过境信息。 参数

  • noradId(必需):NORAD目录编号
  • observerLat(必需):观测者纬度(-90 到 90)
  • observerLng(必需):观测者经度(-180 到 180)
  • observerAlt(可选):观测者海拔(米)(默认值:0)
  • days(可选):向前查看的天数(1 - 10,默认值:10)
  • minVisibility(可选):最小可见秒数(1 - 300,默认值:300)

get_satellites_above

获取当前位于观测者位置上方的所有卫星。 参数

  • observerLat(必需):观测者纬度(-90 到 90)
  • observerLng(必需):观测者经度(-180 到 180)
  • observerAlt(可选):观测者海拔(米)(默认值:0)
  • searchRadius(可选):搜索半径(度)(1 - 90,默认值:70)
  • categoryFilter(可选):按类别过滤或 "all"(默认值:"all")

get_radio_passes新功能

获取为业余无线电操作员优化的即将到来的无线电通信过境信息。 参数

  • noradId(必需):NORAD目录编号
  • observerLat(必需):观测者纬度(-90 到 90)
  • observerLng(必需):观测者经度(-180 到 180)
  • observerAlt(可选):观测者海拔(米)(默认值:0)
  • days(可选):向前查看的天数(1 - 10,默认值:10)
  • minElevation(可选):最小仰角(度)(1 - 90,默认值:10)

search_satellites_by_name新功能

按名称或国际编号搜索卫星。 参数

  • query(必需):搜索词(卫星名称或国际编号)

查询示例:"国际空间站"、"星链"、"诺阿卫星"、"GPS"、"1998 - 067A"

get_recent_launches新功能

获取最近30天内发射的卫星。 参数:无

get_space_debris新功能

跟踪观测者位置上方的太空碎片,以避免碰撞。 参数

  • observerLat(必需):观测者纬度(-90 到 90)
  • observerLng(必需):观测者经度(-180 到 180)
  • observerAlt(可选):观测者海拔(米)(默认值:0)
  • searchRadius(可选):搜索半径(度)(1 - 90,默认值:70)

get_satellite_trajectory新功能

获取卫星随时间变化的轨迹,用于可视化和规划。 参数

  • noradId(必需):NORAD目录编号
  • observerLat(必需):观测者纬度(-90 到 90)
  • observerLng(必需):观测者经度(-180 到 180)
  • observerAlt(可选):观测者海拔(米)(默认值:0)
  • seconds(可选):时间段(秒)(1 - 3600,默认值:300)

🔍 可用资源

n2yo://api/status

当前N2YO API配置和使用状态,包括:

  • API密钥配置状态
  • 每个端点的事务计数
  • 每日API限制

n2yo://categories/list

可用于搜索的卫星类别:

  • 军事卫星
  • 气象卫星
  • GPS运行卫星
  • 业余无线电卫星
  • 等等...

n2yo://countries/list

可用于卫星过滤的国家和组织。

n2yo://limits/info

有关N2YO API事务限制和当前使用情况的信息。

🔍 自然语言查询能力

query_satellites_natural 工具可以理解和解析各种自然语言模式:

支持的位置(100多个国家和城市)

  • 国家:法国、德国、美国、中国、俄罗斯、日本、英国、加拿大、澳大利亚等。
  • 主要城市:巴黎、伦敦、纽约、东京、柏林、莫斯科、悉尼等。
  • 查询示例
    • “在法国上空”
    • “在德国上方”
    • “在纽约”

支持的时间表达

  • 相对时间:“今晚”、“明天”、“现在”、“此刻”
  • 特定时间:“下午6点”、“18:00”、“今晚6点”
  • 未来时间:“两小时后”、“明天早上”
  • 查询示例
    • “今晚6点”
    • “明天早上”
    • “三小时后”

自然语言查询示例

  • “今晚6点哪些卫星会经过法国上空?”
  • “现在展示德国上方的军事卫星”
  • “现在纽约上空有哪些星链卫星?”
  • “明天早上哪些卫星会在东京上方?”
  • “两小时后伦敦上空有哪些气象卫星?”

🔍 卫星类别

服务器支持以下卫星类别:

类别 数量 说明
military 30 军事卫星
weather 3 气象卫星
gps 20 GPS运行卫星
navigation 24 海军导航卫星系统
amateur 18 业余无线电卫星
geostationary 10 地球静止轨道卫星
noaa 4 诺阿卫星
starlink 52 星链星座
space - stations 2 国际空间站等
earth - resources 6 地球观测卫星

💻 使用示例

配置API密钥

{
"tool": "set_n2yo_api_key",
"arguments": {
"apiKey": "YOUR-N2YO-API-KEY"
}
}

自然语言查询(🌟 新功能

{
"tool": "query_satellites_natural",
"arguments": {
"query": "What satellites will be over France at 6:00 tonight?"
}
}
{
"tool": "query_satellites_natural",
"arguments": {
"query": "Show me military satellites above Germany now",
"categoryFilter": "military"
}
}
{
"tool": "query_satellites_natural",
"arguments": {
"query": "What Starlink satellites are over New York right now?",
"categoryFilter": "starlink"
}
}

获取国际空间站TLE数据

{
"tool": "get_satellite_tle",
"arguments": {
"noradId": "25544"
}
}

查找军事卫星

{
"tool": "get_satellites_by_category",
"arguments": {
"category": "military",
"country": "usa"
}
}

跟踪国际空间站位置

{
"tool": "get_satellite_position",
"arguments": {
"noradId": "25544",
"observerLat": 40.7128,
"observerLng": -74.0060,
"observerAlt": 0
}
}

获取国际空间站过境预测

{
"tool": "get_visual_passes",
"arguments": {
"noradId": "25544",
"observerLat": 40.7128,
"observerLng": -74.0060,
"days": 7
}
}

查找头顶上方的卫星

{
"tool": "get_satellites_above",
"arguments": {
"observerLat": 40.7128,
"observerLng": -74.0060,
"searchRadius": 80,
"categoryFilter": "military"
}
}

无线电通信过境 ⭐ 新功能

{
"tool": "get_radio_passes",
"arguments": {
"noradId": "25544",
"observerLat": 40.7128,
"observerLng": -74.0060,
"days": 7,
"minElevation": 15
}
}

按名称搜索卫星 ⭐ 新功能

{
"tool": "search_satellites_by_name",
"arguments": {
"query": "ISS"
}
}

近期发射 ⭐ 新功能

{
"tool": "get_recent_launches",
"arguments": {}
}

太空碎片跟踪 ⭐ 新功能

{
"tool": "get_space_debris",
"arguments": {
"observerLat": 40.7128,
"observerLng": -74.0060,
"searchRadius": 85
}
}

卫星轨迹 ⭐ 新功能

{
"tool": "get_satellite_trajectory",
"arguments": {
"noradId": "25544",
"observerLat": 40.7128,
"observerLng": -74.0060,
"seconds": 600
}
}

🔧 API限制

N2YO提供免费的API访问,每日限制如下:

请求类型 每日限制
TLE请求 1000次
位置请求 1000次
可视过境请求 100次
无线电过境请求 100次 ⭐
上方请求 100次
发射日期请求 100次 ⭐

🔧 开发

# 开发模式下的监听模式
npm run dev

# 生产环境构建
npm run build

# 启动服务器
npm start

🔍 常用卫星

一些可用于测试的常用跟踪卫星:

  • 国际空间站:25544
  • 哈勃太空望远镜:20580
  • GPS卫星:使用类别 "gps"
  • 星链:使用类别 "starlink"
  • 气象卫星:使用类别 "weather"

🔍 贡献

  1. 分叉仓库
  2. 创建功能分支
  3. 进行更改
  4. 如有必要添加测试
  5. 提交拉取请求

📄 许可证

本项目采用MIT许可证,详情请参阅 LICENSE 文件。

🔗 相关链接

  • 0 关注
  • 0 收藏,28 浏览
  • system 提出于 2025-10-03 01:12

相似服务问题

相关AI产品