ACM MCP Server

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.

Category
Visit Server

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 (not win32com, 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:

  1. run_steady_state at initial conditions
  2. run_dynamic to a small time (e.g. 0.001) — locks state variables at old SS
  3. set_variable to apply the step change
  4. run_dynamic to successive times, reading variables at each point

Important: Do NOT set_variable before the first run_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 decisions
  • tools.md — Full tool reference with parameters and examples
  • com-api.md — ACM COM API notes and gotchas
  • Error_Logbook.txt — Known ACM errors and fixes
  • acm_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

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.

Official
Featured
TypeScript
Magic Component Platform (MCP)

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.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

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.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

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.

Official
Featured
TypeScript
Kagi MCP Server

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.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

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.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured