acp-mcp-agent
acp-mcp-agent
概要
LLMエージェントが ANSYS Composite Pre [ACP(Pre)] を操作できるようにするMCPサーバーです。 積層構成の読み取り、繊維角度や層数の変更、製造ルールのチェック、解析モデルと複合材定義のエクスポートを行います。
ACPとの通信方法は2つあり、その違いが重要です。
agent ─┬─ acp_* ──► PyACP ──► acp_grpcserver.exe headless, batch / optimisation
└─ acp_gui_* ──► TCP 47800 ──► ACP-Pre GUI live, visible on screenPyACPは独自のヘッドレスACPセッションを起動するため、実行中のACP-Preウィンドウに接続できません。そこで、GUI内蔵Pythonで動作する小さなソケットリスナーという第2の経路があります。これはwxメインスレッド上でモデル編集を実行します。角度を変更すると、見ている間にビューポートが再描画されます。
2つのセッションは独立しています。acp_gui_*はGUIで開いているモデルを編集し、acp_*はヘッドレスの方を編集します。タスクごとにどちらかを選び、そこに留まってください。
スコープは複合材ループの上流側です。ソルバーと後処理は、すでに機能している場所にそのまま残ります。
acp-mcp-agent (lay-up) ──► analysis model ──► Mechanical (BC / mesh / solve)
──► composite defs ──► PyDPF-CompositesRelated MCP server: Ansys MCP Server
ライブデモ
要件
ANSYS | ACP付き。2026 R1( |
Python | サーバー側は3.10以上 — MCPクライアントが起動するインタープリタであればどれでも |
パッケージ |
|
OS | Windows。ブリッジ自体はポータブルですが、記載のパスはそうではありません |
クライアント | 任意のMCPクライアント。Claude Desktopで検証済み |
ANSYSはpipパッケージではありません。ansys-acp-coreはローカルのANSYSインストールからACP gRPCサーバーを起動します。それがなければ、ここにあるものは何も実行できません。
GUIブリッジはインストール不要です。ACP-Pre内蔵のPython(テスト済み2026 R1では3.10)内で動作し、標準ライブラリと、ACP-Preがすでに提供しているwxのみを使用します。
パス
このリポジトリ内のどこにも、マシン固有のパスは埋め込まれていません。1つの環境変数が場所を保持します。
変数 | 読み取る場所 | 意味 |
|
|
|
|
| プローブ出力の書き込み先(デフォルト: |
|
| プローブ出力の書き込み先(デフォルト: 一時ディレクトリ) |
install_autoload.pyは、解決されたパスをインストール先のモデルに焼き付けます。そのため、埋め込まれたコピーは後で環境変数を必要としません。
リポジトリ構成
acp_mcp.py the MCP server - 15 tools, stdio transport
acp_gui_bridge.py socket listener that runs INSIDE ACP-Pre
acp_gui_autoload.py tiny loader, embedded in a model for a persistent bridge
install_autoload.py embeds the loader in the open model, one call
mcp_config.example.json client registration template
requirements.txt
probes/
00_probe_pyacp.py stage 1: what this PyACP install actually exposes
gui_probe.py GUI console API exploration
gui_probe2.py deeper GUI console API dump
docs/
pyacp_api_report.txt reference probe output (yours lands in probes/)
gui_probe2_out.txt reference GUI console dump, 2026 R1
acp-scripting-notes.md undocumented ACP behaviour worth knowingゼロからのセットアップ
1. Python側をインストール
git clone https://github.com/aalperakiss/acp-mcp-agent.git
cd acp-mcp-agent
pip install -r requirements.txtリポジトリではなくzipとして配布されていますか? どこかに解凍し、フォルダにcdしてpip install行を実行してください。ここではgitに依存するものはなく、このREADMEのパスはすべてフォルダルートからの相対パスです。
1つのインタープリタを使用し、その絶対パスを覚えておいてください。venv、Anacondaなど何でも構いませんが、クライアント設定に入れたものと正確に同じインタープリタでなければなりません。「mcpが見つからない」というサーバーは、ほとんどの場合、別のPythonが原因です。
2. ANSYSインストールをプローブ
python probes\00_probe_pyacp.pyセッションプローブのみ: ここでlaunch_acp()が失敗した場合、後続のすべては無意味です。レポートはprobes\pyacp_api_report.txtに出力されます。docs\pyacp_api_report.txtは開発マシンからの参照用で、比較のために保持されています。
次に、モデルを指定します:
python probes\00_probe_pyacp.py C:/path/to/your.acph5PyACPはリリース間でいくつかのメソッド名を変更しているため、acp_mcp.pyは各操作を呼び出し時にファイル上部のCANDIDATES辞書から解決します。プローブレポートをCANDIDATES、PLY_ANGLE_ATTRS、PLY_COUNT_ATTRSと比較し、不足している実際の名前を追加してください。1箇所、1編集で済みます。
.acph5が必要ですか? ACP-Preを開き、ファイル → 名前を付けて保存。ACP-Preが開いていても、それ自体はPyACPの助けにはなりません。
3. サーバーをクライアントに登録
Claude Desktopの設定は%APPDATA%\Claude\claude_desktop_config.jsonにあります。mcp_config.example.jsonのacpエントリを、既存のmcpServersオブジェクトの内側に、すでにあるものと並べて貼り付けてください。ファイルを置き換えないでください。カンマに注意し、バックスラッシュはすべて2重にしてください(またはフォワードスラッシュを使用)。
その後、クライアントを完全に終了(システムトレイも含む)してから再度開いてください。ツールリストは起動時に固定されます。実行中のクライアントが新しいサーバーを認識することはありません。
クライアントなしでの動作確認:
npx @modelcontextprotocol/inspector python acp_mcp.py4. ヘッドレス側の検証
順番に呼び出し、それぞれがError:ではなくJSONを返すことを確認してください。
acp_import_modelacp_get_layupacp_set_ply_angles— 1つのプライを変更し、積層構成を再読み取りacp_check_layup_rules— 実際のモデルでの違反は正常ですacp_update_and_exportacp_save_for_gui— 結果をACP-Preで開いて目視確認
これはすでに有用な作業です: モデルを開き、積層構成を一覧表示し、角度を変更し、ルールをチェックし、エクスポートします。さらに自動化する前に、しばらくこれで運用する価値があります。
5. ライブGUIブリッジを起動
モデルを開いたACP-Preを起動し、Pythonコンソールを開いて、次の1行を貼り付けます:
exec(open('<repo>/acp_gui_bridge.py').read())次のように表示されるはずです:
[acp_gui_bridge] listening on 127.0.0.1:47800これで、エージェントからのacp_gui_statusがpong: trueと開いているモデルの名前を返します。そこからacp_gui_set_ply_anglesでビューポートがライブで再描画されます。
リスナーはACP-Preプロセス内に存在します。ACP-Preを閉じると消えます。もう一度その行を貼り付けるか、以下のように永続化してください。
6. 永続ブリッジ(オプション)
オートローダーをScriptオブジェクトとしてモデルに埋め込み、ACP-Preが自動的にリスナーを起動するようにします。ACP-Preコンソールで:
import os
os.environ['ACP_BRIDGE_PATH'] = '<repo>/acp_gui_bridge.py'
exec(open('<repo>/install_autoload.py').read())その後、モデルを保存します。これを無謀ではなく安全にする3つのポイント:
ローダーは埋め込まれ、ブリッジは埋め込まれません。 Scriptオブジェクトはソースを文字列として保存するため、ブリッジ全体を埋め込むと、ファイルを開くすべてのマシンにリスナーが配布されてしまいます。ローダーは代わりにディスクからブリッジを読み取ります。ファイルがなければリスナーもなく、1行の出力だけです。
冪等です。
alwaysモードは、プライ編集後にブリッジ自身がトリガーする更新を含む、すべてのmodel.update()で発火します。sys._acp_bridgeのガードにより、リクエスト中にポート47800が再バインドされるのを防ぎます。dbを自分で取得します。 Scriptオブジェクトは空のグローバルで実行されます —dbもmodelもありません。ローダーは__main__を通じてコンソールの名前空間に到達します。
スクリプトはファイルを開いたときではなくモデル更新時に実行されるため、install_autoload.pyはリスナーを即座に立ち上げるために1回の更新をトリガーします。後で削除するには、model.scripts['acp_agent_bridge'].active = Falseを設定して保存します。
共有モデルは、エージェント対応のコピーを別に保持してください。Scriptオブジェクトは設計レビューでは見えず、同僚があなたの.acph5を開いたときに、うっかりソケットリスナーを受け継ぐべきではありません。
ツール
ヘッドレス(PyACP)
ツール | 機能 |
| ヘッドレスセッションを起動してモデルを読み込む |
| 積層順のプライ: 角度、層数、材料 |
| 繊維配向を設定、オプションで製造可能なセットにスナップ |
| 層数を設定。 |
| 対称性、バランス、±45外層、連続4層以下、方向比率 |
| 更新し、解析モデルと複合材定義を書き出す |
| ACP-Preで検査するための |
設計ベクトルを先に決め、エクスポートは一度だけ: set_*ツールは更新もエクスポートも行いません。
ライブGUI(ソケットブリッジ)
ツール | 機能 |
| ブリッジに到達可能か、どのモデルが開いているか |
| GUIのモデルから積層構成を読み取る |
| 角度を設定し、即座に再描画 |
| 層数を設定し、即座に再描画 |
| 材料とOSSを継承した新しいモデリングプライを追加 |
| GUIのモデルを保存 |
| GUIから解析モデル / 複合材定義をエクスポート |
| ライブセッションで任意のPythonを実行。 |
日常的な編集では、acp_gui_execよりも型付きツールを優先してください。自由形式のツールは探索や一回限りの用途向けです。
acp_gui_add_plyは角度のリストを受け取り、エントリごとに1つのプライを積層順に追加します。材料と配向選択セットは既存のプライ(デフォルトではグループ内の最後のプライ、またはcopy_from)から継承されます。create_modeling_plyはエージェントが保持できないオブジェクト参照を必要とするためです。したがって、プライがまったくないグループはここからシードできません。最初のプライはACP-Preで作成してください。
角度はデフォルトで0, ±15, ±30, ±45, ±60, 90にスナップします。中間の配向が必要な場合は、明示的にスナップをオフにしてください。
トラブルシューティング
症状 | 原因 |
設定編集後に新しいツールが表示されない | クライアントが完全に再起動されていない。ツールリストは起動時に固定 |
| ACP-Preが閉じている、またはこのプロセスでブリッジが読み込まれていない |
ブリッジ呼び出しが300秒でタイムアウト | GUIがビジー — 開いているダイアログがメインスレッドをブロック |
| ACP-Preは実行中だがモデルが読み込まれていない |
| ANSYSが見つからない、またはPythonが間違っている。まずプローブを確認 |
ポート47800が使用中 | 孤立したリスナー。コンソールで |
既知のギャップ
acp_check_layup_rulesはすべてを1つのスタックに平坦化します。複数領域のパーツでは、実際のジオメトリで信頼できる結果を得る前に、OSSごとのグループ化が必要です。プライ作成はライブGUI側のみに存在します(
acp_gui_add_ply)。ヘッドレスのacp_*ツールは既存のプライの編集のみを行うため、PyACPを通じてモデルを駆動する場合は、事前に十分な予備プライを用意してモデルを構築する必要があります。プライ削除ツールはまだありません。
acp_gui_set_ply_countsを0に設定してプライを非アクティブ化してください。質量はエクスポートツールでは報告されません。属性パスはリリース間で変動が大きすぎて推測できません。プローブレポートで実際の値を確認したら追加してください。
検証は1つのANSYSリリースのみに対して行われています。
CANDIDATESメカニズムが存在するのは、新旧のリリースで差異があるためです。テストはありません。検証経路は、プローブとステップ4および5の手動ツールシーケンスです。
最適化ループは開始されていません。3つの決定が未解決です:オプティマイザーがACPを直接呼び出すかMCP経由で呼び出すか、ソルブがバッチで実行されるかMechanical MCP経由か、どの破損基準が制約を設定するか。サロゲートの予算を組んでください — 1回の評価は1回の完全なソルブであり、200回の評価は最低でも1営業日かかります。
セキュリティに関する注意
このブリッジは127.0.0.1のみでリッスンし、認証はありません。acp_gui_execはACP-Pre内で任意のPythonを実行します。そのマシン上のそのポートに到達できるものはすべて同じ権限を持ちます。0.0.0.0にバインドせず、共有セッションで実行しないでください。
コントリビューション
Issueとプルリクエストを歓迎します。特に、2026 R1以外のANSYSリリースからのプローブレポートは、CANDIDATESを埋める最速の方法です。生成されたprobes/pyacp_api_report.txtを添付し、リリースを明記してください。
コントリビューションはApache License 2.0(ライセンスのセクション5を参照)の下で受け付けられます。CLAは不要です。
ライセンス
Apache License 2.0 — LICENSEおよびNOTICEを参照してください。
ANSYS、ACP、Composite PrepPost、MechanicalおよびWorkbenchはANSYS, Inc.の商標です。このプロジェクトは独立した統合であり、ANSYS, Inc.とは提携、承認、支援の関係にありません。ここでANSYSのソフトウェアやドキュメントは再配布されません。ライセンスを受けたローカルのANSYSインストールが必要です。
This server cannot be deployed
Maintenance
Related MCP Connectors
MCP-Native LLM Orchestration Agent
Provides capabilities that let LLM agents perform a range of infrastructure management tasks.
LLM Orchestration Agent (Mcp)
The Excel engine for AI agents: read, check and edit Excel models over MCP.
Related MCP Servers
- AlicenseCqualityDmaintenanceEnables AI agents to control Ansys Electronics Desktop (HFSS, Maxwell, Q3D, etc.) using MCP tools for simulation automation.10057PolyForm Noncommercial 1.0.0
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with Ansys simulation software (Fluent, MAPDL, Mechanical, Geometry) through the Model Context Protocol.71MIT
- AlicenseNot gradedqualityDmaintenanceEnables Claude Code to control Ansys engineering simulations (CFD, FEA, meshing, post-processing) through natural language commands via PyAnsys.14MIT
- FlicenseAqualityDmaintenanceEnables an AI agent to drive a live FreeCAD desktop session, allowing it to create and edit geometry, capture views, and export models through MCP tools.181-