ACM MCP Server
An MCP server that automates Aspen Custom Modeler (ACM) via COM, enabling steady-state and dynamic simulations and variable manipulation. It allows users to programmatically manage ACM sessions and interact with .acmf files through standardized tools.
README
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_acm |
Open an .acmf file and create a session |
connect_acm |
Connect to an already-running ACM instance |
close_acm |
Close a session and quit ACM |
list_acm_sessions |
List all active sessions |
Simulation Tools
| Tool | Description |
|---|---|
run_steady_state |
Run steady-state simulation |
run_dynamic |
Run dynamic simulation to a specified end time |
get_simulation_status |
Get current status, DOF, convergence info |
reset_simulation |
Reset to initial conditions |
Variable Tools
| Tool | Description |
|---|---|
get_variable |
Get a variable by dot-notation path (e.g. B1.Tank.h) |
set_variable |
Set a variable's value |
get_variables_bulk |
Get multiple variables at once |
find_variables |
Find variables matching a wildcard pattern |
Task Tools
| Tool | Description |
|---|---|
create_task |
Create a task on the flowsheet |
activate_task |
Activate a task for dynamic simulation |
deactivate_task |
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 reference
License
MIT
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.