Abaqus GUI Scripting — MCP-сервер для управления Abaqus/CAE через GUI-автоматизацию
Данный MCP-сервер предоставляет программный интерфейс для взаимодействия с уже запущенным экземпляром Abaqus/CAE. Он не запускает и не останавливает Abaqus, а автоматизирует существующее графическое окружение: выполняет скрипты Python через меню File → Run Script…, а также читает текст из области сообщений/лога Abaqus/CAE. Управление GUI реализовано с помощью библиотеки pywinauto.
Основные возможности
- Выполнение произвольных Python-скриптов в работающем Abaqus/CAE через стандартное меню.
- Чтение текстового содержимого из лога/сообщений Abaqus/CAE.
- Реализация в виде стандартных MCP-инструментов (tools) и промптов (prompts).
- Не требует перезапуска Abaqus/CAE — работает с уже активной сессией.
- Позволяет отслеживать прогресс и результаты симуляций в реальном времени.
Варианты использования
- Мониторинг вывода и статуса расчётов Abaqus.
- Автоматизация типовых рутинных операций в среде Abaqus/CAE.
- Интеграция Abaqus/CAE с LLM-агентами для автоматизированного анализа и управления симуляциями.
Установка
- Требования:
- Рабочая установка Abaqus/CAE (версии, где есть меню File → Run Script…).
- Python 3.7+.
- Библиотека
pywinauto (для автоматизации GUI).
- Установите необходимые пакеты:
pip install pywinauto mcp
- Склонируйте репозиторий MCP-сервера (см. репозиторий на GitHub) или сохраните код локально.
Настройка и конфигурация
Сервер настраивается через переменные окружения или непосредственно в коде. Основные параметры:
ABAQUS_CAE_PATH — путь к исполняемому файлу Abaqus/CAE (необязательно, требуется только если сервер будет запускать CAE самостоятельно; по умолчанию сервер подключается к уже запущенному процессу).
PYWINAUTO_BACKEND — бэкенд pywinauto (обычно "win32" для Windows).
- Настройки MCP (transport, port) — стандартные для MCP-сервера (см. документацию MCP).
Убедитесь, что Abaqus/CAE запущен и окно активно, иначе pywinauto не сможет к нему подключиться.
Использование
После запуска MCP-сервера он предоставляет следующие инструменты (tools) и промпты (prompts):
run_script / run_script_prompt — выполняет переданный Python-скрипт через меню File → Run Script….
get_log — возвращает текущее текстовое содержимое из области лога/сообщений Abaqus/CAE.
Пример вызова (через MCP-клиент, например, Claude Desktop, VS Code с расширением MCP, или напрямую через протокол):
{
"tool": "run_script",
"arguments": {
"script": "print('Hello from Abaqus')\nmdb.models['Model-1'].Part(name='PART-1', dimensionality=THREE_D, type=DEFORMABLE_BODY)"
}
}
Ответом будет статус выполнения (успешно/ошибка) и, возможно, вывод скрипта, если он был перенаправлен в лог.
Пример получения лога:
{
"tool": "get_log",
"arguments": {}
}
Возвращает строку с текстом из сообщений Abaqus/CAE.
Важные замечания и ограничения
- Только Windows: pywinauto работает на Windows, поэтому сервер пригоден только для этой ОС.
- Abaqus/CAE должен быть запущен: сервер подключается по заголовку окна (обычно
"Abaqus/CAE"). Если окно свёрнуто или закрыто, подключение не удастся.
- Не запускает и не останавливает Abaqus: управление жизненным циклом Abaqus/CAE остаётся за пользователем.
- GUI-автоматизация может быть хрупкой: при изменении версии Abaqus/CAE, локализации интерфейса или разрешения экрана пути к элементам меню могут меняться. В случае проблем проверьте, что
pywinauto правильно идентифицирует главное окно и меню.
- Чтение лога: извлекается только текст, который уже отображается в GUI. История может быть неполной, если лог периодически очищается.
- Безопасность: сервер выполняет произвольные скрипты внутри Abaqus/CAE — убедитесь, что доступ к MCP-серверу контролируется, и передаваемые сценарии не повредят проект или систему.
Репозиторий и звёзды
Проект находится на GitHub и набрал 37 звёзд на момент написания. Обратная связь и вклады приветствуются.
Лицензия
(Укажите вашу лицензию, если требуется; в исходном тексте она не приведена, по умолчанию — MIT или Apache 2.0, уточните в репозитории.)
Документация написана для русскоязычных разработчиков, использующих Abaqus GUI Scripting MCP-сервер.
Комментарии
Комментариев пока нет. Будьте первым.