STK-MCP

STK-MCP

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

Category
访问服务器

README

STK-MCP

Python 版本 MCP 版本

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

该项目允许通过 MCP 工具控制 STK Desktop,利用 STK Python API。 它使用来自官方 MCP Python SDKFastMCP。 服务器逻辑位于 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 工具以编程方式添加和配置卫星对象。
  • 使用常见的轨道参数定义卫星轨道。
  • 在工具中使用 TwoBody 传播器进行轨道仿真。

功能 (MCP 服务器)

  • MCP 服务器实现:src/stk_mcp/server.py 中使用 FastMCP
  • 模块化结构: 代码组织为服务器设置 (server.py)、STK 交互逻辑 (stk_logic/) 和 MCP 工具 (tools/)。
  • STK Desktop 集成: 当服务器启动时,自动连接到或启动 STK 12(需要 Windows),通过 MCP 生命周期管理。
  • 场景管理工具 (setup_scenario): 创建新场景,设置分析时间段,并关闭任何预先存在的场景。
  • 卫星创建工具 (create_satellite): 将卫星对象添加到当前活动的场景。
  • 轨道定义: 使用远地点/近地点高度、RAAN 和倾角配置卫星轨道。
  • TwoBody 传播: 为创建的卫星设置并运行 TwoBody 传播器。

先决条件

  • 操作系统: Windows(由于 STK Desktop 和 win32com 依赖项)。
  • Python: 3.12 或更高版本。
  • Ansys/AGI STK: 已安装 12.x Desktop 版本。
  • STK Python API: 必须安装与您的 STK 安装相对应的 agi.stk12 Python wheel。 这通常涉及:
    • 找到 wheel 文件(例如,agi.stk12-py3-none-any.whl),该文件位于您的 STK 安装目录中(通常在 CodeSamples\Automation\Python 下)。
    • 使用 pip 安装它:pip install path/to/agi.stk12-py3-none-any.whl
  • 项目依赖项: 需要 mcp 库(通过 pip install . 安装)。

安装

  1. 克隆存储库:
    git clone <repository-url>
    cd stk-mcp
    
  2. 确保满足先决条件: 如上所述安装 Python、STK Desktop 和 STK Python API wheel。
  3. 安装项目依赖项:
    # 安装 pyproject.toml 中定义的依赖项(包括 mcp[cli])
    pip install .
    

用法 (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 Desktop 应该变得可见。
    • 服务器侦听 MCP 连接。
  3. 与服务器交互(使用 MCP Inspector 的示例):
    • 打开控制台中提供的 MCP Inspector URL(例如,http://127.0.0.1:8765)。
    • 找到“STK Control”服务器。
    • 使用“Tools”部分像以前一样执行 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 (float), perigee_alt_km (float), raan_deg (float), inclination_deg (float)。

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

计划的增强功能包括:

  • 添加地面位置: MCP 工具,用于添加设施或地点对象。
  • 资源端点: 添加 MCP 资源(例如,get_scenario_detailslist_objects)以查询 STK 状态。
  • 增强的卫星/对象定义: 更全面的配置选项。
  • 访问分析工具: 计算和报告对象之间的访问。
  • 错误处理: 更强大的错误报告返回到 MCP 客户端。

依赖项

  • agi.stk12: 用于与 STK Desktop 交互(需要从 STK 手动安装)。
  • mcp[cli]>=1.6.0: 模型上下文协议库。
  • pywin32: 在 Windows 上自动安装; 用于通过 win32com.client 进行 COM 交互。

局限性

  • 仅限 Windows: 严重依赖于通过 COM 进行的 STK Desktop 自动化。
  • 需要 STK Desktop: 目前不支持 STK Engine。
  • 基本功能: 目前仅限于场景设置和基本卫星创建。
  • 单一场景焦点: 假设与由 setup_scenario 工具管理的单个活动场景进行交互。

贡献

欢迎贡献! 请参阅 CONTRIBUTING.md 文件以获取指南。

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选