Model Context Protocol (MCP) server for Ansys Electronics Desktop (AEDT) through PyAEDT
Project description
PyAEDT-MCP is an MCP (Model Context Protocol) server for Ansys Electronics Desktop (AEDT). It gives you reliable AEDT tools and a persistent PyAEDT-backed Python session for tasks that do not fit a dedicated tool.
What PyAEDT-MCP does
PyAEDT-MCP supports this runtime loop:
- Check whether AEDT is installed or already reachable.
- Launch AEDT or connect to an existing gRPC session.
- Open projects, create designs, run analyses, inspect the model, and export results.
- Use
run_python_codeorrun_python_scriptfor custom PyAEDT work.
Supported AEDT applications include HFSS, Maxwell 2D/3D, Q2D, Q3D, Icepak, Circuit, TwinBuilder, Mechanical, EMIT, RMXprt, and HFSS 3D Layout.
Install
Run without cloning
uvx --from git+https://github.com/ansys/pyaedt-mcp.git ansys-aedt-mcp
Install locally
pip install git+https://github.com/ansys/pyaedt-mcp.git
Or use uv:
uv pip install git+https://github.com/ansys/pyaedt-mcp.git
Install for development
git clone https://github.com/ansys/pyaedt-mcp.git
cd pyaedt-mcp
pip install -e .
pre-commit install
Or use uv:
git clone https://github.com/ansys/pyaedt-mcp.git
cd pyaedt-mcp
uv pip install -e .
pre-commit install
Requirements
- Python 3.11 or later
- AEDT 2022 R2 or later for gRPC workflows
- A local AEDT installation or a reachable remote AEDT gRPC endpoint
Quick start
-
Start AEDT in gRPC mode when connecting to an existing session:
"C:\Program Files\ANSYS Inc\v261\AnsysEM\ansysedt.exe" -grpcsrv 50051
Or, just launch AEDT normally. It automatically starts a gRPC server.
PyAEDT-MCP can also launch AEDT for you if it is not already running.
-
Start PyAEDT-MCP:
ansys-aedt-mcp
You can also use one of these common variants:
# Connect on startup ansys-aedt-mcp --connect --machine localhost --port 50051 # Expose HTTP transport instead of STDIO ansys-aedt-mcp --transport http --http-host 127.0.0.1 --http-port 8080 # Register optional context helper tools ansys-aedt-mcp --include-context # Hide AEDT-only tools until a connection exists ansys-aedt-mcp --dynamic-tool-discovery
-
Point an MCP client at the server:
*Visual Studio Code
{ "mcp": { "servers": { "pyaedt-mcp": { "command": "uvx", "args": [ "--index-strategy", "unsafe-best-match", "--from", "git+https://github.com/ansys/pyaedt-mcp.git", "ansys-aedt-mcp" ] } } } }
Claude Desktop
{ "mcpServers": { "pyaedt-mcp": { "command": "uvx", "args": [ "--from", "git+https://github.com/ansys/pyaedt-mcp.git", "ansys-aedt-mcp" ] } } }
Tool reference
For information on the available tools, see Tools and capabilities in the PyAEDT-MCP documentation.
How the repository is organized
The core package is in src\ansys\aedt\mcp:
| File | Role |
|---|---|
__main__.py |
Module entry point that forwards to the CLI launcher |
server.py |
CLI parsing, app setup, context creation, startup cleanup, and transport selection |
tools.py |
Runtime tool implementations for AEDT lifecycle, project, scripting, and export workflows |
helpers.py |
Small utilities for probing endpoints, normalizing versions, and extracting model data |
prompts.py |
System prompt content shown to MCP clients |
contexts.py |
Optional context helper tools enabled by --include-context |
toolsets.py |
toolsets://definition resource used for logical tool discovery |
aedt_helper\startup_code.py |
Startup code loaded into the persistent Python session |
Other top-level folders include:
doc\source: Sphinx documentationtests: Unit and integration coveragedocker: Container assetsexamples: Sample assets used by the project
Development workflow
To contribute, see Contribute in the PyAEDT-MCP documentation.
Add a new tool
Most tools require a live AEDT connection. Tag those tools with REQUIRES_AEDT_TAG in src\ansys\aedt\mcp\tools.py so they can be hidden until the session exists when dynamic discovery is enabled.
For more information, see Add a new tool in the PyAEDT-MCP documentation.
License
Apache 2.0 license. See LICENSE.
Related projects
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ansys_aedt_mcp-0.1.0.tar.gz.
File metadata
- Download URL: ansys_aedt_mcp-0.1.0.tar.gz
- Upload date:
- Size: 46.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
11a0b9274f00fa86e92de94c9eb7bdc462ccbfc17c4383c7177f6e9a95aadcab
|
|
| MD5 |
25de7cb4623a9a5307e5dceb3ab82fb7
|
|
| BLAKE2b-256 |
1797ac0d0e0bb05713d223a1c8e763e9fee02b5a66486e76e18eb2c657b62415
|
Provenance
The following attestation bundles were made for ansys_aedt_mcp-0.1.0.tar.gz:
Publisher:
ci.yml on ansys/pyaedt-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ansys_aedt_mcp-0.1.0.tar.gz -
Subject digest:
11a0b9274f00fa86e92de94c9eb7bdc462ccbfc17c4383c7177f6e9a95aadcab - Sigstore transparency entry: 2173147733
- Sigstore integration time:
-
Permalink:
ansys/pyaedt-mcp@b4e2d4a7d6dbbb28bbec687ac086843fe988f2ff -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/ansys
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci.yml@b4e2d4a7d6dbbb28bbec687ac086843fe988f2ff -
Trigger Event:
push
-
Statement type:
File details
Details for the file ansys_aedt_mcp-0.1.0-py3-none-any.whl.
File metadata
- Download URL: ansys_aedt_mcp-0.1.0-py3-none-any.whl
- Upload date:
- Size: 50.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5fa87ff35c7e0621eb503ff5e57e0079c7dc51bb10f1ec51956c5f4ac4a8bca7
|
|
| MD5 |
d9ad6e01e2da1a2972b841ba79be3f76
|
|
| BLAKE2b-256 |
18ab43f4ad8cb6abf1cce91aafd4ecfd5f412167eacc1fe6f0f5859807896dab
|
Provenance
The following attestation bundles were made for ansys_aedt_mcp-0.1.0-py3-none-any.whl:
Publisher:
ci.yml on ansys/pyaedt-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ansys_aedt_mcp-0.1.0-py3-none-any.whl -
Subject digest:
5fa87ff35c7e0621eb503ff5e57e0079c7dc51bb10f1ec51956c5f4ac4a8bca7 - Sigstore transparency entry: 2173147745
- Sigstore integration time:
-
Permalink:
ansys/pyaedt-mcp@b4e2d4a7d6dbbb28bbec687ac086843fe988f2ff -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/ansys
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci.yml@b4e2d4a7d6dbbb28bbec687ac086843fe988f2ff -
Trigger Event:
push
-
Statement type: