ACM MCP Server
Provides tools for automating Aspen Custom Modeler (ACM), enabling users to manage simulation sessions, run steady-state and dynamic simulations, and programmatically read or write model variables.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ACM MCP ServerOpen distillation.acmf, run steady-state, and tell me the value of B1.Tank.h"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
ACM MCP Server
An MCP (Model Context Protocol) server that automates Aspen Custom Modeler (ACM) via COM. Designed for use with Claude Code to open .acmf files, run simulations, and read/write variable values programmatically.
Features
15 MCP tools for full ACM automation: session management, steady-state and dynamic simulation, variable access, and task control
Session-based — manage multiple ACM instances
COM automation via
comtypes(notwin32com, which has known VARIANT issues with ACM)Comprehensive docs — includes condensed ACM V15 Help (2,227 pages distilled to 10 markdown files)
Requirements
Windows (COM automation is Windows-only)
Python 3.10+
Aspen Custom Modeler V15 installed
Claude Code (or any MCP-compatible client)
Installation
pip install "mcp[cli]>=1.0.0" "comtypes>=1.4.0"Setup with Claude Code
Add this to your project's .mcp.json:
{
"mcpServers": {
"acm": {
"command": "python",
"args": ["<path-to>/acm-mcp/server.py"]
}
}
}Restart Claude Code after first setup to pick up the server.
Tools
Session Tools
Tool | Description |
| Open an |
| Connect to an already-running ACM instance |
| Close a session and quit ACM |
| List all active sessions |
Simulation Tools
Tool | Description |
| Run steady-state simulation |
| Run dynamic simulation to a specified end time |
| Get current status, DOF, convergence info |
| Reset to initial conditions |
Variable Tools
Tool | Description |
| Get a variable by dot-notation path (e.g. |
| Set a variable's value |
| Get multiple variables at once |
| Find variables matching a wildcard pattern |
Task Tools
Tool | Description |
| Create a task on the flowsheet |
| Activate a task for dynamic simulation |
| Deactivate a task |
Quick Start
1. open_acm("path/to/model.acmf")
2. run_steady_state("model")
3. get_variable("model", "B1.Tank.h") → "B1.Tank.h = 40.0 [cm] (Free)"Dynamic step change procedure
To observe transient dynamics after a step change:
run_steady_stateat initial conditionsrun_dynamicto a small time (e.g. 0.001) — locks state variables at old SSset_variableto apply the step changerun_dynamicto successive times, reading variables at each point
Important: Do NOT
set_variablebefore the firstrun_dynamic— ACM re-initializes state variables at the new conditions, producing an instant jump to new SS with no visible transient.
Documentation
Detailed documentation is in docs/:
overview.md— Architecture and design decisionstools.md— Full tool reference with parameters and examplescom-api.md— ACM COM API notes and gotchasError_Logbook.txt— Known ACM errors and fixesacm_help/— Condensed ACM V15 Help system (10 files covering modeling language, solver options, library reference, examples, etc.)
Architecture
server.py # FastMCP entry point, 15 tool registrations
acm_manager.py # COM lifecycle: subprocess launch, GetActiveObject, sessions
tools/
session_tools.py # open, connect, close, list
simulation_tools.py # run steady/dynamic, status, reset
variable_tools.py # get, set, bulk get, find
task_tools.py # create, activate, deactivate
docs/ # Documentation and ACM Help referenceLicense
MIT
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Pekosann/acm-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server