astrodynamics-mcp について
astrodynamics-mcpは、衛星・軌道・ミッション分析向けの軌道力学ツールをMCPクライアントに提供します。上流の数値ライブラリを包み、単位を明示した結果を返します。オプションの追加機能でGMAT実行、SPICE照会、軌道可視化にも対応します。
主な機能
- 01TLE検索とSGP4伝播
- 02Lambert計算とporkchopスキャン
- 03地上局アクセス可能時間の計算
- 04時刻系・座標系の変換
- 05オプションのGMAT、SPICE、可視化ツール
活用シーン
- 01衛星軌道の伝播とメタデータ確認
- 02地上局からのアクセス時間の算出
- 03惑星間遷移とフライバイ標的の分析
MCP 対応
このMCPサーバーは、軌道伝播、遷移計算、座標変換などのツールをクライアントに公開します。オプション機能でGMAT、SPICE、可視化ツールを追加でき、stdioとStreamable HTTPに対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
astrodynamics-mcp
あらゆる MCP 対応 LLM クライアント(Claude Code、Cursor、ChatGPT desktop、
カスタムエージェント)に、信頼できる軌道力学ツールを提供する
Model Context Protocol サーバーです。TLE/SGP4 の軌道伝播、
ランベール問題の求解、地上局へのアクセス、時間尺度と座標系の
変換、ポークチョップスキャン、B プレーンターゲティング、衛星メタデータに対応しています。
さらにオプションの追加機能を使うと、NASA GMAT によるミッションの完全な実行([gmat])、
NASA SPICE / NAIF カーネルのクエリ([spice])、軌道の可視化([viz])も行えます。
理由
LLM は軌道力学の概念をうまく推論できますが、数値計算はできません。軌道伝播や
ランベール問題の求解、SPICE 暦の照会は行えません。astrodynamics-mcp を使うと、
あらゆる MCP 対応クライアントに信頼できるツールを組み込めるため、LLM は数値を捏造する代わりに、
検証済みの上流ライブラリを呼び出します。すべての結果には単位が明示されます。また、各ツールの説明は
Inspect AI eval suite
を用いて調整されています。このスイートでは、LLM が適切なツールを選択し、正しい
引数を設定できるかを測定します。
ツール
| ツール | 機能 | 使用ライブラリ |
|---|---|---|
tle_lookup | NORAD ID、名前、グループを指定して最新の TLE を取得します。デフォルトでは CelesTrak、または Space-Track から取得します。 | CelesTrak gp.php API · Space-Track † |
sgp4_propagate | UTC ISO 8601 エポックにわたって、TEME / ICRF / GCRS / ITRS / CIRS で TLE を伝播します。 | sgp4 |
lambert_solve | ランベール問題を解きます。複数周回の解を列挙でき、必要に応じて 2 インパルスの Δv を算出します。 | lamberthub |
access_windows | 指定した期間における地上局/観測者からのアクセス時間帯と、AOS / LOS / 最大仰角を取得します。 | skyfield |
time_convert | UTC / TAI / TT / TDB / UT1 / GPS / TCB / TCG を、ISO / JD / MJD / J2000 秒 / Unix 形式間で変換します。 | astropy.time |
frame_transform | ICRF / ITRS / GCRS / TEME / CIRS / TIRS / IAU 惑星固定座標系間で状態ベクトルを変換します。 | astropy.coordinates |
porkchop | 惑星間遷移の(出発 × 到着)Δv / C3 グリッドを、ASCII 等高線図、要約、または全出力で表示します。 | lamberthub + JPL Horizons |
bplane_target | 双曲線フライバイの B プレーン要素を計算し、インパルスによるターゲティングを行います。 | 内製、JPL Horizons データを使用 |
satellite_metadata | NORAD ID に基づき、物理情報と来歴メタデータ(質量、寸法、COSPAR ID、打ち上げ、運用者、軌道離脱状況)を取得します。 | ESA DISCOSweb † |
† 認証情報が必要なデータソースです。stdio トランスポートでは環境変数として、HTTP ではセッション初期化時の _meta ブロックに認証情報を渡してください。詳しくは
認証情報を参照してください。
必要な認証情報を指定せずにツールを呼び出すと、黙って失敗するのではなく、型付きの
CredentialRequiredError が返されます。
GMAT ツール(オプションの [gmat] エクストラ)
[gmat] エクストラをインストールし、ローカルに NASA GMAT
をインストールすると、実際の GMAT ミッションを実行するためのツールがさらに 5 つ登録されます
(それ以外の場合は非表示です)。
| ツール | 機能 | 基盤 |
|---|---|---|
gmat_run_mission | GMAT ミッション全体を実行し、解析済みの概要、レポートデータ、大きな出力への参照を返します。 | gmat-run |
gmat_sweep | ミッションのパラメーター・スイープとモンテカルロ(グリッド/サンプル/モンテカルロ/ラテン超方格)を実行します。 | gmat-sweep |
gmat_execute_script | エスケープハッチとして、生の GMAT スクリプトテキストを実行し、レポートをそのまま返します。エンジンのエラーはデータとして返されます。 | gmat-run |
gmat_validate_script | スクリプトを実行せずに構文解析と検証を行い、エラー、警告、リソース/コマンドの構造を返します。 | gmat-run |
gmat_read_run_artefact | 前回の実行で生成されたファイルの生テキストを読み取ります(エフェメリスや、インライン表示には大きすぎるレポートなど)。 | 実行レジストリ |
SPICE ツール(オプションの [spice] エクストラ)
[spice] エクストラをインストールすると、NASA
NAIF の CSPICE を spiceypy
経由で利用するツールがさらに 7 つ登録されます(それ以外の場合は非表示です)。カーネルをプロセス全体で共有される
プールに読み込み、プール内のデータを照会します。
| ツール | 機能 | 基盤 |
|---|---|---|
spice_load_kernel | ローカルパスまたは NAIF の https URL(許可リストに登録され、キャッシュされます)からカーネルをプールに読み込みます。メタカーネルの場合は、そこに記載されたすべてのカーネルを読み込みます。 | spiceypy · NAIF |
spice_list_kernels | 現在プールに読み込まれているカーネルを、オプションでカテゴリを指定して一覧表示します。 | spiceypy |
spice_unload_kernel | spice_load_kernel が返した name で、読み込み済みのカーネルを削除します。 | spiceypy |
spice_state | 読み込み済みの SPK カーネルを使用し、1 つ以上のエポックにおける観測対象に対するターゲットの位置/速度を取得します。 | spiceypy (SPK) |
spice_frame_transform | カーネルで定義されたフレーム間でベクトルを回転します。特に地球以外の天体固定フレームに対応し、回転行列を返すこともできます。 | spiceypy (FK / PCK) |
spice_body_parameters | 読み込み済みの PCK カーネルから、天体の半径、GM、極/本初子午線の向きの定数を読み取ります。 | spiceypy (PCK) |
spice_time_convert | 読み込み済みの LSK/SCLK カーネルを使用し、カーネルで定義された時刻系 ET/UTC/SCLK 間で変換します。 | spiceypy (LSK / SCLK) |
カーネルモデル、NAIF の URL からの読み込み許可リスト、およびプロセス全体で共有されるプールの 信頼境界については、SPICE 統合 ページで説明しています。
可視化ツール(オプションの [viz] エクストラ)
[viz] エクストラをインストールすると、matplotlib(静的 PNG プロット)と姉妹ライブラリの
gmat-czml(CZML エクスポート)を基盤とするツールが 4 つ追加で登録されます。それ以外の場合は表示されません。各ツールは数値の要約と合わせて画像を添付ファイルとして返すため、テキストのみのクライアントでも回答を得られます。
| ツール | 機能 | 基盤となるもの |
|---|---|---|
plot_ground_track | 衛星の地表直下点の軌跡を、経度/緯度の経緯線を重ねた PNG として描画し、緯度/経度の範囲を併記します。 | matplotlib |
plot_trajectory | 軌道または遷移弧を、天体を中心とする 2D または 3D の PNG として描画し、弧の長さと近点・遠点を併記します。 | matplotlib |
plot_porkchop | 完全な porkchop グリッドの結果からポークチョップ C3 等高線を PNG として描画します。再計算は行わず、最適なセルをマークします。 | matplotlib |
czml_trajectory | 軌道を Cesium 3D クライアント向けの CZML ドキュメントとしてエクスポートし、埋め込みリソースとして返します。 | gmat-czml |
添付ファイルのモデル(構造化された要約とともに追加される PNG ImageContent/CZML EmbeddedResource)と、それぞれの形式を表示するクライアントについては、
可視化
のページで説明しています。
入出力の完全な JSON スキーマは、ドキュメントサイトの ツールリファレンス ページにあります。
クイックスタート
インストール:
uv tool install astrodynamics-mcp # or: pipx install astrodynamics-mcp
uv tool install "astrodynamics-mcp[gmat]" # adds the GMAT mission tools (needs a local GMAT install)
uv tool install "astrodynamics-mcp[spice]" # adds the SPICE tools (pulls spiceypy / bundled CSPICE)
uv tool install "astrodynamics-mcp[viz]" # adds the visualisation tools (pulls matplotlib / gmat-czml)
Claude Code
Claude Code の MCP 設定に追加します。
{
"mcpServers": {
"astrodynamics-mcp": {
"command": "astrodynamics-mcp",
"args": ["stdio"]
}
}
}
Claude Code を再起動します。チャットで次のように入力します。
あなた: 高度 250 km の円軌道 LEO から GEO へのホーマン遷移に必要な Δv を計算してください。
(モデルはホーマン遷移の幾何条件で
lambert_solveを呼び出し、LLM 自身の重みではなくツールの出力を根拠として、約 3.91 km/s と回答します。)
Cursor
~/.cursor/mcp.json(またはワークスペースレベルの .cursor/mcp.json):
{
"mcpServers": {
"astrodynamics-mcp": {
"command": "astrodynamics-mcp",
"args": ["stdio"]
}
}
}
Cursor を再起動します。ツールは astrodynamics サーバーグループに表示されます。
ChatGPT デスクトップ、Python の MCP スモークテスト用クライアント、およびリモートエージェント向けの Streamable HTTP トランスポートについては、ドキュメントの クライアントの選択 を参照してください。
対応クライアント
| クライアント | トランスポート | 検証状況 |
|---|---|---|
| Claude Code | stdio | ✅ 対応確認済み |
| Cursor | stdio | ✅ 対応確認済み |
| ChatGPT デスクトップ | stdio | ⏳ 動作する見込み |
Python 直接実行(mcp SDK) | stdio | ✅ 対応確認済み |
| リモートエージェント | Streamable HTTP | ⏳ 動作する見込み |
| LangGraph / AutoGen / CrewAI | 任意 | ⏳ 動作する見込み |
これは何ではないか
- 汎用の宇宙力学フレームワークではありません。 検証済みの 上流ライブラリをラップしており、伝播器、積分器、 座標系を再実装するものではありません。
- エージェントフレームワークではありません。 MCP ツールを公開します。LangGraph、AutoGen、 CrewAI、および LLM クライアント自体がこれらを利用します。
- ML/推論サーバーではありません。 独自の ML モデルを必要とするツール(マヌーバ検出、ニューラル伝播器)は、依存関係を分離して モジュール性を保つため、別の MCP サーバーに配置します。
- SaaS ではありません。 ローカルまたは独自のインフラストラクチャで実行します。ホスト型のマルチテナント デプロイには対応していません。
- Web UI ではありません。 ツールは MCP クライアント経由で利用します。ブラウザーの フロントエンド、デスクトップアプリ、ノートブックウィジェットはありません。
同じ機能を MCP を介さずに Python から直接利用する場合は、次の
上流ライブラリをご利用ください。
sgp4、
lamberthub、
skyfield、
astropy、
interplanetary-porkchop、
spiceypy。
基盤
公式の Anthropic
modelcontextprotocol/python-sdk
(MIT)を使用しています。同梱の FastMCP サーバークラスがサーバーの基本機能を担い、
stdio と Streamable HTTP のトランスポートを第一級でサポートしています。
ドキュメントとリンク
- ドキュメントサイト: astro-tools.github.io/astrodynamics-mcp — はじめに、クライアントごとのセットアップ、ツールリファレンス、レシピ、 可視化、データソース、評価スイート、FAQ。
- 課題トラッカー: astro-tools/astrodynamics-mcp/issues
- ディスカッション: orgs/astro-tools/discussions — 利用方法に関するサポートや、自由形式の質問はこちら。
- 評価スイート: eval/README.md — ツールの説明品質に関する回帰テストの基準です。
プライバシー
astrodynamics-mcp はすべてお使いのマシン上で実行され、テレメトリー、
分析データ、アカウントなど、いかなる情報も収集しません。マシン外へ送信されるのは、
ツールがラップするデータソース(認証不要の CelesTrak/JPL Horizons/IERS、および
認証情報を設定した場合に限り Space-Track と ESA DISCOSweb)へ送るクエリパラメーターのみです。
認証情報はローカルの環境変数またはセッションの
_meta ブロックから読み込まれ、HTTPS 経由で各サービスにのみ送信されます。詳細については、
プライバシーページ
をご覧ください。
ライセンス
MIT — LICENSEをご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。