acp-mcp-agent
acp-mcp-agent
Überblick
Ein MCP-Server, der es einem LLM-Agenten ermöglicht, ANSYS Composite Pre [ACP(Pre)] zu steuern — ein Lay-up zu lesen, Faserwinkel und Lagenanzahlen zu ändern, Fertigungsregeln zu prüfen und das Analysemodell sowie die Composite-Definitionen zu exportieren.
Er spricht ACP auf zwei Arten an, und der Unterschied ist wichtig:
agent ─┬─ acp_* ──► PyACP ──► acp_grpcserver.exe headless, batch / optimisation
└─ acp_gui_* ──► TCP 47800 ──► ACP-Pre GUI live, visible on screenPyACP startet seine eigene headless ACP-Sitzung und kann sich nicht an ein laufendes ACP-Pre-Fenster anhängen. Deshalb gibt es einen zweiten Pfad: einen kleinen Socket-Listener, der im eingebetteten Python der GUI läuft und Modelländerungen im wx-Hauptthread ausführt. Winkel ändern sich und das Viewport wird live neu gezeichnet, während Sie zusehen.
Die beiden Sitzungen sind unabhängig. acp_gui_* bearbeitet das in der GUI geöffnete Modell; acp_* bearbeitet das headless. Wählen Sie eine pro Aufgabe und bleiben Sie dabei.
Der Umfang ist die vorgelagerte Hälfte der Composites-Schleife. Lösung und Nachbearbeitung bleiben dort, wo sie bereits funktionieren:
acp-mcp-agent (lay-up) ──► analysis model ──► Mechanical (BC / mesh / solve)
──► composite defs ──► PyDPF-CompositesRelated MCP server: ansys-aedt-mcp
Live-Demo
Voraussetzungen
ANSYS | mit ACP. Entwickelt und getestet mit 2026 R1 ( |
Python | 3.10+ für die Serverseite — welcher Interpreter auch immer Ihr MCP-Client startet |
Packages |
|
OS | Windows. Die Bridge selbst ist portabel, die dokumentierten Pfade nicht |
Client | Jeder MCP-Client. Verifiziert mit Claude Desktop |
ANSYS ist kein pip-Paket. ansys-acp-core startet den ACP-gRPC-Server aus einer lokalen ANSYS-Installation; ohne eine solche läuft hier nichts.
Die GUI-Bridge benötigt keine Installation: Sie läuft im eigenen eingebetteten Python von ACP-Pre (3.10 auf getestetem 2026 R1) und verwendet nur die Standardbibliothek plus wx, die ACP-Pre bereits bereitstellt.
Pfade
Nichts in diesem Repository hat einen maschinenspezifischen Pfad eingebaut. Eine Umgebungsvariable trägt den Speicherort:
Variable | Gelesen von | Bedeutung |
|
| vollständiger Pfad zu |
|
| wohin die Probe-Ausgabe geschrieben wird (Standard: neben |
|
| wohin die Probe-Ausgabe geschrieben wird (Standard: temporäres Verzeichnis) |
install_autoload.py bäckt den aufgelösten Pfad in das Modell ein, in das es installiert wird, sodass die eingebettete Kopie danach keine Umgebungsvariable benötigt.
Repository-Struktur
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 knowingEinrichtung von Grund auf
1. Python-Seite installieren
git clone https://github.com/aalperakiss/acp-mcp-agent.git
cd acp-mcp-agent
pip install -r requirements.txtAls Zip statt als Repository geliefert? Entpacken Sie es irgendwo, cd in den Ordner und führen Sie die pip install-Zeile aus – nichts hier hängt von git ab, und die Pfade in dieser README sind alle relativ zum Ordnerstamm.
Verwenden Sie einen Interpreter und merken Sie sich seinen absoluten Pfad – venv, Anaconda, was auch immer – aber es muss genau der Interpreter sein, den Sie in die Client-Konfiguration eintragen. Ein Server, der „mcp nicht finden kann“, ist fast immer ein zweites Python.
2. ANSYS-Installation prüfen
python probes\00_probe_pyacp.pyNur Sitzungsprobe: Wenn launch_acp() hier fehlschlägt, ist nichts Weiteres von Bedeutung. Der Bericht landet in probes\pyacp_api_report.txt; docs\pyacp_api_report.txt ist die Referenz vom Entwicklungsrechner, zum Vergleich aufbewahrt. Dann zeigen Sie es auf ein Modell:
python probes\00_probe_pyacp.py C:/path/to/your.acph5PyACP hat zwischen den Versionen mehrere Methoden umbenannt, daher löst acp_mcp.py jede Operation zur Laufzeit aus dem CANDIDATES-Dict nahe dem Dateianfang auf. Vergleichen Sie den Probe-Bericht mit CANDIDATES, PLY_ANGLE_ATTRS und PLY_COUNT_ATTRS und fügen Sie fehlende echte Namen hinzu – eine Stelle, eine Bearbeitung.
Brauchen Sie eine .acph5? Öffnen Sie ACP-Pre und Datei → Speichern unter. Ein geöffnetes ACP-Pre hilft PyACP nicht von selbst.
3. Server bei Ihrem Client registrieren
Die Claude-Desktop-Konfiguration liegt unter %APPDATA%\Claude\claude_desktop_config.json. Fügen Sie den acp-Eintrag aus mcp_config.example.json innerhalb des vorhandenen mcpServers-Objekts ein, neben dem, was bereits dort ist. Ersetzen Sie die Datei nicht. Achten Sie auf die Kommas und verdoppeln Sie jeden Backslash (oder verwenden Sie Schrägstriche).
Beenden Sie dann den Client vollständig – einschließlich System Tray – und öffnen Sie ihn erneut. Die Werkzeugliste wird beim Start festgelegt; ein laufender Client sieht einen neuen Server nie.
Schnelltest ohne Client:
npx @modelcontextprotocol/inspector python acp_mcp.py4. Headless-Hälfte verifizieren
Rufen Sie in dieser Reihenfolge auf und bestätigen Sie, dass jeder JSON zurückgibt und nicht Error::
acp_import_modelacp_get_layupacp_set_ply_angles— einen Ply ändern, dann das Lay-up erneut lesenacp_check_layup_rules— Verstöße bei einem echten Modell sind normalacp_update_and_exportacp_save_for_gui— das Ergebnis in ACP-Pre öffnen und prüfen
Das ist bereits nützliche Arbeit: ein Modell öffnen, das Lay-up auflisten, Winkel ändern, Regeln prüfen, exportieren. Es lohnt sich, eine Weile damit zu leben, bevor man weiter automatisiert.
5. Live-GUI-Bridge starten
Öffnen Sie ACP-Pre mit einem Modell, öffnen Sie die Python-Konsole und fügen Sie eine Zeile ein:
exec(open('<repo>/acp_gui_bridge.py').read())Sie sollten sehen:
[acp_gui_bridge] listening on 127.0.0.1:47800Jetzt gibt acp_gui_status vom Agenten pong: true und den Namen des geöffneten Modells zurück. Von dort aus zeichnet acp_gui_set_ply_angles das Viewport live neu.
Der Listener lebt im ACP-Pre-Prozess. Schließen Sie ACP-Pre und er ist weg – fügen Sie die Zeile erneut ein oder machen Sie ihn wie unten beschrieben persistent.
6. Persistente Bridge (optional)
Betten Sie den Autoloader als Script-Objekt in das Modell ein, damit ACP-Pre den Listener selbst startet. In der ACP-Pre-Konsole:
import os
os.environ['ACP_BRIDGE_PATH'] = '<repo>/acp_gui_bridge.py'
exec(open('<repo>/install_autoload.py').read())Dann speichern Sie das Modell. Drei Dinge machen das sicher statt leichtsinnig:
Der Loader ist eingebettet, die Bridge nicht. Ein Script-Objekt speichert Quellcode als String, daher würde das Einbetten der gesamten Bridge einen Listener auf jedem Rechner ausliefern, der die Datei öffnet. Der Loader liest die Bridge stattdessen von der Festplatte; keine Datei, kein Listener, eine gedruckte Zeile.
Es ist idempotent. Der
always-Modus feuert bei jedemmodel.update(), einschließlich des Updates, das die Bridge selbst nach einer Ply-Bearbeitung auslöst. Die Wache aufsys._acp_bridgeverhindert, dass Port 47800 mitten in einer Anfrage neu gebunden wird.Es holt
dbselbst. Script-Objekte laufen mit leeren Globals – keindb, keinmodel. Der Loader erreicht den Konsolen-Namespace über__main__.
Skripte laufen bei Modell-Update, nicht beim Dateiöffnen, daher löst install_autoload.py ein Update aus, um den Listener sofort hochzufahren. Um es später zu entfernen, setzen Sie model.scripts['acp_agent_bridge'].active = False und speichern.
Behalten Sie trotzdem eine separate agent-fähige Kopie gemeinsamer Modelle. Ein Script-Objekt ist in einer Design-Review unsichtbar, und ein Kollege, der Ihre .acph5 öffnet, sollte nicht versehentlich einen Socket-Listener erben.
Werkzeuge
Headless (PyACP)
Tool | Funktion |
| startet eine headless Sitzung und lädt ein Modell |
| Plies in Stapelreihenfolge: Winkel, Lagen, Material |
| Faserorientierungen setzen, optional auf fertigbare Menge rasten |
| Lagenanzahlen setzen; |
| Symmetrie, Balance, ±45 außen, ≤4 aufeinanderfolgende, Richtungsanteile |
| aktualisieren, Analysemodell und Composite-Definitionen schreiben |
| eine |
Designvektor zuerst, einmal exportieren: Die set_*-Werkzeuge aktualisieren oder exportieren nicht.
Live-GUI (Socket-Bridge)
Tool | Funktion |
| ist die Bridge erreichbar, welches Modell ist geöffnet |
| das Lay-up aus dem GUI-Modell lesen |
| Winkel setzen, sofort neu zeichnen |
| Lagenanzahlen setzen, sofort neu zeichnen |
| neue Modellierungs-Plies anhängen, Material und OSS erben |
| das GUI-Modell speichern |
| Analysemodell / Composite-Definitionen aus der GUI exportieren |
| beliebiges Python in der Live-Sitzung, |
Bevorzugen Sie die typisierten Werkzeuge gegenüber acp_gui_exec für Routinebearbeitungen; das Freiform-Werkzeug ist für Erkundung und Einzelfälle.
acp_gui_add_ply nimmt eine Liste von Winkeln und hängt einen Ply pro Eintrag in Stapelreihenfolge an. Material und orientierte Auswahlmenge werden von einem vorhandenen Ply geerbt (standardmäßig der letzte in der Gruppe, oder copy_from), weil create_modeling_ply Objektreferenzen benötigt, die ein Agent nicht halten kann. Eine Gruppe ohne Plies kann daher von hier aus nicht initialisiert werden – erstellen Sie den ersten Ply in ACP-Pre.
Winkel rasten standardmäßig auf 0, ±15, ±30, ±45, ±60, 90 ein. Schalten Sie das Rasten explizit aus, wenn Sie Zwischenorientierungen wünschen.
Fehlerbehebung
Symptom | Ursache |
Neue Werkzeuge fehlen nach Konfigurationsänderung | Client nicht vollständig neu gestartet. Werkzeugliste wird beim Start festgelegt |
| ACP-Pre geschlossen, oder die Bridge wurde in diesem Prozess nie geladen |
Bridge-Aufruf läuft nach 300 s in Timeout | GUI beschäftigt – ein offener Dialog blockiert den Hauptthread |
| ACP-Pre läuft ohne geladenes Modell |
| ANSYS nicht gefunden oder falsches Python. Zuerst die Probe prüfen |
Port 47800 belegt | Ein verwaister Listener. |
Bekannte Lücken
acp_check_layup_rulesreduziert alles auf einen einzigen Stack. Mehrzonen-Bauteile benötigen eine Gruppierung pro OSS, bevor dies bei realer Geometrie vertrauenswürdig ist.Die Ply-Erstellung existiert nur auf der Live-GUI-Seite (
acp_gui_add_ply). Die headlessacp_*-Werkzeuge bearbeiten weiterhin nur vorhandene Plies, daher muss ein über PyACP gesteuertes Modell von vornherein mit genügend Reserve-Plies aufgebaut werden.Noch kein Werkzeug zum Löschen von Plies. Deaktivieren Sie einen Ply mit
acp_gui_set_ply_countsauf 0.Die Masse wird vom Export-Werkzeug nicht gemeldet; der Attributpfad variiert zu stark zwischen den Versionen, um ihn zu erraten. Fügen Sie ihn hinzu, sobald Ihr Probe-Bericht den tatsächlichen Pfad zeigt.
Nur gegen eine ANSYS-Version verifiziert. Der
CANDIDATES-Mechanismus existiert, weil sich ältere und neuere Versionen unterscheiden werden.Keine Tests. Der Verifikationspfad ist der Probe plus die manuelle Werkzeugsequenz in den Schritten 4 und 5.
Optimierungsschleife nicht gestartet. Drei Entscheidungen stehen noch aus: ob der Optimierer ACP direkt oder über MCP aufruft, ob die Lösung im Batch-Modus oder über einen Mechanical-MCP läuft, und welche Versagenskriterien die Randbedingung festlegen. Planen Sie ein Surrogat ein — eine Auswertung ist eine vollständige Lösung, und 200 davon sind mindestens ein Arbeitstag.
Sicherheitshinweis
Die Brücke lauscht nur auf 127.0.0.1 und hat keine Authentifizierung. acp_gui_exec führt beliebiges Python innerhalb von ACP-Pre aus. Alles, was diesen Port auf der Maschine erreichen kann, hat dieselbe Macht. Binden Sie sie nicht an 0.0.0.0 und führen Sie sie nicht in einer gemeinsamen Sitzung aus.
Mitwirken
Issues und Pull Requests sind willkommen, insbesondere Probe-Berichte von anderen ANSYS-Versionen als 2026 R1 — das ist der schnellste Weg, CANDIDATES zu vervollständigen. Fügen Sie den generierten probes/pyacp_api_report.txt bei und geben Sie die Version an.
Beiträge werden unter der Apache License 2.0 akzeptiert (siehe Abschnitt 5 der Lizenz). Kein CLA.
Lizenz
Apache License 2.0 — siehe LICENSE und NOTICE.
ANSYS, ACP, Composite PrepPost, Mechanical und Workbench sind Marken von ANSYS, Inc. Dieses Projekt ist eine unabhängige Integration und ist weder mit ANSYS, Inc. verbunden, noch von ANSYS, Inc. unterstützt oder befürwortet. Hier wird keine ANSYS-Software oder -Dokumentation weiterverteilt; eine lizenzierte lokale ANSYS-Installation ist erforderlich.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Run your website's AI support agent from Claude, Cursor or any MCP client. Manage the knowledge base, edit agent instructions, read conversations and leads, reply live to visitors, and check plan usage. 54 tools, OAuth sign-in, no API key. Free with every Asyntai account: https://asyntai.com/documentation/mcp/
Manage portable AI agent playbooks, Agent Skills, MCP configurations, personas, and memory.
Protocol-native energy infrastructure orchestration for AI data centers. Provides 46 MCP tools across 8 grid protocols (IEC-61850, DNP3, Modbus, OCPP, OpenADR, IEEE 2030.5, IEC 60870-5-104, ICCP) with 5 core API primitives: connect, dispatch, settle, comply, and intel. Enables AI agents to programmatically interact with substations, grid interfaces, and energy assets for real-time workload-grid coordination.
Independent directory of agentic AI tools — search, compare & recommend via MCP. Read-only.
Related MCP Servers
- AlicenseBqualityCmaintenanceEnables AI agents to automate COMSOL Multiphysics simulations, including model management, geometry building, physics configuration, meshing, solving, and results visualization through the MCP protocol.78MIT
- AlicenseCqualityDmaintenanceEnables AI agents to control Ansys Electronics Desktop (HFSS, Maxwell, Q3D, etc.) using MCP tools for simulation automation.10040PolyForm Noncommercial 1.0.0
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with Ansys simulation software (Fluent, MAPDL, Mechanical, Geometry) through the Model Context Protocol.55MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to automate COMSOL Multiphysics simulations, including model management, geometry building, physics configuration, meshing, solving, and results visualization via the MCP protocol.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/aalperakiss/acp-mcp-agent'
If you have feedback or need assistance with the MCP directory API, please join our Discord server