Skip to main content
Glama

STK-MCP

Pythonバージョン 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 プロパゲーターを活用します。

Related MCP server: Outsource MCP

機能(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 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

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/alti3/stk-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server