local-only server
The server can only run on the client’s local machine because it depends on local resources.
Integrations
Enables interaction with Ansys/AGI STK (Systems Tool Kit) for digital mission engineering, allowing creation and configuration of scenarios, satellite objects, and orbit simulations through the STK Desktop application.
STK-MCP
STK-MCP は、大規模言語モデル (LLM) またはその他の MCP クライアントが、主要なデジタル ミッション エンジニアリング ソフトウェアであるAnsys/AGI STK (Systems Tool Kit) と対話できるように設計された MCP (Model Context Protocol) サーバーです。
このプロジェクトでは、STK Python APIを活用し、MCPツール経由でSTKデスクトップを制御できます。公式MCP Python SDKのFastMCP
を使用しています。サーバーロジックはsrc/stk_mcp
パッケージ内にあります。
概要
このプロジェクトの主目的は、LLMを介したプログラムまたは自然言語によるインタラクションと、STKの強力なシミュレーション機能との間のギャップを埋めることです。MCPサーバーを介してSTKの機能を公開することで、ユーザーはMCPクライアントまたはLLM駆動型アプリケーションを使用してSTKシミュレーションを操作できるようになります。
src/stk_mcp/server.py
で定義されている MCP サーバーは、STK の相互作用を管理し、機能を公開して、次の方法を紹介します。
- 実行中の STK デスクトップ インスタンスに接続するか、サーバーのライフサイクル管理 (
src/stk_mcp/stk_logic/core.py
) を使用して新しいインスタンスを起動します。 - STK 操作を MCP ツールとして公開します (
src/stk_mcp/tools/
で定義されています)。 setup_scenario
ツールを使用して STK シナリオを作成および構成します。create_satellite
ツールを使用して、プログラムで Satellite オブジェクトを追加および構成します。- 共通の軌道パラメータを使用して衛星軌道を定義します。
- ツール内での軌道シミュレーションに TwoBody プロパゲーターを活用します。
機能(MCP サーバー)
- MCP サーバー実装:
src/stk_mcp/server.py
内でFastMCP
を使用します。 - **モジュラー構造:**コードは、サーバーセットアップ (
server.py
)、STK 相互作用ロジック (stk_logic/
)、および MCP ツール (tools/
) に編成されています。 - **STK デスクトップ統合:**サーバーの起動時に、MCP ライフスパンによって管理され、STK 12 (Windows が必要) に自動的に接続または起動します。
- **シナリオ管理ツール (
setup_scenario
):**新しいシナリオを作成し、分析期間を設定し、既存のシナリオを閉じます。 - **衛星作成ツール (
create_satellite
):**現在アクティブなシナリオに衛星オブジェクトを追加します。 - **軌道定義:**遠地点/近地点高度、RAAN、傾斜を使用して衛星軌道を構成します。
- **TwoBody 伝播:**作成された衛星の TwoBody プロパゲーターを設定して実行します。
前提条件
- オペレーティング システム: Windows (STK デスクトップと
win32com
依存関係のため)。 - **Python:**バージョン 3.12 以上。
- **Ansys/AGI STK:**バージョン 12.x デスクトップがインストールされています。
- STK Python API: STKインストールに対応する
agi.stk12
Pythonホイールがインストールされている必要があります。これには通常、以下の手順が含まれます。- STK インストール ディレクトリ (多くの場合、
CodeSamples\Automation\Python
の下) 内でホイール ファイル (例:agi.stk12-py3-none-any.whl
) を見つけます。 - pip を使用してインストールします:
uv pip install path/to/agi.stk12-py3-none-any.whl
- STK インストール ディレクトリ (多くの場合、
- プロジェクトの依存関係:
mcp
ライブラリが必要です (uv sync
経由でインストールされます)。
インストール
- リポジトリをクローンします。Copy
- **前提条件が満たされていることを確認します。**上記の説明に従って、Python、STK デスクトップ、および STK Python API ホイールをインストールします。
- プロジェクトの依存関係をインストールします。Copy
使用方法(MCPサーバー)
MCPサーバーロジックは、 src/stk_mcp
ディレクトリ内に構造化されました。MCPクライアントまたは開発ツールを使用して操作します。
- STK デスクトップが閉じられていることを確認します(サーバーはライフスパン マネージャーを介して独自のインスタンスを起動します)。
- MCP サーバーを開発モードで実行します。
- オプション A (ヘルパー スクリプトの使用):Copy
- オプション B (プロジェクト ルートから
mcp
コマンドを直接使用する):Copy - サーバーが起動し、STK の起動/接続を試行し、ログを印刷します。
- STK デスクトップが表示されるはずです。
- サーバーは MCP 接続をリッスンします。
- オプション A (ヘルパー スクリプトの使用):
- サーバーと対話する (MCP Inspector を使用した例):
- コンソールで提供されている MCP インスペクター URL (例:
http://127.0.0.1:8765
) を開きます。 - 「STK Control」サーバーを見つけます。
- 「ツール」セクションを使用して、以前と同じように
setup_scenario
とcreate_satellite
実行します。
- コンソールで提供されている MCP インスペクター URL (例:
- **サーバーを停止する:**サーバーが稼働しているターミナルで
Ctrl+C
を押します。ライフスパンマネージャーがSTKを終了しようとします。
利用可能なMCPツール
setup_scenario
: (src/stk_mcp/tools/scenario.py
で定義)- 説明: STKシナリオを作成/構成します。まず既存のシナリオを閉じます。
- 引数:
scenario_name
(str、デフォルト: "MCP_STK_Scenario")、start_time
(str、デフォルト: "20 Jan 2020 17:00:00.000")、duration_hours
(float、デフォルト: 48.0)。
create_satellite
: (src/stk_mcp/tools/satellite.py
で定義されています)- 説明: STK衛星を作成または変更します。シナリオがアクティブであると想定します。
- 引数:
name
(str)、apogee_alt_km
(float)、perigee_alt_km
(float)、raan_deg
(float)、inclination_deg
(float)。
将来の開発(MCPサーバーと拡張自動化)
計画されている機能強化には以下が含まれます。
- **地上の場所の追加:**施設または場所オブジェクトを追加するための MCP ツール。
- リソース エンドポイント: STK 状態を照会するための MCP リソース (例:
get_scenario_details
、list_objects
) を追加します。 - **強化された衛星/オブジェクトの定義:**より包括的な構成オプション。
- **アクセス分析ツール:**オブジェクト間のアクセスを計算して報告します。
- エラー処理: MCP クライアントへのエラー報告がより堅牢になりました。
依存関係
agi.stk12
: STK デスクトップと対話するため (STK からの手動インストールが必要です)。mcp[cli]>=1.6.0
: モデルコンテキストプロトコルライブラリ。pywin32
: Windows に自動的にインストールされますwin32com.client
経由の COM 対話に使用されます。
制限事項
- Windows のみ: COM 経由の STK デスクトップ オートメーションに大きく依存します。
- **STK デスクトップが必要です:**現在 STK エンジンはサポートされていません。
- **基本機能:**現在、シナリオの設定と基本的な衛星の作成に制限されています。
- 単一シナリオフォーカス:
setup_scenario
ツールによって管理される単一のアクティブ シナリオとの対話を想定します。
貢献
貢献を歓迎します!ガイドラインについては、 CONTRIBUTING.mdファイルをご覧ください。
This server cannot be installed
Large Language Models またはその他の MCP クライアントが Ansys/AGI STK (Systems Tool Kit) と対話できるようにする MCP サーバー。これにより、ユーザーはプログラムまたは自然言語を使用して STK デスクトップ シミュレーションを制御できます。