mcpField
P
PLAXIS

PLAXIS

本地服务
github.com科研与教育613 周前更新

关于 PLAXIS

PLAXIS-MCP 是 Windows 本地 MCP 服务,通过 Remote Scripting 操作 PLAXIS 2D,面向岩土建模工作流。Input 和 Output 角色分别提供建模、计算与结果工具,并将配置绑定到本机安装。

主要功能

  1. 01创建和编辑几何图形与材料
  2. 02管理阶段和分步施工
  3. 03生成网格并运行计算
  4. 04检查模型状态和项目信息
  5. 05分页获取计算结果

适用场景

  1. 01通过 MCP 客户端构建或修改 PLAXIS 2D 模型
  2. 02设置施工阶段并计算项目
  3. 03在 PLAXIS Output 中检查阶段结果

MCP 相关

通过 stdio 提供独立的 Input 和 Output MCP 服务进程。客户端可用 Input 工具建模和计算,并通过 Output 获取结果。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"yixuanzhong-plaxis": {
"command": "uvx",
"args": [
"plaxis-mcp"
]
}
}
}
启动命令uvx plaxis-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypiplaxis-mcp0.3.5

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

PLAXIS · MCP

从任意 MCP 客户端驱动 PLAXIS 2D。

几何、分阶段施工、网格划分、计算和结果 — 通过工具开放,并由经过加固的 Windows 本地 stdio 服务提供。


release python mcp transport platform tools license

快速开始 · 工具 · 客户端 · 安全模型 · 架构

mcp-name: io.github.yixuanzhong/plaxis-mcp


▸ v0.3 — 一次设置,随处启动

一次性机器设置plaxis-mcp setup 会发现 PLAXIS 安装位置,写入两个角色配置文件,并将每个角色的密码存储在 Windows Credential Manager 中——密码提示会隐藏,且无需提供密码参数。
共享配置文件存储这台机器上的所有客户端都会读取同一组配置文件。Claude Code、Codex、Cursor 和 VS Code 都连接到同一个安装实例和同一组凭据。
serve --role无需为每个客户端单独修改配置。--role input / --role output 会解析各自的配置文件。
模式感知操作generate_mesh、create_phase 和 calculate 会切换到所需的 PLAXIS 模式,因此工作流无需交错调用 set_mode。
已列入 MCP Registry以 io.github.yixuanzhong/plaxis-mcp 发布,可通过 uvx 安装。

此设计与客户端无关:Codex、Claude Code、Cursor、VS Code/Copilot 以及任何其他符合规范的本地 stdio MCP 客户端,都可连接到同一组不带前缀的服务工具。


快速开始

1 — 设置机器,只需一次。

plaxis-mcp.exe setup

配置文件会写入 %LOCALAPPDATA%\Caros\PLAXIS-MCP\profiles(可使用 --profile-dir 覆盖)。 添加 --skip-credentials,即可现在生成配置文件,稍后再通过 plaxis-mcp.exe credentials set --profile <profile.toml> 存储密码。

目录名称沿用历史命名——首个受支持的安装程序曾将文件写入此处—— 并予以保留,因为 credential_target 是根据该名称生成的。

2 — 将每个角色作为独立进程运行。

plaxis-mcp.exe serve --role input
plaxis-mcp.exe serve --role output

--config <profile.toml> 用于显式指定配置文件,效果相同。无论采用哪种方式,serve 都会从配置文件读取所有端点设置,并从 Windows Credential Manager 获取密码;如果存在任何 PLAXIS_* 端点环境变量覆盖项,就会拒绝启动——这样客户端就无法悄悄重定向端点或注入密码。

3 — 将客户端指向它。 请参阅客户端;主机在启动时不会连接,因此请在 PLAXIS 运行后调用一次 connect 工具。

获取主机
分发方式命令保障
已签名的 Windows 软件包plaxis-mcp.exe已通过 Authenticode 签名、包含哈希清单,并经过安装程序验证。受支持的生产部署方式。
PyPIuvx plaxis-mcp serve --role input
py -3.13 -m pip install plaxis-mcp
普通 Python 源码分发包。没有代码签名,没有制品清单。

两种方式都提供相同的 setup、serve、credentials 和 profiles 命令,并执行相同的配置文件绑定和环境变量覆盖拒绝机制——因此,PyPI 在运行时安全态势上并不较弱。它只是除了 PyPI 自身的保障外,不包含自己的供应链证明;需要部署已签名二进制文件的组织不应采用这种方式。

