Skip to main content
Glama

STK-MCP

by alti3

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

local-only server

The server can only run on the client's local machine because it depends on local resources.

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

  1. 概述
    1. 功能(MCP 服务器)
      1. 先决条件
        1. 安装
          1. 使用情况(MCP 服务器)
            1. MCP 工具可用
              1. 未来发展(MCP 服务器和扩展自动化)
                1. 依赖项
                  1. 限制
                    1. 贡献

                      Related MCP Servers

                      • A
                        security
                        A
                        license
                        A
                        quality
                        A MCP server for managing and storing code snippets in various programming languages, allowing users to create, list, and delete snippets via a standardized interface.
                        Last updated -
                        3
                        4
                        JavaScript
                        MIT License
                      • A
                        security
                        A
                        license
                        A
                        quality
                        An MCP server that connects to Tana's Input API, allowing Large Language Models and other MCP clients to create and manipulate data in Tana workspaces.
                        Last updated -
                        11
                        13
                        19
                        TypeScript
                        MIT License
                        • Linux
                        • Apple
                      • A
                        security
                        F
                        license
                        A
                        quality
                        Model Context Protocol (MCP) server that integrates Redash with AI assistants like Claude, allowing them to query data, manage visualizations, and interact with dashboards through natural language.
                        Last updated -
                        10
                        53
                        16
                        JavaScript
                        • Apple
                      • A
                        security
                        F
                        license
                        A
                        quality
                        An MCP server implementation that enables interaction with the Unstructured API, providing tools to list, create, update, and manage sources, destinations, and workflows.
                        Last updated -
                        39
                        28
                        • Apple

                      View all related MCP servers

                      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