🚀 N2YO衛星追蹤器MCP服務器
這是一個模型上下文協議(MCP)服務器,可提供對N2YO衛星追蹤數據的訪問,包括兩行元素(TLE)數據、衛星位置和過境預測。
🚀 快速開始
本MCP服務器與N2YO.com API集成,提供衛星追蹤功能。N2YO是一個實時衛星追蹤服務,提供包括軍事、氣象、GPS、業餘無線電和商業衛星等各類衛星的全面數據。
✨ 主要特性
- 自然語言查詢:你可以提出類似“今晚6點哪些衛星將經過法國上空?”這樣的問題。
- TLE數據訪問:通過NORAD ID獲取任何衛星的兩行元素數據。
- 基於類別的搜索:按類型(軍事、氣象、GPS等)查找衛星。
- 國家過濾:按國家或組織過濾衛星。
- 實時定位:獲取衛星相對於觀測者的當前位置。
- 過境預測:預測衛星何時從你的位置可見。
- 頭頂追蹤:查找當前位於特定位置上方的所有衛星。
- ⭐ 無線電過境優化:為業餘無線電操作員提供通信窗口。
- ⭐ 衛星名稱搜索:通過名稱而非NORAD ID查找衛星。
- ⭐ 近期發射追蹤:監測新部署的衛星。
- ⭐ 太空碎片監測:追蹤碎片以避免碰撞。
- ⭐ 軌跡可視化:獲取衛星隨時間的路徑。
📦 安裝指南
git clone <repository-url>
cd n2yo-satellite-tracker-mcp
npm install
npm run build
🔧 配置步驟
- 獲取N2YO API密鑰:在 N2YO.com 註冊,並從你的個人資料中生成一個API密鑰。
- 配置服務器:
- 選項A(推薦):設置環境變量
N2YO_API_KEY=your-api-key。
- 選項B:使用
set_n2yo_api_key 工具在運行時配置你的API密鑰。
- 開始追蹤:使用各種工具追蹤衛星。
💻 使用示例
基礎用法
N2YO_API_KEY=your-api-key npm start
npm start
服務器通過標準輸入輸出傳輸與兼容MCP的客戶端連接。
可用工具
set_n2yo_api_key
配置你的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點哪些衛星將經過法國上空?"
- "現在顯示德國上方的軍事衛星"
- "現在紐約上空有哪些星鏈衛星?"
- "明天早上哪些衛星將經過東京上空?"
- "兩小時後倫敦上空有哪些氣象衛星?"
衛星類別
服務器支持以下衛星類別:
| 類別 |
數量 |
說明 |
| 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": "今晚6點哪些衛星將經過法國上空?"
}
}
{
"tool": "query_satellites_natural",
"arguments": {
"query": "現在顯示德國上方的軍事衛星",
"categoryFilter": "military"
}
}
{
"tool": "query_satellites_natural",
"arguments": {
"query": "現在紐約上空有哪些星鏈衛星?",
"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"
貢獻代碼
- 分叉倉庫
- 創建功能分支
- 進行更改
- 如有必要添加測試
- 提交拉取請求
📄 許可證
本項目採用MIT許可證,詳情請參閱LICENSE文件。
相關鏈接