无论采用哪种方式,都不要将 plxscripting 安装到主机环境中。

仅用于源码 / 开发者启动 — 非受支持的部署方式

干净的 CPython 3.13 环境可以通过端点环境变量直接运行该模块。此方式会将密码放在环境变量中,且不进行任何安装绑定。

py -3.13 -m pip install .
$env:PLAXIS_ROLE = "input"
$env:PLAXIS_INPUT_HOST = "127.0.0.1"
$env:PLAXIS_INPUT_PORT = "10000"
$env:PLAXIS_BUNDLE_PYTHON = "C:\Path\To\PLAXIS\python.exe"
py -3.13 -I -u -m plaxis_mcp.server

对于 Output,请设置 PLAXIS_ROLE=output 并使用 PLAXIS_OUTPUT_* 变量。特定角色的变量优先于已弃用的通用 PLAXIS_HOST、PLAXIS_PORT 和 PLAXIS_PASSWORD 回退值。该服务仅接受 stdio——不要将 PLAXIS_MCP_TRANSPORT 设置为非 stdio 值。


工具

每个进程只有一个不可变角色。当客户端同时需要 Input 和 Output 时,应将它们注册为独立的 MCP 服务。

角色端点工具
两者—connect · disconnect · connection_status · list_members · inspect · project_info · list_phases · list_materials
Input127.0.0.1:10000list_objects · model_state · set_property · call_method · new_project · open_project · close_project · recover_project · save_project · create_phase · set_current_phase · set_phase_property · activate · deactivate · calculate · view_results · set_mode · generate_mesh · create_point · create_line · create_polygon · create_borehole · create_soillayer · create_material · assign_material · create_structural_element
Output127.0.0.1:10001list_result_types · get_results · get_single_result

34 个 Input 工具 · 11 个 Output 工具。

  • connect() 不接受端点或凭据参数。它只使用固定的角色配置,因此 Agent 无法将存储的密码重定向到任意主机。
  • 角色状态资源位于 plaxis://input/status 和 plaxis://output/status。
  • get_results(phase, result_type_path, fem_type="node", offset=0, limit=200) 支持无损分页。limit 的范围为 1–5,000;响应会报告 count、offset、limit、returned_count、has_more、next_offset 和 results。
  • 结果中的每个对象都包含 path——这是可传回任何引用参数的确切字符串。list_objects(kind) 会以这种方式列出某一类型的全部对象,并提供几何摘要(坐标,或为报告边界框的对象解析出的 bounds)。
  • model_state() 会在尝试计算前报告网格状态、阶段表和未分配的材料。它会区分 blocking(模型中的故障)、unknown(此处无法运行的检查)和 caveats(PLAXIS 完全不公开的信息——对于 2D V22,即网格是否仍与几何匹配),因此 blocking 为空绝不代表模型已确认正常。
  • 结果位于 Output 服务上,该服务会读取 PLAXIS Output 应用程序当前打开的内容。Input 服务上的 view_results(phase) 用于将已计算的阶段加载到其中。
  • 当 PLAXIS 拒绝调用时,它自己的消息会通过 plaxis_message 与我们的消息一同返回(已清理:不含文件系统路径和堆栈帧;截断状态会在带外标明)。失败的 calculate 还会在 details 中包含按阶段列出的表格。

客户端

所有已提供的示例都不包含密钥,并使用两个服务条目,每个角色一个。将命令替换为 plaxis-mcp.exe 所在位置,或 PyPI 安装时替换为 uvx plaxis-mcp。无需编辑其他内容——--role 会自动查找共享配置文件。

客户端示例凭据与审批
Codexcodex-config.tomlenv_vars 会转发本地存储的密码;default_tools_approval_mode = "writes"。
Claude Codeclaude-code-mcp.json仅在用户级 .mcp.json 中展开环境变量;保留服务信任和工具审批提示。
Cursorcursor-mcp.json启动时从用户环境中读取角色密码;保持 Auto-run 关闭。
VS Code / Copilotvscode-mcp.json使用密码 inputs 条目——VS Code 会安全存储密码以便重复使用。选择 Default Approvals,不要选择 Bypass 或 Autopilot。

通用的 mcp-client-config.json 是采用常见 JSON 结构的客户端可用的最小 mcpServers 示例。

绝不要将 PLAXIS 密码加入版本控制、命令行参数、日志或配置文件。


