PLAXIS

io.github.yixuanzhong由 GitHub 帳號 yixuanzhong 發布v0.3.5更新於 Oct 24, 2026

Windows-local MCP server for PLAXIS 2D Remote Scripting: geometry, staged construction, results.

已驗證STDIO僅桌面開發者工具資料與分析

概覽

AI 產生的概覽

在 Windows 本機執行的 MCP 伺服器,讓助理透過 PLAXIS 2D 遠端腳本控制幾何建模、分階段施工、網格劃分、計算與結果讀取。

可以做什麼
  • 連線並檢視執行中的 PLAXIS 2D 工作階段,查詢連線狀態、專案資訊、階段與材料
  • 建立與編輯幾何:點、線、多邊形、鑽孔、土層、材料與結構元素
  • 管理專案與分階段施工:新建、開啟、儲存、關閉或復原專案,建立與設定階段,啟用或停用物件,設定屬性並呼叫腳本方法
  • 產生網格並執行計算,計算前可用模型狀態檢查標出阻擋性問題
  • 從 Output 端讀取結果:列出結果類型、分頁取得結果集或單一數值,並把已計算階段送入檢視器
適用情境
適合希望讓 AI 助理在 Windows 工作站上以腳本操作 PLAXIS 2D 流程的大地與岩土工程師,例如建模、執行分階段施工與擷取結果,而不必手寫遠端腳本程式碼。
執行需求
Windows 系統,安裝受支援的本機 PLAXIS 2D 並啟用遠端腳本,僅監聽回環位址(預設 Input 127.0.0.1:10000、Output 127.0.0.1:10001)。需要 CPython 3.13 主機環境(>=3.13,<3.14),可透過簽署的 Windows 安裝套件或 PyPI 的 uvx 安裝。一次性 setup 會寫入角色設定檔並把各角色密碼存入 Windows 認證管理員;Input 與 Output 需以兩個獨立程序分別執行。不支援 Docker、WSL 與遠端傳輸。
安裝前請注意
此伺服器可修改 PLAXIS 模型與專案檔案,且修改無法復原——用戶端核准無法還原記憶體中的狀態,應使用一次性專案並做好備份。對 call_method 及專案/檔案修改類工具應保留核准提示,不要設為永遠允許。PLAXIS 密碼存於 Windows 認證管理員,切勿寫入版本控制、命令列參數、日誌或設定檔。與簽署的 Windows 安裝套件不同,PyPI 發行版沒有程式碼簽章或產物清單。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 PLAXIS,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

PLAXIS · MCP

Drive PLAXIS 2D from any MCP client.

Geometry, staged construction, meshing, calculation and results — exposed as tools, over a hardened Windows-local stdio server.


[release] [python] [mcp] [transport] [platform] [tools] [license]

Quickstart · Tools · Clients · Security model · Architecture

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


▸ v0.3 — set up once, launch from anywhere

One-shot machine setupplaxis-mcp setup discovers the PLAXIS installation, writes both role profiles, and stores each role password in Windows Credential Manager — with hidden prompts, no password argument.
Shared profile storeEvery client on the machine reads the same profiles. Claude Code, Codex, Cursor and VS Code all bind to one installation and one credential set.
serve --roleNo per-client config surgery. --role input / --role output resolves its own profile.
Mode-aware operationsgenerate_mesh, create_phase and calculate enter the PLAXIS mode they need, so a workflow never has to interleave set_mode calls.
Listed on the MCP RegistryPublished as io.github.yixuanzhong/plaxis-mcp, installable with uvx.

Client-neutral by design: Codex, Claude Code, Cursor, VS Code/Copilot and any other conforming local stdio MCP client connect to the same unprefixed server tools.


Quickstart

1 — Set up the machine, once.

powershell
plaxis-mcp.exe setup

