STK-MCP

by alti3
Verified

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 SDKFastMCPを使用しています。サーバーロジックは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経由でインストールされます)。

インストール

  1. リポジトリをクローンします。
    git clone <repository-url> cd stk-mcp
  2. **前提条件が満たされていることを確認します。**上記の説明に従って、Python、STK デスクトップ、および STK Python API ホイールをインストールします。
  3. プロジェクトの依存関係をインストールします。
    # Install dependencies defined in pyproject.toml (includes mcp[cli]) uv sync

使用方法(MCPサーバー)

MCPサーバーロジックは、 src/stk_mcpディレクトリ内に構造化されました。MCPクライアントまたは開発ツールを使用して操作します。

  1. STK デスクトップが閉じられていることを確認します(サーバーはライフスパン マネージャーを介して独自のインスタンスを起動します)。
  2. MCP サーバーを開発モードで実行します。
    • オプション A (ヘルパー スクリプトの使用):
      python scripts/run_dev.py
    • オプション B (プロジェクト ルートからmcpコマンドを直接使用する):
      mcp dev src/stk_mcp/server.py
    • サーバーが起動し、STK の起動/接続を試行し、ログを印刷します。
    • STK デスクトップが表示されるはずです。
    • サーバーは MCP 接続をリッスンします。
  3. サーバーと対話する (MCP Inspector を使用した例):
    • コンソールで提供されている MCP インスペクター URL (例: http://127.0.0.1:8765 ) を開きます。
    • 「STK Control」サーバーを見つけます。
    • 「ツール」セクションを使用して、以前と同じようにsetup_scenariocreate_satellite実行します。
  4. **サーバーを停止する:**サーバーが稼働しているターミナルで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_detailslist_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ファイルをご覧ください。

-
security - not tested
F
license - not found
-
quality - not tested

Large Language Models またはその他の MCP クライアントが Ansys/AGI STK (Systems Tool Kit) と対話できるようにする MCP サーバー。これにより、ユーザーはプログラムまたは自然言語を使用して STK デスクトップ シミュレーションを制御できます。

  1. Overview
    1. Features (MCP Server)
      1. Prerequisites
        1. Installation
          1. Usage (MCP Server)
            1. MCP Tools Available
              1. Future Development (MCP Server & Expanded Automation)
                1. Dependencies
                  1. Limitations
                    1. Contributing
                      ID: py60kbwecv