STK-MCP

by alti3
Verified

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 es un servidor MCP (Protocolo de contexto de modelo) diseñado para permitir que los modelos de lenguaje grandes (LLM) u otros clientes MCP interactúen con Ansys/AGI STK (Kit de herramientas de sistemas), el software líder en ingeniería de misión digital.

Este proyecto permite controlar STK Desktop mediante herramientas MCP, aprovechando la API de Python de STK. Utiliza FastMCP del SDK oficial de Python para MCP . La lógica del servidor reside en el paquete src/stk_mcp .

Descripción general

El objetivo principal de este proyecto es conectar la interacción programática o en lenguaje natural (mediante LLM) con las potentes capacidades de simulación de STK. Al exponer las funcionalidades de STK a través de un servidor MCP, los usuarios pueden controlar simulaciones de STK mediante clientes MCP o, potencialmente, aplicaciones basadas en LLM.

El servidor MCP, definido en src/stk_mcp/server.py , administra la interacción de STK y expone la funcionalidad, mostrando cómo:

  • Conéctese a una instancia de STK Desktop en ejecución o inicie una nueva a través de la administración del ciclo de vida del servidor ( src/stk_mcp/stk_logic/core.py ).
  • Exponer las operaciones STK como herramientas MCP (definidas en src/stk_mcp/tools/ ).
  • Cree y configure escenarios STK utilizando la herramienta setup_scenario .
  • Agregue y configure programáticamente objetos Satellite utilizando la herramienta create_satellite .
  • Definir órbitas de satélites utilizando parámetros orbitales comunes.
  • Utilice el propagador TwoBody para la simulación de órbita dentro de las herramientas.

Características (Servidor MCP)

  • Implementación del servidor MCP: utiliza FastMCP dentro de src/stk_mcp/server.py .
  • Estructura modular: Código organizado en configuración del servidor ( server.py ), lógica de interacción STK ( stk_logic/ ) y herramientas MCP ( tools/ ).
  • Integración de escritorio STK: se conecta o inicia automáticamente STK 12 (requiere Windows) cuando se inicia el servidor, administrado a través de la vida útil de MCP.
  • Herramienta de gestión de escenarios ( setup_scenario ): crea nuevos escenarios, establece períodos de tiempo de análisis y cierra cualquier escenario preexistente.
  • Herramienta de creación de satélites ( create_satellite ): agrega objetos satélite al escenario activo actualmente.
  • Definición de órbita: configura las órbitas de los satélites utilizando la altitud de apogeo/perigeo, RAAN y la inclinación.
  • Propagación TwoBody: configura y ejecuta el propagador TwoBody para los satélites creados.

Prerrequisitos

  • Sistema operativo: Windows (debido a la dependencia de STK Desktop y win32com ).
  • Python: versión 3.12 o superior.
  • Ansys/AGI STK: Versión 12.x Desktop instalada.
  • API de Python de STK: Debe instalarse la rueda de Python agi.stk12 correspondiente a su instalación de STK. Esto suele implicar:
    • Ubicar el archivo de rueda (por ejemplo, agi.stk12-py3-none-any.whl ) dentro del directorio de instalación de STK (generalmente en CodeSamples\Automation\Python ).
    • Instalándolo usando pip: uv pip install path/to/agi.stk12-py3-none-any.whl
  • Dependencias del proyecto: Requiere la biblioteca mcp (instalada a través de uv sync ).

Instalación

  1. Clonar el repositorio:
    git clone <repository-url> cd stk-mcp
  2. Asegúrese de que se cumplan los requisitos previos: instale Python, STK Desktop y la API de Python de STK como se describe anteriormente.
  3. Instalar dependencias del proyecto:
    # Install dependencies defined in pyproject.toml (includes mcp[cli]) uv sync

Uso (Servidor MCP)

