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는 대규모 언어 모델(LLM)이나 다른 MCP 클라이언트가 선도적인 디지털 미션 엔지니어링 소프트웨어인 Ansys/AGI STK (시스템 툴킷)와 상호 작용할 수 있도록 설계된 MCP(모델 컨텍스트 프로토콜) 서버입니다.
이 프로젝트는 STK Python API를 활용하여 MCP 도구를 통해 STK 데스크톱을 제어할 수 있도록 합니다. 공식 MCP Python SDK 의 FastMCP
활용합니다. 서버 로직은 src/stk_mcp
패키지에 있습니다.
개요
이 프로젝트의 주요 목표는 프로그래밍 방식 또는 자연어 상호작용(LLM을 통한)과 STK의 강력한 시뮬레이션 기능 간의 격차를 해소하는 것입니다. MCP 서버를 통해 STK 기능을 제공함으로써 사용자는 MCP 클라이언트 또는 잠재적으로 LLM 기반 애플리케이션을 사용하여 STK 시뮬레이션을 실행할 수 있습니다.
src/stk_mcp/server.py
에 정의된 MCP 서버는 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 전파: 생성된 위성에 대한 TwoBody 전파기를 설정하고 실행합니다.
필수 조건
- 운영체제: Windows(STK Desktop 및
win32com
종속성으로 인해). - Python: 버전 3.12 이상.
- Ansys/AGI STK: 버전 12.x 데스크탑이 설치되었습니다.
- STK Python API: STK 설치에 맞는
agi.stk12
Python 휠을 설치해야 합니다. 일반적으로 다음이 포함됩니다.- STK 설치 디렉토리(대개
CodeSamples\Automation\Python
아래에 있음)에서 휠 파일(예:agi.stk12-py3-none-any.whl
)을 찾습니다. - pip를 사용하여 설치:
uv pip install path/to/agi.stk12-py3-none-any.whl
- STK 설치 디렉토리(대개
- 프로젝트 종속성:
mcp
라이브러리가 필요합니다(uv sync
통해 설치됨).
설치
- 저장소를 복제합니다.지엑스피1
- 전제 조건이 충족되는지 확인하세요: 위에서 설명한 대로 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://127.0.0.1:8765
). - "STK Control" 서버를 찾으세요.
- 이전과 마찬가지로 "도구" 섹션을 사용하여
setup_scenario
와create_satellite
실행합니다.
- 콘솔에 제공된 MCP Inspector URL을 엽니다(예:
- 서버 중지: 서버가 실행 중인 터미널에서
Ctrl+C
누르세요. 수명 관리자가 STK를 종료하려고 시도합니다.
사용 가능한 MCP 도구
setup_scenario
: (src/stk_mcp/tools/scenario.py
에 정의됨)- 설명: STK 시나리오를 생성/구성합니다. 기존 시나리오를 먼저 닫습니다.
- 인수:
scenario_name
(str, 기본값: "MCP_STK_Scenario"),start_time
(str, 기본값: "2020년 1월 20일 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_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 클라이언트가 Ansys/AGI STK(시스템 툴킷)와 상호 작용할 수 있도록 하는 MCP 서버로, 사용자는 STK 데스크톱 시뮬레이션을 프로그래밍 방식이나 자연어로 제어할 수 있습니다.