Abaqus/CAE GUI Automation MCP server

Enables AI to control Abaqus/CAE finite element analysis software through GUI automation, executing Python scripts and retrieving message logs without modifying the core application.
Back to servers
Setup instructions
Provider
Zao Zhang
Release date
May 25, 2025
Language
Python
Stats
41 stars

This MCP server provides a bridge between Model Context Protocol (MCP) clients and an already running Abaqus/CAE GUI session. It allows you to execute Python scripts within Abaqus and retrieve message log output through automation, making it ideal for integrating Abaqus modeling capabilities with LLM agents or other MCP-compatible systems.

Installation Requirements

System Prerequisites

  • Operating System: Windows only (required for pywinauto and Abaqus GUI interaction)
  • Python: Version 3.7 or higher
  • Abaqus/CAE: Must be installed and already running with GUI open before using this server

Installing Dependencies

Install the required Python packages using pip:

pip install -r requirements.txt

Key dependencies include:

  • mcp[cli]
  • pywinauto
  • pygetwindow
  • psutil
  • pywin32

Using the MCP Server

Starting the Server

Before starting the server, ensure:

  1. Abaqus/CAE is already running with its GUI open and responsive
  2. No modal dialogs are blocking the Abaqus interface

Launch the server by running:

python mcp_server.py

The server will initialize and wait for MCP requests.

Available MCP Tools

Execute Script in Abaqus GUI

This tool allows you to run Python code in the active Abaqus session:

# Example of using the execute_script_in_abaqus_gui tool
execute_script_in_abaqus_gui('''
from part import *
from material import *
from section import *
from assembly import *
from step import *
from interaction import *
from load import *
from mesh import *
from optimization import *
from job import *
from sketch import *
from visualization import *
from connectorBehavior import *

# Create a new model
mdb.Model(name='Model-1')
print('Model created successfully')
''')

Important: This tool only submits the script to Abaqus but doesn't return the execution results. You must use the message log tool (described below) to check for output or errors.

Get Abaqus Message Log

After executing a script, use this tool to retrieve output from Abaqus:

# Example of retrieving the message log
message_log = get_abaqus_gui_message_log()
print(message_log)

Recommended Workflow

  1. Submit your Abaqus script using execute_script_in_abaqus_gui
  2. Wait for a moment to allow the script to execute (complex operations may take time)
  3. Use get_abaqus_gui_message_log to check for output or error messages
  4. For complex workflows, submit scripts incrementally and check the message log after each step

Limitations and Troubleshooting

Key Limitations

  • Works only with an already running Abaqus/CAE session
  • GUI automation can be sensitive to Abaqus version, screen resolution, and UI layout
  • The Abaqus window should ideally be active and non-minimized
  • Unexpected modal dialogs in Abaqus can block automation

Common Issues

If the message log retrieval fails to work properly:

  • The server may not be correctly identifying the message area UI element
  • You might need to update the server code with specific UI element identifiers for your Abaqus version

If script execution fails:

  • Ensure the Abaqus window is active and not obscured
  • Check that no dialog boxes are open within Abaqus
  • Verify your script syntax is valid for the Abaqus Scripting Interface

Remember to distinguish between errors from the MCP tools themselves versus errors reported within the Abaqus message log from your script execution.

How to install this MCP server

For Claude Code

To add this MCP server to Claude Code, run this command in your terminal:

claude mcp add-json "abaqus-mcp-server" '{"command":"python","args":["mcp_server.py"]}'

See the official Claude Code MCP documentation for more details.

For Cursor

There are two ways to add an MCP server to Cursor. The most common way is to add the server globally in the ~/.cursor/mcp.json file so that it is available in all of your projects.

If you only need the server in a single project, you can add it to the project instead by creating or adding it to the .cursor/mcp.json file.

Adding an MCP server to Cursor globally

To add a global MCP server go to Cursor Settings > Tools & Integrations and click "New MCP Server".

When you click that button the ~/.cursor/mcp.json file will be opened and you can add your server like this:

{
    "mcpServers": {
        "abaqus-mcp-server": {
            "command": "python",
            "args": [
                "mcp_server.py"
            ]
        }
    }
}

Adding an MCP server to a project

To add an MCP server to a project you can create a new .cursor/mcp.json file or add it to the existing one. This will look exactly the same as the global MCP server example above.

How to use the MCP server

Once the server is installed, you might need to head back to Settings > MCP and click the refresh button.

The Cursor agent will then be able to see the available tools the added MCP server has available and will call them when it needs to.

You can also explicitly ask the agent to use the tool by mentioning the tool name and describing what the function does.

For Claude Desktop

To add this MCP server to Claude Desktop:

1. Find your configuration file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json

2. Add this to your configuration file:

{
    "mcpServers": {
        "abaqus-mcp-server": {
            "command": "python",
            "args": [
                "mcp_server.py"
            ]
        }
    }
}

3. Restart Claude Desktop for the changes to take effect

Want to 10x your AI skills?

Get a free account and learn to code + market your apps using AI (with or without vibes!).

Nah, maybe later