N2YO Satellite Tracker MCP Server について
N2YO Satellite Tracker MCP Server は、N2YO.com API の衛星追跡データを MCP クライアントに提供します。自然言語検索に加え、位置、通過、軌道の詳細を調べられ、観測者や衛星愛好家に利用できます。
主な機能
- 01自然言語による衛星検索
- 02TLE 取得とカテゴリ検索
- 03現在位置と上空の衛星検索
- 04可視・無線通過の予測
- 05名称検索、打ち上げ、デブリ追跡
- 06軌道データ
活用シーン
- 01指定地点から見える衛星を探す
- 02衛星の TLE や現在位置を取得
- 03目視またはアマチュア無線の観測時間を計画
- 04最近の打ち上げや近隣のデブリを追跡
MCP 対応
衛星の検索、追跡、予測を行うツールのほか、API 状態、カテゴリ、国、利用制限のリソースを提供します。MCP クライアントは stdio で接続します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
N2YO Satellite Tracker MCP Server
TLE(軌道要素の二行形式)データ、衛星位置、通過予測など、N2YO の衛星追跡データにアクセスできる Model Context Protocol(MCP)サーバーです。
概要
この MCP サーバーは N2YO.com API と連携し、衛星追跡機能を提供します。N2YO はリアルタイムの衛星追跡サービスで、軍事、気象、GPS、アマチュア無線、商用衛星など、衛星に関する包括的なデータを提供します。
主な機能
- 自然言語での問い合わせ:「今夜 6 時にフランス上空を通過する衛星は何ですか?」などの質問ができます。
- TLE データへのアクセス:NORAD ID を指定して、任意の衛星の TLE データを取得できます。
- カテゴリ別検索:種類(軍事、気象、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 キーを設定します。
- オプション A(推奨):環境変数
- 追跡を開始する:各種ツールを使って衛星を追跡します。
使用方法
# Option A: Set API key via environment variable (recommended)
N2YO_API_KEY=your-api-key npm start
# Option B: Start server and set API key via tool later
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 時」、「明日の朝」、「2 時間後」、「今」
- カテゴリ:問い合わせ文または
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
特定の衛星の TLE(軌道要素の二行形式)データを取得します。
パラメーター:
noradId(必須):NORAD カタログ番号(例:ISS の場合は "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 ⭐ NEW
アマチュア無線オペレーター向けに最適化された、今後の無線通信パスを取得します。
パラメーター:
noradId(必須):NORAD カタログ番号observerLat(必須):観測地点の緯度(-90~90)observerLng(必須):観測地点の経度(-180~180)observerAlt(任意):観測地点の高度(メートル、デフォルト:0)days(任意):先読みする日数(1~10、デフォルト:10)minElevation(任意):最小仰角(度、1~90、デフォルト:10)
search_satellites_by_name ⭐ NEW
名前または国際識別符号で衛星を検索します。
パラメーター:
query(必須):検索語(衛星名または国際識別符号)
クエリの例:「ISS」、「Starlink」、「NOAA」、「GPS」、「1998-067A」
get_recent_launches ⭐ NEW
過去30日間に打ち上げられた衛星を取得します。
パラメーター: なし
get_space_debris ⭐ NEW
衝突回避のため、観測地点の上空にある宇宙デブリを追跡します。
パラメーター:
observerLat(必須):観測地点の緯度(-90~90)observerLng(必須):観測地点の経度(-180~180)observerAlt(任意):観測地点の高度(メートル、デフォルト:0)searchRadius(任意):検索半径(度、1~90、デフォルト:70)
get_satellite_trajectory ⭐ NEW
可視化や計画に使用する、衛星の時間経過に伴う軌道を取得します。
パラメーター:
noradId(必須):NORAD カタログ番号observerLat(必須):観測地点の緯度(-90~90)observerLng(必須):観測地点の経度(-180~180)observerAlt(任意):観測地点の高度(メートル、デフォルト:0)seconds(任意):時間の長さ(秒、1~3600、デフォルト:300)
利用可能なリソース
n2yo://api/status
以下を含む、現在の N2YO API の設定と使用状況:
- API キーの設定状況
- 各エンドポイントのトランザクション数
- 1日の API 上限
n2yo://categories/list
衛星の検索に使用できるカテゴリ:
- 軍事衛星
- 気象衛星
- GPS 運用衛星
- アマチュア無線衛星
- その他...
n2yo://countries/list
衛星の絞り込みに使用できる国と組織。
n2yo://limits/info
N2YO API のトランザクション上限と現在の使用状況に関する情報。
自然言語クエリ機能
query_satellites_natural ツールは、さまざまな自然言語のパターンを理解して解析できます。
対応している場所(100 以上の国と都市)
- 国:France、Germany、USA、China、Russia、Japan、UK、Canada、Australia など
- 主要都市:Paris、London、New York、Tokyo、Berlin、Moscow、Sydney など
- クエリの例:
- 「France 上空」
- 「Germany の上空」
- 「New York 上空」
対応している時間表現
- 相対的な時間:「今夜」、「明日」、「現在」、「たった今」
- 具体的な時間:「午後 6:00」、「18:00」、「今夜 6:00」
- 将来の時間:「2 時間後」、「明日の朝」
- クエリの例:
- 「今夜 6:00 に」
- 「明日の朝」
- 「3 時間後」
自然言語クエリの例
- 「今夜 6:00 に France 上空を通過する衛星は何ですか?」
- 「現在 Germany 上空にいる軍事衛星を表示してください」
- 「たった今 New York 上空にいる Starlink 衛星は何ですか?」
- 「明日の朝に Tokyo 上空にいる衛星はどれですか?」
- 「2 時間後に London 上空にいる気象衛星を探してください」
衛星カテゴリー
サーバーは以下の衛星カテゴリーに対応しています。
- 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": "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"
}
}
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 件 ⭐
開発
# Watch mode for development
npm run dev
# Build for production
npm run build
# Start the server
npm start
人気の衛星
テストに使用できる、よく追跡されている衛星の例:
- ISS:25544
- ハッブル宇宙望遠鏡:20580
- GPS 衛星:カテゴリー「gps」を使用
- Starlink:カテゴリー「starlink」を使用
- 気象衛星:カテゴリー「weather」を使用
貢献
- リポジトリをフォークします
- 機能ブランチを作成します
- 変更を加えます
- 該当する場合はテストを追加します
- プルリクエストを送信します
ライセンス
MIT ライセンス — 詳細は LICENSE ファイルを参照してください。
関連リンク
- N2YO.com - リアルタイムの衛星追跡
- N2YO API ドキュメント
- Model Context Protocol - MCP について学ぶ
- NORAD カタログ - 衛星カタログ情報
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。