安全模型

  • 配置文件绑定到单个安装。 credential_target 源自 installation_root,而 worker_python 必须是发现机制确认与同一根目录关联的解释器。手动编辑这三项中的任何一项都会导致配置文件无法加载。这样可以防止配置文件将已存储的 PLAXIS 密码交给任意可执行文件。
  • 环境变量覆盖会被拒绝,而非合并:设置了 PLAXIS_* 端点变量时,serve 会拒绝启动。
  • 未经认证的配对会默认拒绝。 Python 版本必须完全匹配——任何其他补丁版本的 3.7 系列解释器都属于不同且未经认证的 ABI,因此会被拒绝,而不会被假定为兼容。
  • 修改前先询问。 所有客户端都应在调用 call_method 和项目/文件修改工具前提示用户。不要为 call_method、open_project 或 save_project 设置类似 Always Allow 的规则:客户端审批通常针对整个工具,而非具体参数。
  • 修改无法撤销。 只有经用户批准后,才允许使用 PLAXIS 可访问的本地绝对路径和 UNC .p2dx 路径。客户端审批和客户端侧检查点无法恢复 PLAXIS 的内存状态——所有修改测试都应使用一次性项目和备份。

架构

PLAXIS-MCP 将 MCP 主机与 PLAXIS 厂商管理的 Python 运行时分开:

  MCP client  ──stdio──▶  host (CPython 3.13, mcp 1.26.0)
                              │
                              ├─ private local pipe
                              ▼
                          role-pinned worker (PLAXIS bundled Python)
                              │
                              ▼
                          PLAXIS Remote Scripting @ 127.0.0.1
  • 客户端流量始终通过 stdio 使用 MCP;常规日志和诊断信息会输出到 stderr。
  • PLAXIS-MCP 绝不会向 PLAXIS Python 包中安装软件包、升级软件包或重新分发该包。

这种拆分是必需的,因为 MCP 主机需要使用较新的 Python 运行时,而 PLAXIS 提供的是特定版本的脚本环境。

PLAXIS 代际内置 Python运行时配置文件发布状态
PLAXIS 2024.2 及更新版本3.12.3current-312通过实时认证后启用
PLAXIS CONNECT Edition V22 → 2024 初期版本3.8.10legacy-38首个生产目标
PLAXIS CONNECT Edition V20 / V213.7.4legacy-37通过实时认证和安全认证后启用

V20 和 V21 共用旧版配置文件:其已停止支持的 Python 仅隔离运行于环回工作进程中,并且需要组织接受相关安全风险。

要求
  • Windows,安装了受支持的本地 PLAXIS 2D,并已启用 Remote Scripting。
  • MCP 主机使用 CPython 3.13。支持的主机版本范围:>=3.13,<3.14。
  • 一个仅监听环回地址的 PLAXIS Input 和/或 Output 服务——默认地址为 Input 127.0.0.1:10000、Output 127.0.0.1:10001。
  • 选择经过认证的 PLAXIS 内置 Python 配置文件。请勿在 MCP 主机环境中安装 plxscripting。
历史 PLAXIS 脚本路径——仅限工作进程使用,绝不可加入主机的 PYTHONPATH
C:\ProgramData\Seequent\PLAXIS Python Distribution V2\python\Lib\site-packages
C:\ProgramData\Bentley\Geotechnical\PLAXIS Python Distribution V2\python\Lib\site-packages

Docker、WSL、远程 MCP 传输方式,以及将 PLAXIS 程序包复制到 Python 环境中,均不是 v0.3 支持的部署方式。旧版 Docker 构件已被有意移除。


开发与验证

# unit suite, from the CPython 3.13 host environment
py -3.13 -m unittest discover -s tests

# inspect the split host/worker configuration without starting PLAXIS
py -3.13 scripts/smoke_test.py

发布前:在干净环境中验证主机 wheel/安装程序,确认 pip check 通过,扫描构件以检查是否包含供应商文件,验证协议版本为 2025-03-26 的 MCP 契约,并针对每个启用的 PLAXIS 配置文件,使用可丢弃的已计算项目完成实时认证。


参考资料

MCP Python SDK · Codex · Claude Code · Cursor · VS Code


采用 MIT 许可证。PLAXIS 是 Seequent 及其关联公司的商标。

本独立集成与 Seequent 或 Bentley Systems 无关联,也未获得其认可或赞助。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。