Profiles land in %LOCALAPPDATA%\Caros\PLAXIS-MCP\profiles (override with --profile-dir). Add --skip-credentials to generate profiles now and store passwords later with plaxis-mcp.exe credentials set --profile <profile.toml>.

The directory name is historical — it is where the first supported installer wrote — and is kept because credential_target is derived from it.

2 — Run each role as its own process.

powershell
plaxis-mcp.exe serve --role inputplaxis-mcp.exe serve --role output

--config <profile.toml> names a profile explicitly and is equivalent. Either way serve takes every endpoint setting from the profile and the password from Windows Credential Manager, and it fails to start if any PLAXIS_* endpoint environment override is present — so a client cannot silently redirect an endpoint or inject a password.

3 — Point a client at it. See Clients; the host never connects at startup, so call the connect tool once PLAXIS is running.

Getting the host

DistributionCommandAssurances
Signed Windows packageplaxis-mcp.exeAuthenticode-signed, hash-manifested, installer-verified. The supported production deployment.
PyPIuvx plaxis-mcp serve --role input
py -3.13 -m pip install plaxis-mcp
Ordinary Python source distribution. No code signature, no artifact manifest.

Both expose the same setup, serve, credentials and profiles commands and enforce the same profile binding and environment-override rejection — so PyPI is not a weaker runtime posture. It simply carries no supply-chain attestation of its own beyond PyPI's, and it is not what an organization requiring signed binaries should deploy.

Do not install plxscripting into the host environment under either.

Source / developer launch only — not a supported deployment path

A clean CPython 3.13 environment can run the module directly with endpoint environment variables. This path carries the password in the environment and performs no installation binding.

powershell
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

For Output, set PLAXIS_ROLE=output and use the PLAXIS_OUTPUT_* variables. Role-specific variables take precedence over the deprecated generic PLAXIS_HOST, PLAXIS_PORT and PLAXIS_PASSWORD fallback. The server accepts stdio only — do not set a non-stdio PLAXIS_MCP_TRANSPORT.


Tools

Each process has one immutable role. A client registers Input and Output as separate MCP servers when it needs both.

RoleEndpointTools
Both—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 tools · 11 Output tools.

  • connect() takes no endpoint or credential arguments. It uses only the pinned role configuration, so an agent cannot redirect a stored password to an arbitrary host.
  • Role status resources live at plaxis://input/status and plaxis://output/status.
  • get_results(phase, result_type_path, fem_type="node", offset=0, limit=200) paginates losslessly. limit is 1–5,000; responses report count, offset, limit, returned_count, has_more, next_offset and results.
  • Every object in a result carries path — the exact string to pass back to any reference parameter. list_objects(kind) lists a whole kind that way, with a geometry summary (coordinates, or a parsed bounds for objects that report a bounding box).
  • model_state() reports mesh status, the phase table and unassigned materials before a calculate is attempted. It separates blocking (a fault in this model) from unknown (a check that could not run here) and caveats (something PLAXIS does not expose at all — on 2D V22, whether the mesh still matches the geometry), so an empty blocking is never mistaken for a clean bill of health.
  • Results live on the Output server, which reads whatever the PLAXIS Output application has open. view_results(phase) on the Input server is what puts a calculated phase there.
  • When PLAXIS rejects a call, its own message travels beside ours in plaxis_message (sanitised: no filesystem paths, no frames, capped with the truncation flagged out of band). A failing calculate also carries a per-phase table in details.

Clients

All shipped examples are secret-free and use two server entries, one per role. Replace the command with wherever plaxis-mcp.exe lives, or with uvx plaxis-mcp for a PyPI install. Nothing else needs editing — --role finds the shared profiles by itself.

ClientExampleCredentials & approvals
Codexcodex-config.tomlenv_vars forwards the locally stored password; default_tools_approval_mode = "writes".
Claude Codeclaude-code-mcp.jsonExpand only a user-level environment variable in .mcp.json; retain server trust and tool approval prompts.
Cursorcursor-mcp.jsonRole password in the user environment at launch; keep Auto-run off.
VS Code / Copilotvscode-mcp.jsonUse a password inputs entry — VS Code stores it securely for reuse. Keep Default Approvals, not Bypass or Autopilot.

