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 是一个 MCP(模型上下文协议)服务器,旨在使大型语言模型 (LLM) 或其他 MCP 客户端能够与领先的数字任务工程软件Ansys/AGI STK (系统工具包)进行交互。

该项目允许通过 MCP 工具控制 STK 桌面,并利用 STK Python API。它使用了官方MCP Python SDK中的FastMCP 。服务器逻辑位于src/stk_mcp包中。

概述

该项目的主要目标是弥合程序化或自然语言交互(通过 LLM)与 STK 强大的仿真功能之间的差距。通过 MCP 服务器公开 STK 功能,用户可以使用 MCP 客户端或潜在的 LLM 驱动的应用程序来控制 STK 仿真。

MCP 服务器定义在src/stk_mcp/server.py中,用于管理 STK 交互并公开功能,展示如何:

  • 连接到正在运行的 STK Desktop 实例或通过服务器的生命周期管理 ( 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 桌面集成:**服务器启动时自动连接或启动 STK 12(需要 Windows),通过 MCP 生命周期进行管理。
  • **场景管理工具( setup_scenario ):**创建新场景、设置分析时间段并关闭任何预先存在的场景。
  • **卫星创建工具( create_satellite ):**将卫星对象添加到当前活动场景。
  • **轨道定义:**使用远地点/近地点高度、RAAN 和倾角配置卫星轨道。
  • **TwoBody Propagation:**为创建的卫星设置并运行 TwoBody 传播器。

先决条件

  • 操作系统: Windows(由于 STK Desktop 和win32com依赖性)。
  • **Python:**版本 3.12 或更高版本。
  • **Ansys/AGI STK:**已安装版本 12.x 桌面。
  • **STK Python API:**必须安装与您的 STK 安装对应的agi.stk12 Python 轮子。这通常涉及:
    • 在 STK 安装目录(通常位于CodeSamples\Automation\Python下)中找到 wheel 文件(例如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 Desktop 和 STK Python API 轮。
  3. 安装项目依赖项:
    # Install dependencies defined in pyproject.toml (includes mcp[cli]) uv sync

使用情况(MCP 服务器)

MCP 服务器逻辑现在位于src/stk_mcp目录中。您可以使用 MCP 客户端或开发工具与其交互。

  1. 确保 STK Desktop 已关闭(服务器将通过生命周期管理器启动其自己的实例)。
  2. 以开发模式运行 MCP 服务器:
    • 选项 A(使用帮助脚本):
      python scripts/run_dev.py
    • 选项 B(直接从项目根目录使用mcp命令):
      mcp dev src/stk_mcp/server.py
    • 服务器将启动,尝试启动/连接到 STK,并打印日志。
    • STK 桌面应该变得可见。
    • 服务器监听 MCP 连接。
  3. 与服务器交互(使用 MCP Inspector 的示例):
    • 打开控制台中提供的 MCP Inspector URL(例如,http: http://127.0.0.1:8765 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 (浮点数)、 perigee_alt_km (浮点数)、 raan_deg (浮点数)、 inclination_deg (浮点数)。

未来发展(MCP 服务器和扩展自动化)

计划中的增强功能包括:

  • 添加地面位置: MCP 工具添加设施或地点对象。
  • **资源端点:**添加 MCP 资源(例如get_scenario_detailslist_objects )以查询 STK 状态。
  • **增强的卫星/物体定义:**更全面的配置选项。
  • **访问分析工具:**计算并报告对象之间的访问。
  • **错误处理:**向 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

MCP 服务器使大型语言模型或其他 MCP 客户端能够与 Ansys/AGI STK(系统工具包)交互,从而允许用户以编程方式或通过自然语言控制 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