内容
<p align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/ansys/pyaedt-mcp/main/doc/source/_static/images/logo-dark.png">
<source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/ansys/pyaedt-mcp/main/doc/source/_static/images/logo-light.png">
<img alt="PyAEDT-MCP" src="https://raw.githubusercontent.com/ansys/pyaedt-mcp/main/doc/source/_static/images/logo-light.png" width="900">
</picture>
</p>
[](https://docs.pyansys.com/)
[](https://www.python.org/)
[](https://opensource.org/licenses/Apache-2.0)
[](https://github.com/astral-sh/ruff)
PyAEDT-MCP 是 Ansys Electronics Desktop(AEDT)的 MCP(模型上下文协议)服务器。它为您提供可靠的 AEDT 工具和持久的 PyAEDT 支持的 Python 会话,用于不适合专用工具的任务。
## PyAEDT-MCP 的功能
PyAEDT-MCP 支持以下运行时循环:
1. 检查 AEDT 是否已安装或可访问。
2. 启动 AEDT 或连接到现有的 gRPC 会话。
3. 打开项目、创建设计、运行分析、检查模型和导出结果。
4. 使用 `run_python_code` 或 `run_python_script` 进行自定义 PyAEDT 工作。
支持的 AEDT 应用程序包括 HFSS、Maxwell 2D/3D、Q2D、Q3D、Icepak、Circuit、TwinBuilder、Mechanical、EMIT、RMXprt 和 HFSS 3D Layout。
## 安装
### 无需克隆直接运行
```bash
uvx --from git+https://github.com/ansys/pyaedt-mcp.git ansys-aedt-mcp
```
### 本地安装
```bash
pip install git+https://github.com/ansys/pyaedt-mcp.git
```
或使用 `uv`:
```bash
uv pip install git+https://github.com/ansys/pyaedt-mcp.git
```
### 开发安装
```bash
git clone https://github.com/ansys/pyaedt-mcp.git
cd pyaedt-mcp
pip install -e .
pre-commit install
```
或使用 `uv`:
```bash
git clone https://github.com/ansys/pyaedt-mcp.git
cd pyaedt-mcp
uv pip install -e .
pre-commit install
```
## 要求
- Python 3.11 或更高版本
- AEDT 2022 R2 或更高版本,用于 gRPC 工作流
- 本地 AEDT 安装或可访问的远程 AEDT gRPC 端点
## 快速入门
1. 以 gRPC 模式启动 AEDT,连接到现有会话:
```bash
"C:\Program Files\ANSYS Inc\v261\AnsysEM\ansysedt.exe" -grpcsrv 50051
```
或者,只需正常启动 AEDT。它将自动启动一个 gRPC 服务器。
> PyAEDT-MCP 还可以在 AEDT 未运行时为您启动它。
2. 启动 PyAEDT-MCP:
```bash
ansys-aedt-mcp
```
您也可以使用以下常见变体:
```bash
# 连接启动
ansys-aedt-mcp --connect --machine localhost --port 50051
# 暴露 HTTP 传输代替 STDIO
ansys-aedt-mcp --transport http --http-host 127.0.0.1 --http-port 8080
# 注册可选上下文帮助工具
ansys-aedt-mcp --include-context
# 隐藏 AEDT 独有工具,直到存在连接
ansys-aedt-mcp --dynamic-tool-discovery
```
3. 将 MCP 客户端指向服务器:
***Visual Studio Code**
```json
{
"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**
```json
{
"mcpServers": {
"pyaedt-mcp": {
"command": "uvx",
"args": [
"--from", "git+https://github.com/ansys/pyaedt-mcp.git",
"ansys-aedt-mcp"
]
}
}
}
```
## 工具参考
有关可用工具的信息,请参阅 PyAEDT-MCP 文档中的 [工具和功能](https://aedt-mcp.docs.pyansys.com/version/dev/user_guide/tools_and_capabilities.html)。
## 仓库组织
核心包位于 `src\ansys\aedt\mcp`:
| 文件 | 角色 |
| --- | --- |
| `__main__.py` | 模块入口点,转发到 CLI 启动器 |
| `server.py` | CLI 解析、应用设置、上下文创建、启动清理和传输选择 |
| `tools.py` | AEDT 生命周期、项目、脚本和导出工作流的运行时工具实现 |
| `helpers.py` | 用于探测端点、规范版本和提取模型数据的实用程序 |
| `prompts.py` | 显示给 MCP 客户端的系统提示内容 |
| `contexts.py` | 通过 `--include-context` 启用的可选上下文帮助工具 |
| `toolsets.py` | 用于逻辑工具发现的 `toolsets://definition` 资源 |
| `aedt_helper\startup_code.py` | 加载到持久 Python 会话中的启动代码 |
其他顶级文件夹包括:
- `doc\source`: Sphinx 文档
- `tests`: 单元和集成覆盖
- `docker`: 容器资产
- `examples`: 项目使用的示例资产
## 开发工作流
要贡献,请参阅 PyAEDT-MCP 文档中的 [贡献](https://aedt-mcp.docs.pyansys.com/version/dev/getting_started/contribution.html)。
## 添加新工具
大多数工具需要实时 AEDT 连接。在 `src\ansys\aedt\mcp\tools.py` 中使用 `REQUIRES_AEDT_TAG` 标记这些工具,以便在启用动态发现时可以隐藏它们,直到会话存在。
有关更多信息,请参阅 PyAEDT-MCP 文档中的 [添加新工具](https://aedt-mcp.docs.pyansys.com/version/dev/examples/adding_new_tool.html)。
## 许可证
Apache 2.0 许可证。参见 [LICENSE](LICENSE)。
## 相关项目
- [PyAEDT](https://github.com/ansys/pyaedt)
- [PyAEDT 文档](https://aedt.docs.pyansys.com/)
- [FastMCP 文档](https://github.com/jlowin/fastmcp)
- [模型上下文协议文档](https://modelcontextprotocol.io/)