The generic mcp-client-config.json is a minimal mcpServers example for clients using that conventional JSON shape.

Never add a PLAXIS password to version control, command-line arguments, logs, or a profile file.


Security model

  • Profiles are bound to one installation. credential_target is derived from installation_root, and worker_python must be an interpreter that discovery links to that same root. Editing any of the three by hand makes the profile fail to load. This is what stops a profile from handing a stored PLAXIS password to an arbitrary executable.
  • Environment overrides are rejected, not merged: serve refuses to start when a PLAXIS_* endpoint variable is set.
  • Uncertified pairings fail closed. The Python match is exact — a 3.7-series interpreter at any other patch level is a different, uncertified ABI, so it is rejected rather than assumed compatible.
  • Ask before mutation. All clients should prompt before call_method and project/file mutators. Do not set an Always Allow-style rule for call_method, open_project or save_project: client approval is generally tool-wide, not argument-scoped.
  • Mutation is not undoable. Absolute local and UNC .p2dx paths reachable by PLAXIS are allowed only after user approval. Client approvals and client-side checkpointing cannot restore in-memory PLAXIS state — use disposable projects and backups for all mutation testing.

Architecture

PLAXIS-MCP separates the MCP host from PLAXIS's vendor-managed Python runtime:

  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
  • Client traffic is always MCP over stdio; normal logs and diagnostics go to stderr.
  • PLAXIS-MCP never installs packages into, upgrades, or redistributes the PLAXIS Python bundle.

The split is required because the MCP host needs a current Python runtime while PLAXIS ships version-specific scripting environments.

PLAXIS generationBundled PythonRuntime profileRelease status
PLAXIS 2024.2 and newer3.12.3current-312Enable after live certification
PLAXIS CONNECT Edition V22 → early 20243.8.10legacy-38Initial production target
PLAXIS CONNECT Edition V20 / V213.7.4legacy-37Enable after live and security certification

V20 and V21 share the legacy profile: their end-of-life Python is isolated inside the loopback worker and requires organizational security acceptance.

Requirements

  • Windows, with a supported local PLAXIS 2D installation and Remote Scripting enabled.
  • CPython 3.13 for the MCP host. Supported host range: >=3.13,<3.14.
  • One PLAXIS Input and/or Output server listening only on loopback — defaults Input 127.0.0.1:10000, Output 127.0.0.1:10001.
  • A selected, certified PLAXIS bundled-Python profile. Do not install plxscripting into the MCP host environment.
Historical PLAXIS scripting paths — worker-only, never on the host PYTHONPATH
C:\ProgramData\Seequent\PLAXIS Python Distribution V2\python\Lib\site-packagesC:\ProgramData\Bentley\Geotechnical\PLAXIS Python Distribution V2\python\Lib\site-packages

Docker, WSL, remote MCP transports, and PLAXIS bundles copied into a Python environment are not supported deployment paths for v0.3. The former Docker artifacts were removed intentionally.


Development & verification

powershell
# unit suite, from the CPython 3.13 host environmentpy -3.13 -m unittest discover -s tests
# inspect the split host/worker configuration without starting PLAXISpy -3.13 scripts/smoke_test.py

Before a release: verify the host wheel/installer in a clean environment, confirm pip check, scan the artifact for vendor files, validate the MCP contract at protocol 2025-03-26, and complete live certification with a disposable calculated project for every enabled PLAXIS profile.


References

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


MIT licensed. PLAXIS is a trademark of Seequent and related companies.

This independent integration is not affiliated with, endorsed by, or sponsored by Seequent or Bentley Systems.

來源:README.md,提交 21cf6ac

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.3.5最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分