PLAXIS について
PLAXIS-MCPは、Remote Scripting経由でPLAXIS 2Dを操作するWindowsローカルMCPサーバーです。地盤モデリング向けに、ローカルのインストール環境に紐づくInputとOutputの各ロールが、モデル作成・計算・結果取得のツールを提供します。
主な機能
- 01形状と材料の作成・編集
- 02フェーズと段階施工の管理
- 03メッシュ生成と計算実行
- 04モデル状態とプロジェクト情報の確認
- 05計算結果のページ分割取得
活用シーン
- 01MCPクライアントからPLAXIS 2Dモデルを作成・変更
- 02施工フェーズを設定してプロジェクトを計算
- 03PLAXIS Outputでフェーズ結果を確認
MCP 対応
stdioでInputとOutputの別々のMCPサーバープロセスを提供します。クライアントはInputでモデリングと計算を行い、Outputから結果を取得できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
PLAXIS · MCP
どの MCP クライアントからでも PLAXIS 2D を操作できます。
ジオメトリ、段階施工、メッシュ生成、計算、結果 — 強化された Windows ローカル stdio サーバーを介してツールとして公開します。
クイックスタート · ツール · クライアント · セキュリティモデル · アーキテクチャ
mcp-name: io.github.yixuanzhong/plaxis-mcp
▸ v0.3 — 一度セットアップすれば、どこからでも起動
| マシンの一括セットアップ | plaxis-mcp setup が PLAXIS のインストールを検出し、両方のロールプロファイルを書き込み、各ロールのパスワードを Windows Credential Manager に保存します。入力は非表示で、パスワード引数は不要です。 |
| 共有プロファイルストア | マシン上のすべてのクライアントが同じプロファイルを読み込みます。Claude Code、Codex、Cursor、VS Code はすべて、1つのインストールと1組の認証情報を使用します。 |
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 署名済み、ハッシュマニフェスト付き、インストーラーによる検証済み。サポート対象の本番環境向けデプロイ方法です。 |
| PyPI | uvx plaxis-mcp serve --role inputpy -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 のみです。stdio 以外を指定する PLAXIS_MCP_TRANSPORT は設定しないでください。
ツール
各プロセスのロールは変更できません。両方が必要な場合、クライアントは Input と Output を個別の MCP サーバーとして登録します。
| ロール | エンドポイント | ツール |
|---|---|---|
| 両方 | — | connect · disconnect · connection_status · list_members · inspect · project_info · list_phases · list_materials |
| Input | 127.0.0.1:10000 | list_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 |
| Output | 127.0.0.1:10001 | list_result_types · get_results · get_single_result |
Input ツール 34 個 · Output ツール 11 個。
connect()はエンドポイントや認証情報の引数を取りません。固定されたロール設定のみを使用するため、エージェントが保存済みパスワードを任意のホストに転送することはできません。- ロールのステータスリソースは
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()は、calculateを試みる前に、メッシュのステータス、フェーズテーブル、未割り当ての材料を報告します。モデル内の問題であるblocking、ここでは実行できなかったチェックであるunknown、PLAXIS がまったく公開していない情報(2D V22 でメッシュがジオメトリと一致しているかどうかなど)であるcaveatsを区別します。そのため、blockingが空でも問題がないと誤認することはありません。- 結果は Output サーバー上にあり、PLAXIS Output アプリケーションで開いている内容を読み取ります。計算済みのフェーズを Output に表示するには、Input サーバーの
view_results(phase)を使用します。 - PLAXIS が呼び出しを拒否した場合、PLAXIS 自身のメッセージも
plaxis_messageに含まれます(サニタイズ済み:ファイルシステムのパスとスタックフレームを除外し、切り詰めたことは別途フラグで示します)。calculateが失敗した場合は、フェーズごとのテーブルもdetailsに含まれます。
クライアント
同梱されているすべてのサンプルにはシークレットが含まれておらず、ロールごとに 1 つ、計 2 つのサーバーエントリーを使用します。
コマンドを plaxis-mcp.exe の保存場所に置き換えるか、PyPI からインストールする場合は uvx plaxis-mcp に置き換えてください。
それ以外は編集不要です。--role が共有プロファイルを自動的に見つけます。
| クライアント | サンプル | 認証情報と承認 |
|---|---|---|
| Codex | codex-config.toml | env_vars でローカルに保存されているパスワードを渡します。default_tools_approval_mode = "writes" を設定します。 |
| Claude Code | claude-code-mcp.json | .mcp.json ではユーザーレベルの環境変数のみを展開し、サーバーの信頼確認とツールの承認プロンプトを維持します。 |
| Cursor | cursor-mcp.json | 起動時にユーザー環境内のロールパスワードを使用し、自動実行はオフのままにします。 |
| VS Code / Copilot | vscode-mcp.json | パスワードの inputs エントリーを使用します。VS Code が再利用できるよう安全に保存します。Default Approvals を使用し、Bypass や Autopilot は使用しないでください。 |
汎用の mcp-client-config.json は、この一般的な JSON 形式を使用するクライアント向けの最小限の mcpServers サンプルです。
PLAXIS のパスワードをバージョン管理、コマンドライン引数、ログ、プロファイルファイルに決して追加しないでください。
セキュリティモデル
- プロファイルは 1 つのインストール環境に紐付けられます。
credential_targetはinstallation_rootから導出され、worker_pythonは検出処理によって同じルートに紐付けられたインタープリターでなければなりません。これら 3 つの値のいずれかを手動で編集すると、プロファイルを読み込めなくなります。これにより、プロファイルから保存済みの PLAXIS パスワードが任意の実行可能ファイルに渡されるのを防ぎます。 - 環境変数による上書きはマージではなく拒否されます。
PLAXIS_*エンドポイント変数が設定されている場合、serveは起動を拒否します。 - 未認証の組み合わせはフェイルクローズします。 Python の一致判定は厳密です。異なるパッチレベルの 3.7 系インタープリターは、認証されていない別の ABI と見なされ、互換性があると推測されるのではなく拒否されます。
- 変更前に確認します。 すべてのクライアントで
call_methodやプロジェクト/ファイルを変更するツールの実行前に確認を求めるようにしてください。call_method、open_project、save_projectに対して「常に許可」のようなルールを設定しないでください。クライアントの承認は通常、引数単位ではなくツール全体に適用されます。 - 変更は元に戻せません。 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.3 | current-312 | 実環境での認証後に有効化 |
| PLAXIS CONNECT Edition V22 → 2024 年初頭 | 3.8.10 | legacy-38 | 初期の本番環境ターゲット |
| PLAXIS CONNECT Edition V20 / V21 | 3.7.4 | legacy-37 | 実環境での認証とセキュリティ認証の両方が完了した後に有効化 |
V20 と V21 はレガシープロファイルを共有します。サポート終了済みの Python はループバックワーカー内で隔離され、組織によるセキュリティ上の承認が必要です。
要件
- Windows、および Remote Scripting が有効な、サポート対象のローカル PLAXIS 2D インストール。
- MCP ホストには CPython 3.13 が必要です。サポート対象のホスト範囲:
>=3.13,<3.14。 - ループバックのみで待ち受ける PLAXIS Input サーバーおよび/または Output サーバーを 1 つ。デフォルトは
Input
127.0.0.1:10000、Output127.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 トランスポート、および Python 環境にコピーした PLAXIS バンドルは、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 と提携、承認、または後援関係にありません。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。