La lógica del servidor MCP ahora está estructurada en el directorio src/stk_mcp . Se interactúa con él mediante un cliente MCP o herramientas de desarrollo.

  1. Asegúrese de que STK Desktop esté cerrado (el servidor iniciará su propia instancia a través del administrador de vida útil).
  2. Ejecute el servidor MCP en modo de desarrollo:
    • Opción A (Usando el script auxiliar):
      python scripts/run_dev.py
    • Opción B (utilizando directamente el comando mcp desde la raíz del proyecto):
      mcp dev src/stk_mcp/server.py
    • El servidor se iniciará, intentará iniciarse/conectarse a STK e imprimirá registros.
    • STK Desktop debería hacerse visible.
    • El servidor escucha conexiones MCP.
  3. Interactuar con el servidor (ejemplo usando MCP Inspector):
    • Abra la URL del Inspector MCP proporcionada en la consola (por ejemplo, http://127.0.0.1:8765 ).
    • Busque el servidor "STK Control".
    • Utilice la sección "Herramientas" para ejecutar setup_scenario y create_satellite como antes.
  4. Detener el servidor: Presione Ctrl+C en la terminal donde se ejecuta el servidor. El administrador de vida útil intentará cerrar STK.

Herramientas MCP disponibles

  • setup_scenario : (Definido en src/stk_mcp/tools/scenario.py )
    • Descripción: Crea/Configura un escenario STK. Cierra primero cualquier escenario existente.
    • Argumentos: scenario_name (str, predeterminado: "MCP_STK_Scenario"), start_time (str, predeterminado: "20 Jan 2020 17:00:00.000"), duration_hours (float, predeterminado: 48.0).
  • create_satellite : (Definido en src/stk_mcp/tools/satellite.py )
    • Descripción: Crea o modifica un satélite STK. Se asume que hay un escenario activo.
    • Argumentos: name (str), apogee_alt_km (flotante), perigee_alt_km (flotante), raan_deg (flotante), inclination_deg (flotante).

Desarrollo futuro (servidor MCP y automatización ampliada)

Las mejoras planificadas incluyen:

  • Agregar ubicaciones de terreno: herramienta MCP para agregar un objeto de instalación o lugar.
  • Puntos finales de recursos: agregue recursos MCP (por ejemplo, get_scenario_details , list_objects ) para consultar el estado de STK.
  • Definición mejorada de satélite/objeto: opciones de configuración más completas.
  • Herramienta de análisis de acceso: calcula e informa el acceso entre objetos.
  • Manejo de errores: informes de errores más sólidos al cliente MCP.

Dependencias

  • agi.stk12 : para interactuar con STK Desktop (requiere instalación manual desde STK).
  • mcp[cli]>=1.6.0 : Biblioteca de protocolo de contexto de modelo.
  • pywin32 : se instala automáticamente en Windows; se utiliza para interacciones COM a través de win32com.client .

Limitaciones

  • Solo Windows: depende en gran medida de la automatización del escritorio STK a través de COM.
  • Requerido STK Desktop: actualmente no es compatible con STK Engine.
  • Funcionalidad básica: actualmente limitada a la configuración de escenarios y la creación básica de satélites.
  • Enfoque de escenario único: asume la interacción con un único escenario activo administrado por la herramienta setup_scenario .

Contribuyendo

¡Agradecemos sus contribuciones! Consulte el archivo CONTRIBUTING.md para obtener las directrices.

-
security - not tested
F
license - not found
-
quality - not tested

Un servidor MCP que permite que los modelos de lenguaje grande u otros clientes MCP interactúen con Ansys/AGI STK (Systems Tool Kit), lo que permite a los usuarios controlar simulaciones de STK Desktop mediante programación o mediante lenguaje natural.

  1. Overview
    1. Features (MCP Server)
      1. Prerequisites
        1. Installation
          1. Usage (MCP Server)
            1. MCP Tools Available
              1. Future Development (MCP Server & Expanded Automation)
                1. Dependencies
                  1. Limitations
                    1. Contributing
                      ID: py60kbwecv