仿真建模MCP服务器

一个用于ExtendSim的AI驱动仿真建模MCP服务器,支持AI助手构建、配置、运行和分析仿真模型。

  • by Duke-Systems-AB
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 Duke-Systems-AB/SimulationsMCP

使用说明

Simulations MCP Server

AI-powered simulation modeling for ExtendSim

An MCP (Model Context Protocol) server that enables AI assistants to build, configure, run, and analyze ExtendSim simulation models. Works with Claude Code, Claude Desktop, Gemini CLI, Cursor, and ChatGPT.

Note: This is an independent third-party tool by Duke Systems AB. It is not affiliated with or endorsed by Imagine That, Inc. (a subsidiary of ANDRITZ Inc.), the makers of ExtendSim.

Overview

AI Client (Claude, Gemini, Cursor, ChatGPT)
    │
    │  MCP Protocol (JSON-RPC 2.0)
    ▼
TypeScript MCP Server (116 tools)
    │
    │  JSON over stdin/stdout
    ▼
Python COM Backend (pywin32)
    │
    │  COM/DCOM
    ▼
ExtendSim Application

The server exposes 116 tools across 18 categories:

Category Tools
Model Management model_open, model_save, model_new, model_close, model_info, model_validate, model_extract, model_overview, model_snapshot, model_list, model_files_list, model_files_repoint, model_files_configure
Block Operations block_add, block_add_batch, block_connect, block_disconnect, connect_chain, connect_graph, block_remove, block_list, connection_list, block_info, block_discover, block_discover_variables, block_introspect
Block Layout block_move, block_get_position, block_align, block_duplicate, block_find
Configuration block_configure, block_set_value, block_get_value, execute_command, attribute_set, attribute_get, table_get, table_set, detect_attributes, resources_configure
Simulation simulation_run, simulation_stop, simulation_pause, simulation_resume, simulation_status, simulation_get_results, simulation_setup_get, simulation_setup_set, simulation_step, simulation_get_state
Statistics block_get_stats, simulation_get_block_stats, resource_pool_get_stats
Multi-Run simulation_run_multi, simulation_run_scenarios, scenario_manager_configure, scenario_manager_run, scenario_manager_status, scenario_manager_get_results, optimizer_configure, optimizer_run, optimizer_get_results, analysis_manager_configure, analysis_manager_get_results
Database db_list, db_table_info, db_get_value, db_set_value, db_get_records, db_add_records, db_delete_records, db_create, db_import, db_export, db_find_record, db_sort, db_relations_list, db_relation_create
Global Arrays ga_list, ga_create, ga_read, ga_write
Hierarchy hierarchy_list, hierarchy_get_contents
AI Assistance MCP_init, modeling_guide, pattern_search, model_advisor, simulation_type_guide, guide_draft, guide_save, guide_delete
Reference modl_search, block_search, block_profile, dialog_search, template_list, block_template
Templates text_block_add
Time/Date time_convert
Context context_set, context_get, context_clear
Status extendsim_status, extendsim_start, extendsim_get_license
Patterns & Mining instantiate_pattern, compose_flow, list_patterns, get_pattern, extract_psg, mine_candidates, cluster_patterns, approve_pattern
Telemetry telemetry_control

Requirements

  • Windows 10/11 (64-bit)
  • Node.js 18+
  • Python 3.9+ — developed and tested on 3.13; the backend uses no syntax newer than 3.7
  • Python packages: pip install -r src/ExtendSimMCP.TypeScript/requirements.txt (pywin32 for COM, comtypes for reading the text of blocking ExtendSim dialogs — without the latter the server still runs and still dismisses dialogs, but a timeout can no longer tell you what ExtendSim complained about)
  • ExtendSim installed with COM component registered

Quick Start

Install from Source

cd src/ExtendSimMCP.TypeScript
npm install
npm run build

Install from Installer

Download SimulationsMCP-Setup-1.27.0.exe from the installer/ directory and run it.

The prebuilt installer matches the current source: v1.27.0, 116 tools. See CHANGELOG.md for release history.

Configure Your AI Client

Add to your MCP configuration (e.g., .mcp.json for Claude Code):

{
  "mcpServers": {
    "SimulationsMCP": {
      "command": "node",
      "args": ["C:/Program Files/SimulationsMCP/dist/index.js"]
    }
  }
}

For other clients (Claude Desktop, Gemini CLI, Cursor, ChatGPT), see the User Manual.

First Session

  1. Start ExtendSim
  2. Open your AI client
  3. Run MCP_init to get rules and guidance
  4. Use modeling_guide or pattern_search to find the right approach
  5. Build, configure, run, and analyze your simulation

Transport Modes

Mode Use Case Setup
stdio (default) Claude Code, Claude Desktop, Gemini CLI, Cursor Zero config — AI client starts the server as a subprocess
HTTP ChatGPT Windows Service on localhost:3001, requires HTTPS reverse proxy

Key Features

  • block_configure — Single tool that auto-detects block type and configures Activity, Queue, Create, Exit, Select Item, Gate, Tank, Valve, and 25+ more block types
  • Fire-and-forget — simulation_run starts non-blocking by default; poll with status tools. scenario_manager_run and optimizer_run check their outcome with waitForCompletion: true
  • 268 example models — Search verified patterns via pattern_search
  • 12 modeling guides — Step-by-step guidance for queuing, manufacturing, logistics, resources, flow, and continuous systems
  • Block guides — block_search with detail: true explains a block: what it is for, recipes proved with the server's tools, what is not proved, and pitfalls (first: Queue Matching, Queue Equation, Query Equation (I))
  • block_profile — understand any block, including your own libraries, by asking ExtendSim through COM
  • Model advisor — Automatic warnings, suggestions, and completions for your model
  • Auto-dialog-dismisser — Clicks OK on ExtendSim's own blocking message boxes (never another program's), also during long simulations, and passes the message text to the AI; also closes ExtendSim's start-up reminders, whose text (it can hold the licence key) is never passed on
  • Stuck-safe — If ExtendSim does not finish a command, further commands are answered at once with EXTENDSIM_BUSY instead of queuing behind it; the server resumes by itself when ExtendSim answers

Documentation

  • User Manual — Installation, configuration, tool reference, workflows, troubleshooting
  • Design Document — Architecture, security analysis, threat model, data flows

Build

cd src/ExtendSimMCP.TypeScript
npm install
npm run build

The test suite and development tooling are kept in the development repository and are not part of this distribution.

Security

  • stdio mode: In stdio mode the server listens on no port. Its only network activity is that monthly guide check; the fetched file is treated as untrusted input (size-capped, schema-validated, unknown fields dropped).
  • No credentials stored — COM uses Windows process-level trust
  • Local-only telemetry — Usage patterns logged to disk, never transmitted
  • Input validation — Zod schemas on all tool parameters, ModL string sanitization
  • Works fully offline. By default the server checks duke.se for newer modelling guides at most once a month, with one HTTPS GET that sends nothing about you or your models. Turn it off with SIMULATIONSMCP_WEB_LOOKUP=off, or machine-wide with policy.json (see the user manual).

See the Design Document for the full security architecture and threat analysis.

License

MIT — see LICENSE

Author

Duke Systems AB


Built with the Model Context Protocol


Trademark Notice: ExtendSim is a registered trademark of Imagine That, Inc., a subsidiary of ANDRITZ Inc. This project is an independent third-party integration and is not affiliated with, endorsed by, or sponsored by Imagine That, Inc. or ANDRITZ. All other trademarks are the property of their respective owners.