본문으로 건너뛰기

© 2026 Molayo

GitHub요약2026. 05. 22. 11:27

jianzhichun/abaqus-mcp-server

요약

Abaqus/CAE GUI와 상호작용할 수 있는 MCP(Model Context Protocol) 서버입니다. pywinauto를 활용해 실행 중인 Abaqus 세션에서 Python 스크립트를 실행하고 메시지 로그를 가져오는 기능을 제공하여 LLM 에이전트와의 통합을 지원합니다.

핵심 포인트

  • MCP를 통한 Abaqus/CAE GUI 자동화 및 제어
  • pywinauto 기반의 GUI 스크립트 실행 및 로그 스크래핑
  • LLM 에이전트와 시뮬레이션 소프트웨어 간의 인터페이스 제공
  • Windows 환경 및 Python 3.7 이상 필수

English | 中文

이미 실행 중인 Abaqus/CAE 그래픽 사용자 인터페이스 (GUI)와 상호작용하도록 설계된 MCP (Model Context Protocol) 서버입니다. 이 서버는 MCP 도구(tools)를 통해 Abaqus 환경 내에서 Python 스크립트를 실행하고, Abaqus 메시지 로그/영역(message log/area)에서 메시지를 가져올 수 있게 해줍니다.

이 서버는 Abaqus/CAE 애플리케이션을 제어하기 위해 GUI 자동화 기술 (pywinauto)을 사용합니다.

GUI 내 스크립트 실행: 활성화된 Abaqus/CAE 세션에서 "File -> Run Script..." 메뉴를 자동화하여 Python 스크립트를 실행합니다.
메시지 로그 가져오기: Abaqus/CAE 메시지/로그 표시 영역에서 텍스트 콘텐츠를 스크래핑(scrape)하려고 시도합니다.
MCP 인터페이스: 기능을 표준 MCP 도구 및 프롬프트(prompts)로 노출하여 LLM 에이전트 및 기타 MCP 호환 클라이언트와 쉽게 통합할 수 있도록 합니다.
기존 GUI에서 작동: Abaqus/CAE를 시작하거나 종료하지 않습니다. 이 서버를 사용하려면 Abaqus/CAE 세션이 이미 열려 있고 실행 중이어야 합니다.

운영 체제 (Operating System): Windows (pywinauto 및 Abaqus GUI 상호작용 때문).
Python: Python 3.7+.
Abaqus/CAE: 이 서버를 사용할 때는 호환 가능한 버전의 Abaqus/CAE가 설치되어 있어야 하며, GUI가 열린 상태로 이미 실행 중이어야 합니다.

pip를 사용하여 필요한 Python 패키지를 설치하세요:

pip install -r requirements.txt

(requirements.txt에서 종속성 목록을 확인하세요. 주로 mcp[cli], pywinauto, pygetwindow, psutil, pywin32가 포함됩니다.)

Abaqus/CAE가 실행 중인지 확인: 이 MCP 서버를 시작하기 전에, Abaqus/CAE 애플리케이션이 데스크톱에 열려 있고 GUI가 로드되어 응답 가능한 상태인지 확인하십시오.
접근성: 서버가 Abaqus/CAE와 상호작용을 시도할 때 다른 모달 대화 상자(modal dialogs)가 인터페이스를 차단하지 않도록 하십시오.

서버 디렉토리로 이동하여 다음을 실행하세요:

python mcp_server.py

서버가 시작되며 MCP 요청을 받을 준비가 됩니다.

execute_script_in_abaqus_gui

설명 (Description): 활성화된 Abaqus/CAE GUI 세션 내에서 주어진 Python 코드 문자열을 실행합니다. 'File -> Run Script...' 메뉴 프로세스를 자동화합니다.

인자 (Argument):
python_code (str)

: 실행될 Python 스크립트 내용 (Abaqus Scripting Interface 명령).

반환값 (Returns):
str

  • 스크립트 제출 (submission) 시도의 결과를 나타내는 메시지 (예: "Script submitted for execution...").

중요 (Important): 이 도구는 Abaqus 내에서 실행되는 스크립트의 직접적인 출력이나 에러 메시지를 반환하지 않습니다. 스크립트의 실제 결과를 확인하려면, 스크립트가 실행될 시간을 충분히 준 후 get_abaqus_gui_message_log 도구를 사용해야 합니다.

get_abaqus_gui_message_log

설명 (Description): Abaqus/CAE 메시지/로그 영역(보통 메인 GUI 창 하단에 위치)에서 텍스트 콘텐츠를 가져오려고 시도합니다.

인자 (Arguments): 없음.

반환값 (Returns):
str

  • 메시지 영역에서 추출된 텍스트, 또는 가져오기에 실패했을 경우의 에러/상태 메시지.

참고 (Note): 이 도구의 신뢰성은 메시지 영역 UI 요소를 정확하게 식별하는지에 달려 있습니다. 현재 구현은 휴리스틱 (heuristics)을 사용합니다. 특정 Abaqus 환경에서 견고한 동작을 위해서는, 검사 도구 (inspect tool)를 사용하여 얻은 특정 UI 요소 식별자 (예: AutomationId, Name, ClassName)를 사용하여 서버 코드를 업데이트해야 할 수도 있습니다 (Development/Troubleshooting 참조).

abaqus_scripting_strategy

설명 (Description): 이 프롬프트는 서버의 도구들(execute_script_in_abaqus_guiget_abaqus_gui_message_log)을 함께 효과적으로 사용하는 방법에 대한 포괄적인 가이드를 제공합니다. 스크립트 실행 및 결과 검증을 위한 워크플로(workflow), 도구에 대한 가정, 그리고 문제 해결 팁을 설명합니다. LLM 에이전트가 도구를 사용하기 전에 이 프롬프트를 참조할 것을 강력히 권장합니다.

Abaqus GUI 실행 필요: 이 서버는 이미 열려 있고 GUI가 활성화되어 응답 가능한 상태인 Abaqus/CAE 세션과 상호작용합니다. Abaqus 애플리케이션 자체를 시작하거나 관리할 수는 없습니다.

GUI 자동화 민감도: GUI 자동화는 Abaqus 버전, 화면 해상도, 윈도우 테마 및 미세한 UI 레이아웃 변경에 민감할 수 있습니다. pywinauto가 우수한 수준의 추상화 (Abstraction)를 제공하지만, 여전히 문제가 발생할 수 있습니다.

포커스 및 창 상태: 서버가 포커스 (Focus) 관리를 시도하지만, 가장 안정적인 상호작용을 위해서는 Abaqus 창이 활성화되어 있고 최소화되지 않은 상태여야 합니다.

모달 대화 상자 (Modal Dialogs): Abaqus에서 발생하는 예상치 못한 모달 대화 상자 (예: 저장 확인 알림, 경고)는 자동화 도구를 차단할 수 있습니다.

오류 보고: MCP 도구에서 발생하는 오류 (예: "Abaqus 창을 찾을 수 없음")와 Abaqus 메시지 로그 내부에서 보고되는 오류 (Abaqus 내부에서 실행 중인 스크립트에서 기인함)를 구분하십시오.

UI 요소 검사: get_abaqus_gui_message_log 도구가 메시지를 정확하게 가져오지 못하거나, execute_script_in_abaqus_gui가 "Run Script" 대화 상자 처리 시 문제를 겪는 경우, UI 검사 도구 (예: pywinauto.inspect 모듈의 InspectDialog 또는 py_inspect.py 스크립트, UIA 백엔드를 위한 FlaUInspect)를 사용하여 사용 중인 Abaqus 버전에서 대상 UI 요소의 정확한 속성 (AutomationId, Name, ClassName, ControlType)을 식별해야 할 수도 있습니다. 이러한 속성은 mcp_server.py의 검색 로직을 개선하는 데 사용될 수 있습니다.

타임아웃 (Timeouts): 서버에는 Abaqus의 잠재적으로 느린 UI 응답 시간을 더 잘 처리하기 위해 일부 time.sleep() 호출이 포함되어 있으며 pywinautoTimings.slow()를 사용합니다. 일부 환경에서는 이러한 설정의 조정이 필요할 수 있습니다.

abaqus-mcp-gui-server/
├── mcp_server.py # 메인 MCP 서버 스크립트
├── requirements.txt # Python 의존성 (Dependencies)
...

이 프로젝트는 학습, 연구 및 특정 자동화 작업을 목적으로 합니다. Abaqus 소프트웨어를 사용할 때는 항상 Dassault Systèmes에서 제공하는 라이선스 약관을 준수하십시오.

AI 자동 생성 콘텐츠

본 콘텐츠는 GitHub AI Tools의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0