🚀 N2YO Satellite Tracker MCP Server
このModel Context Protocol (MCP) サーバーは、N2YOの衛星追跡データ(TLE (Two-Line Element) データ、衛星の位置、通過予測など)にアクセスできるようにします。
🚀 クイックスタート
このMCPサーバーは、N2YO.com APIと統合されており、衛星追跡機能を提供します。N2YOは、軍事衛星、気象衛星、GPS衛星、アマチュア無線衛星、商用衛星など、さまざまな衛星に関する包括的なデータを提供するリアルタイムの衛星追跡サービスです。
✨ 主な機能
- 自然言語クエリ:「今夜6時にフランス上空にある衛星は何ですか?」のような質問ができます。
- TLEデータアクセス:NORAD IDで任意の衛星のTwo-Line Elementデータを取得できます。
- カテゴリ別検索:タイプ(軍事、気象、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
サーバーは、stdioトランスポートを介して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(必須): 衛星に関する自然言語クエリ(例: 'ISS', 'カリフォルニア上空のStarlink衛星', '軍事衛星')
categoryFilter(オプション): カテゴリでフィルタリングする: "all", "military", "weather", "gps", "amateur", "starlink", "space-stations"
maxResults(オプション): 返す衛星の最大数(デフォルト: 10)
返される構造化JSONには以下が含まれます:
- 衛星名とNORAD ID
- 各衛星の完全なTLEデータ
- 位置情報
- クエリメタデータ
get_satellite_tle
特定の衛星のTwo-Line Element (TLE) データを取得します。
パラメーター:
noradId(必須): NORADカタログ番号(例: "25544" はISS)
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(必須): 検索用語(衛星名または国際識別子)
クエリ例: "ISS", "Starlink", "NOAA", "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:00 PM", "18:00", "今夜6時"
- 未来の時間: "2時間後", "明日の朝"
- クエリ例:
自然言語クエリの例
- "今夜6時にフランス上空にある衛星は何ですか?"
- "今ドイツ上空の軍事衛星を表示してください"
- "今ニューヨーク上空にあるStarlink衛星はどれですか?"
- "明日の朝東京上空にある衛星はどれですか?"
- "2時間後にロンドン上空にある気象衛星を見つけてください"
衛星カテゴリ
サーバーは以下の衛星カテゴリをサポートしています。
- military (30): 軍事衛星
- weather (3): 気象衛星
- gps (20): GPS運用衛星
- navigation (24): 海軍航法衛星システム
- amateur (18): アマチュア無線衛星
- geostationary (10): 静止衛星
- noaa (4): NOAA衛星
- starlink (52): Starlink衛星群
- 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": "今ニューヨーク上空にあるStarlink衛星はどれですか?",
"categoryFilter": "starlink"
}
}
ISSのTLEデータの取得
{
"tool": "get_satellite_tle",
"arguments": {
"noradId": "25544"
}
}
軍事衛星の検索
{
"tool": "get_satellites_by_category",
"arguments": {
"category": "military",
"country": "usa"
}
}
ISSの位置追跡
{
"tool": "get_satellite_position",
"arguments": {
"noradId": "25544",
"observerLat": 40.7128,
"observerLng": -74.0060,
"observerAlt": 0
}
}
ISSの通過予測の取得
{
"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リクエスト: 1日あたり1,000回
- 位置リクエスト: 1日あたり1,000回
- 可視通過リクエスト: 1日あたり100回
- 無線通過リクエスト: 1日あたり100回 ⭐
- 上空リクエスト: 1日あたり100回
- 打ち上げ日リクエスト: 1日あたり100回 ⭐
開発
npm run dev
npm run build
npm start
人気の衛星
テストに使用できる一般的に追跡される衛星の一部を紹介します。
- ISS: 25544
- ハッブル宇宙望遠鏡: 20580
- GPS衛星: "gps" カテゴリを使用
- Starlink: "starlink" カテゴリを使用
- 気象衛星: "weather" カテゴリを使用
コントリビュート
- リポジトリをフォークします。
- 機能ブランチを作成します。
- 変更を加えます。
- 適用可能な場合はテストを追加します。
- プルリクエストを送信します。
📄 ライセンス
MITライセンス - 詳細はLICENSEファイルを参照してください。
関連リンク