项目简介

STK-MCP 是一个基于 Model Context Protocol (MCP) 构建的服务器,它充当大型语言模型 (LLM) 或其他 MCP 客户端与 Ansys/AGI STK (Systems Tool Kit) 软件之间的桥梁。STK 是一款领先的数字任务工程软件,而 STK-MCP 允许用户通过标准化的 MCP 协议,利用 LLM 等工具远程控制 STK Desktop 的功能,实现自动化仿真和分析。

主要功能点

  • MCP 服务器实现: 使用 'FastMCP' 框架构建,符合 MCP 协议规范。
  • STK 桌面集成: 能够连接到正在运行的 STK 桌面实例或自动启动新的 STK 桌面。
  • 工具化操作: 将 STK 的功能封装为 MCP 工具,例如:
    • 'setup_scenario': 创建和配置 STK 场景,包括设置场景名称、起始时间和持续时间。
    • 'create_satellite': 在当前场景中创建卫星对象,并设置其轨道参数(近地点高度、远地点高度、RAAN、轨道倾角)。
  • 会话管理: 通过 MCP 生命周期管理 STK 应用程序的启动和关闭。
  • 可扩展性: 代码结构模块化,易于扩展新的 STK 功能工具。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/alti3/stk-mcp
    cd stk-mcp
  2. 安装必备软件:
    • 操作系统: Windows (由于 STK Desktop 和 'win32com' 依赖)。
    • Python: 3.12 或更高版本。
    • Ansys/AGI STK Desktop: 12.x 版本。
    • STK Python API: 需要手动安装与你的 STK 版本匹配的 'agi.stk12' Python wheel 文件。该文件通常位于 STK 安装目录下的 'CodeSamples\Automation\Python' 文件夹中。
      pip install path/to/agi.stk12-py3-none-any.whl
  3. 安装项目依赖:
    pip install .

服务器配置

MCP 客户端需要配置以下信息以连接到 STK-MCP 服务器:

{
  "servers": [
    {
      "name": "STK Control",
      "command": "python",
      "args": [
        "-m",
        "mcp",
        "dev",
        "src/stk_mcp/server.py"
      ]
    }
  ]
}

配置参数说明:

  • '"name"': 服务器名称,设置为 "STK Control"。
  • '"command"': 启动服务器的命令,这里使用 'python'。
  • '"args"': 命令参数列表:
    • '"-m", "mcp"': 以模块方式运行 'mcp' 命令 (FastMCP 库提供的命令行工具)。
    • '"dev"': 使用开发模式启动 MCP 服务器。
    • '"src/stk_mcp/server.py"': MCP 服务器入口文件路径。

注意: 请确保 MCP 客户端能够访问到 'stk-mcp' 仓库的根目录,或者将 'src/stk_mcp/server.py' 的路径修改为相对于客户端工作目录的正确路径。

基本使用方法

  1. 启动服务器: 在 'stk-mcp' 仓库根目录下,运行以下命令启动 MCP 服务器 (开发模式):

    python scripts/run_dev.py

    mcp dev src/stk_mcp/server.py

    服务器启动后,会尝试连接或启动 STK Desktop,并在终端输出日志信息。STK Desktop 界面应该会显示出来。

  2. 使用 MCP 客户端连接: 配置 MCP 客户端,例如 MCP Inspector 或其他 LLM 应用,连接到运行中的 STK-MCP 服务器。

  3. 调用 MCP 工具: 在 MCP 客户端中,可以找到 "STK Control" 服务器,并使用其提供的工具:

    • 'setup_scenario': 用于创建和配置 STK 场景。
    • 'create_satellite': 用于在当前场景中创建卫星。

    根据工具的参数定义,在客户端界面输入相应的参数值,即可调用 STK 功能。例如,使用 'setup_scenario' 创建一个名为 "MyScenario" 的场景,然后使用 'create_satellite' 在该场景中创建一个卫星。

  4. 停止服务器: 在运行服务器的终端窗口中按 'Ctrl+C' 即可停止服务器。服务器会尝试关闭 STK Desktop 应用程序。

信息

分类

桌面与硬件