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
- 在 STK 安装目录(通常位于
- **项目依赖项:**需要
mcp
库(通过uv sync
安装)。
安装
- 克隆存储库:Copy
- **确保满足先决条件:**按照上述说明安装 Python、STK Desktop 和 STK Python API 轮。
- 安装项目依赖项:Copy
使用情况(MCP 服务器)
MCP 服务器逻辑现在位于src/stk_mcp
目录中。您可以使用 MCP 客户端或开发工具与其交互。
- 确保 STK Desktop 已关闭(服务器将通过生命周期管理器启动其自己的实例)。
- 以开发模式运行 MCP 服务器:
- 选项 A(使用帮助脚本):Copy
- 选项 B(直接从项目根目录使用
mcp
命令):Copy - 服务器将启动,尝试启动/连接到 STK,并打印日志。
- STK 桌面应该变得可见。
- 服务器监听 MCP 连接。
- 选项 A(使用帮助脚本):
- 与服务器交互(使用 MCP Inspector 的示例):
- 打开控制台中提供的 MCP Inspector URL(例如,http:
http://127.0.0.1:8765
8765)。 - 找到“STK Control”服务器。
- 使用“工具”部分像以前一样执行
setup_scenario
和create_satellite
。
- 打开控制台中提供的 MCP Inspector URL(例如,http:
- **停止服务器:**在服务器运行的终端中按
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_details
、list_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文件以获取相关指南。
This server cannot be installed
MCP 服务器使大型语言模型或其他 MCP 客户端能够与 Ansys/AGI STK(系统工具包)交互,从而允许用户以编程方式或通过自然语言控制 STK 桌面模拟。