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
プロジェクトの依存関係:
mcp
ライブラリが必要です (uv sync
経由でインストールされます)。
インストール
リポジトリをクローンします。
git clone <repository-url> cd stk-mcp**前提条件が満たされていることを確認します。**上記の説明に従って、Python、STK デスクトップ、および STK Python API ホイールをインストールします。
プロジェクトの依存関係をインストールします。
# Install dependencies defined in pyproject.toml (includes mcp[cli]) uv sync
使用方法(MCPサーバー)
MCPサーバーロジックは、 src/stk_mcp
ディレクトリ内に構造化されました。MCPクライアントまたは開発ツールを使用して操作します。
STK デスクトップが閉じられていることを確認します(サーバーはライフスパン マネージャーを介して独自のインスタンスを起動します)。
MCP サーバーを開発モードで実行します。
オプション A (ヘルパー スクリプトの使用):
python scripts/run_dev.pyオプション B (プロジェクト ルートから
mcp dev src/stk_mcp/server.pyサーバーが起動し、STK の起動/接続を試行し、ログを印刷します。
STK デスクトップが表示されるはずです。
サーバーは MCP 接続をリッスンします。
サーバーと対話する (MCP Inspector を使用した例):
コンソールで提供されている MCP インスペクター URL (例:
http://127.0.0.1:8765
) を開きます。「STK Control」サーバーを見つけます。
「ツール」セクションを使用して、以前と同じように
setup_scenario
とcreate_satellite
実行します。
**サーバーを停止する:**サーバーが稼働しているターミナルで
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
local-only server
The server can only run on the client's local machine because it depends on local resources.
Large Language Models またはその他の MCP クライアントが Ansys/AGI STK (Systems Tool Kit) と対話できるようにする MCP サーバー。これにより、ユーザーはプログラムまたは自然言語を使用して STK デスクトップ シミュレーションを制御できます。
Related MCP Servers
- -securityFlicense-qualityA flexible server that enables communication between AI models and tools, supporting multiple MCP servers and compatible with Claude, MCP Dockmaster, and other MCP clients.Last updated -241
- AsecurityAlicenseAqualityAn MCP server that enables AI applications to access 20+ model providers (including OpenAI, Anthropic, Google) through a unified interface for text and image generation.Last updated -223MIT License
- AsecurityAlicenseAqualityA powerful MCP server that provides interactive user feedback and command execution capabilities for AI-assisted development, featuring a graphical interface with text and image support.Last updated -139MIT License
- AsecurityAlicenseAqualityA comprehensive MCP server providing tools for AI agents to interact with code, including reading symbols, importing modules, replacing text, and sending OS notifications.Last updated -3394MIT License