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 desrc/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 enCodeSamples\Automation\Python
). - Instalándolo usando pip:
uv pip install path/to/agi.stk12-py3-none-any.whl
- Ubicar el archivo de rueda (por ejemplo,
- Dependencias del proyecto: Requiere la biblioteca
mcp
(instalada a través deuv sync
).
Instalación
- Clonar el repositorio:Copy
- Asegúrese de que se cumplan los requisitos previos: instale Python, STK Desktop y la API de Python de STK como se describe anteriormente.
- Instalar dependencias del proyecto:Copy
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.
- Asegúrese de que STK Desktop esté cerrado (el servidor iniciará su propia instancia a través del administrador de vida útil).
- Ejecute el servidor MCP en modo de desarrollo:
- Opción A (Usando el script auxiliar):Copy
- Opción B (utilizando directamente el comando
mcp
desde la raíz del proyecto):Copy - El servidor se iniciará, intentará iniciarse/conectarse a STK e imprimirá registros.
- STK Desktop debería hacerse visible.
- El servidor escucha conexiones MCP.
- Opción A (Usando el script auxiliar):
- 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
ycreate_satellite
como antes.
- Abra la URL del Inspector MCP proporcionada en la consola (por ejemplo,
- 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 ensrc/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 ensrc/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 dewin32com.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.
This server cannot be installed
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.