Skip to main content
Glama

STK-MCP

Python 版本 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 传播器进行轨道模拟。

Related MCP server: Outsource MCP

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

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