这是一个模型上下文协议(MCP)服务器,可提供对N2YO卫星跟踪数据的访问,包括两行轨道要素(TLE)数据、卫星位置和过境预测等。
本MCP服务器与N2YO.com API集成,以提供卫星跟踪功能。N2YO是一个实时卫星跟踪服务,可提供包括军事、气象、GPS、业余无线电和商业卫星等各类卫星的全面数据。
git clone
cd n2yo-satellite-tracker-mcp
npm install
npm run build
N2YO_API_KEY=your-api-key。set_n2yo_api_key 工具在运行时配置您的API密钥。# 选项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"支持的查询模式:
categoryFilter 参数中指定query_satellites_with_tle通过自然语言查询查找卫星,并返回包含名称和TLE的结构化数据(🌟 新功能)。 参数:
query(必需):关于卫星的自然语言查询(例如,'国际空间站'、'纽约上空的星链卫星'、'军事卫星')categoryFilter(可选):按类别过滤:"all"、"military"、"weather"、"gps"、"amateur"、"starlink"、"space-stations"maxResults(可选):返回的最大卫星数量(默认值:10)返回的结构化JSON包含:
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配置和使用状态,包括:
n2yo://categories/list可用于搜索的卫星类别:
n2yo://countries/list可用于卫星过滤的国家和组织。
n2yo://limits/info有关N2YO API事务限制和当前使用情况的信息。
query_satellites_natural 工具可以理解和解析各种自然语言模式:
服务器支持以下卫星类别:
| 类别 | 数量 | 说明 |
|---|---|---|
| military | 30 | 军事卫星 |
| weather | 3 | 气象卫星 |
| gps | 20 | GPS运行卫星 |
| navigation | 24 | 海军导航卫星系统 |
| amateur | 18 | 业余无线电卫星 |
| geostationary | 10 | 地球静止轨道卫星 |
| noaa | 4 | 诺阿卫星 |
| starlink | 52 | 星链星座 |
| space - stations | 2 | 国际空间站等 |
| earth - resources | 6 | 地球观测卫星 |
{
"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"
}
}
{
"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
}
}
N2YO提供免费的API访问,每日限制如下:
| 请求类型 | 每日限制 |
|---|---|
| TLE请求 | 1000次 |
| 位置请求 | 1000次 |
| 可视过境请求 | 100次 |
| 无线电过境请求 | 100次 ⭐ |
| 上方请求 | 100次 |
| 发射日期请求 | 100次 ⭐ |
# 开发模式下的监听模式
npm run dev
# 生产环境构建
npm run build
# 启动服务器
npm start
一些可用于测试的常用跟踪卫星:
本项目采用MIT许可证,详情请参阅 LICENSE 文件。