OpenSTAAD MCP Server について
OpenSTAAD MCP Serverは、OpenSTAAD APIを介してAIエージェントを実行中のBentley STAAD.Proモデルに接続します。モデル操作、APIガイダンス、複数インスタンスへの接続に対応し、テレメトリーなしでローカル処理します。
主な機能
- 01OpenSTAAD経由でSTAAD.Proモデルを操作
- 02API利用ガイダンス
- 03複数の実行中インスタンスに接続
- 04テレメトリーなしのローカル処理
- 05CSVおよびXLSXデータの入出力
活用シーン
- 01STAAD.Proモデルで荷重ケースを定義
- 02モデルデータの抽出やプロパティの反復設定
- 03CSVまたはXLSXでモデルデータを一括処理
MCP 対応
APIガイダンスの検索、稼働中インスタンスの一覧表示、接続モデルでの検証済みPythonコードの実行、接続状態と解析状態の確認ツールを公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
OpenSTAAD MCP Server
Bentley の STAAD.Pro 用の Model Context Protocol(MCP)サーバーです。Claude Desktop、Gemini、VSCode Copilot などの AI エージェントが STAAD.Pro のモデルを操作し、荷重ケースの定義、データの抽出、繰り返しのプロパティ設定など、時間のかかるさまざまなタスクを実行できるようにします。
この MCP サーバーは、Bentley の Infrastructure AI Co-Innovation Initiative の一環として導入されました。ユーザーやアカウントをお持ちのお客様が機会を見つけてより迅速にイノベーションを起こせるよう支援するとともに、Bentley 独自のエンジニアリングツールの機能を、新たに登場しているエージェント型ワークフローにつなぎます。
主な機能
- 高速かつ柔軟:レイテンシーを最小限に抑え、OpenSTAAD API が対応する STAAD.Pro のすべての機能を操作できます。
- AI に最適:専用ツールを通じてドキュメント、ガイダンス、フィードバックを提供し、AI エージェントが STAAD.Pro API をすばやく使いこなせるよう支援します。
- 複数インスタンスのサポート:実行中の複数の STAAD.Pro インスタンスに同時に接続し、モデル間でタスクを並列化できます。
- プライバシー優先:すべての処理はお使いのマシン上でローカルに実行されます。データがクラウドに送信されることはありません。テレメトリーもありません。
前提条件
- OS:Windows 11 以降
- STAAD.Pro 2025 以降がインストールされ、実行中であること
Claude Desktop ですぐに使う(2 分以内)
- GitHub Releases ページから最新の
openstaad-mcp.mcpbファイルをダウンロードします。 - Claude Desktop を開きます。
- ☰ メニュー(左上)→ File → Settings → Extensions の順にクリックします。
- Advanced → Install Extensions の順にクリックします。
- ダウンロードした
.mcpbファイルを選択します。 - ☰ メニュー(左上)→ File → Exit の順にクリックします。
- Claude Desktop を再起動します。
Claude Desktop がサーバーを自動的にインストールします。新しい会話を開き、STAAD.Pro モデルを操作するよう Claude に依頼してください。
ヒント:チャットを始める前に、モデルを開いた状態で STAAD.Pro が実行されていることを確認してください。
その他のクライアントと設定
要約:
まだインストールしていない場合は、次のコマンドで uv をインストールします。
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
クライアントを設定し、次のコマンドでサーバーを stdio モードで起動します。
uvx --from git+https://github.com/BentleySystems/openstaad-mcp openstaad-mcp
GitHub Copilot を使用する VS Code
-
stdio の場合:コマンドパレットを開き、MCP: Add Server... → Command (stdio) の順に選択し、次のコマンドを入力します。
uvx --from git+https://github.com/BentleySystems/openstaad-mcp openstaad-mcp -
http の場合:まず、ターミナルでサーバーを起動します。
uvx --from git+https://github.com/BentleySystems/openstaad-mcp openstaad-mcp --transport httpターミナルの出力から、生成されたトークンと URL を確認します。次のような形式です。
WARNING: No --token provided. Auto-generated token: abc123def456ghi789jkl012mno345pq INFO: Starting MCP server 'OpenSTAAD MCP' with transport 'http' (stateless) on http://127.0.0.1:18120/mcp次に VS Code でコマンドパレットを開き、MCP: Add Server... → HTTP URL の順に選択して、ターミナルに表示された URL(例:
http://127.0.0.1:18120/mcp)を入力します。18120はデフォルトのポートですが、複数のインスタンスを実行している場合やデフォルトを変更した場合は、異なることがあります。MCP サーバーのターミナルに表示されたトークンを使って、ヘッダーAuthorization: Bearer <token>を追加します。
GitHub Copilot CLI
Copilot CLI のセッション内で /mcp add コマンドを使用して、サーバーを追加します。詳しくは Copilot CLI のドキュメントを参照してください。
-
stdio トランスポートの場合は、次のコマンドを使用します。
uvx --from git+https://github.com/BentleySystems/openstaad-mcp openstaad-mcp -
HTTP トランスポートの場合は、まずターミナルでサーバーを起動します。
uvx --from git+https://github.com/BentleySystems/openstaad-mcp openstaad-mcp --transport httpターミナルの出力から、生成されたトークンと URL を確認します。次のような形式です。
WARNING: No --token provided. Auto-generated token: abc123def456ghi789jkl012mno345pq INFO: Starting MCP server 'OpenSTAAD MCP' with transport 'http' (stateless) on http://127.0.0.1:18120/mcp次に、ターミナルに表示された URL(例:
http://127.0.0.1:18120/mcp)を使って Copilot CLI でサーバーを追加します。18120はデフォルトのポートですが、複数のインスタンスを実行している場合やデフォルトを変更した場合は、異なることがあります。MCP サーバーのターミナルに表示されたトークンを使って、ヘッダーAuthorization: Bearer <token>を追加します。
Claude Desktop(手動設定)
.mcpb バンドルを使わず、手動でセットアップする場合は、Claude Desktop の設定ファイルを直接編集します。
- Windows(MSIX):
%LOCALAPPDATA%\Packages\Claude_<id>\LocalCache\Roaming\Claude\claude_desktop_config.json - Windows(従来版):
%APPDATA%\Claude\claude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"openstaad": {
"command": "uvx",
"args": ["--from", "git+https://github.com/BentleySystems/openstaad-mcp", "openstaad-mcp"]
}
}
}
Claude Code(CLI)
-
stdio トランスポートでは、次のコマンドを使います。
claude mcp add --transport stdio openstaad -- uvx --from git+https://github.com/BentleySystems/openstaad-mcp openstaad-mcp -
HTTP トランスポートでは、まずターミナルでサーバーを起動します。
uvx --from git+https://github.com/BentleySystems/openstaad-mcp openstaad-mcp --transport http生成されたトークンと URL は、ターミナルの出力で確認できます。次のように表示されます。
WARNING: No --token provided. Auto-generated token: abc123def456ghi789jkl012mno345pq INFO: Starting MCP server 'OpenSTAAD MCP' with transport 'http' (stateless) on http://127.0.0.1:18120/mcp次に、次のコマンドで Claude Code にサーバーを追加します。
claude mcp add --transport http openstaad http://127.0.0.1:18120/mcp --header "Authorization: Bearer <your-token>"18120はデフォルトのポートですが、複数のインスタンスを実行している場合や、デフォルトを変更した場合は異なることがあります。
Gemini CLI
-
stdio トランスポートでは、次のコマンドを使います。
gemini mcp add openstaad uvx --from git+https://github.com/BentleySystems/openstaad-mcp openstaad-mcp -
HTTP トランスポートでは、まずターミナルでサーバーを起動します。
uvx --from git+https://github.com/BentleySystems/openstaad-mcp openstaad-mcp --transport http生成されたトークンと URL は、ターミナルの出力で確認できます。次のように表示されます。
WARNING: No --token provided. Auto-generated token: abc123def456ghi789jkl012mno345pq INFO: Starting MCP server 'OpenSTAAD MCP' with transport 'http' (stateless) on http://127.0.0.1:18120/mcp次に、次のコマンドで Gemini CLI にサーバーを追加します。
gemini mcp add --transport http --header "Authorization: Bearer <your-token>" openstaad http://127.0.0.1:18120/mcp18120はデフォルトのポートですが、複数のインスタンスを実行している場合や、デフォルトを変更した場合は異なることがあります。
トランスポートモード
サーバーは、次の 2 つのトランスポートモードに対応しています。
| モード | 使用する場面 |
|---|---|
| stdio(デフォルト) | MCP クライアントがサーバープロセスを直接起動します。Claude Desktop、Claude Code、VS Code Copilot(stdio 設定)で使用されます。 |
| HTTP | サーバーが常時稼働し、クライアントがネットワーク経由で接続します。 |
CLI オプション
| フラグ | デフォルト | 説明 |
|---|---|---|
--transport {stdio,http} | stdio | トランスポートモード |
--log-level LEVEL | INFO | DEBUG、INFO、WARNING、または ERROR |
--log-file PATH | OS default | ログファイルのパス |
--port PORT | 18120 | [http] リッスンする TCP ポート |
--token TOKEN | - | [http] 認証用ベアラートークン |
利用可能な MCP ツール
| ツール | 説明 |
|---|---|
discover_api | 利用可能な API スキルと使用方法を案内します |
read_skills | 指定されたスキルの詳細な案内を返します |
list_instances | アクティブな STAAD.Pro インスタンスを、モデルのパスとバージョンとともに一覧表示します |
execute_code | 接続された STAAD.Pro モデルに対して、検証済みの Python コードを実行します |
get_status | 接続状態、STAAD のバージョン、モデルのパス、解析の状態を返します |
ファイル I/O
execute_code ツールは、大量データのワークフロー向けに、オプションでサーバー側のファイル I/Oに対応しています。
大きなデータセットをエージェントのコンテキストウィンドウに渡す代わりに、サーバーが CSV および XLSX ファイルを直接読み書きし、
サンドボックス内の input_data 変数にデータを挿入します。
| パラメーター | 説明 |
|---|---|
input_data_path | .csv または .xlsx ファイルのパスです。サーバーが読み込んで解析し、サンドボックス内の input_data 変数に挿入します。 |
output_data_path | サンドボックスの戻り値を書き込む先のパスです。戻り値は、リストのリスト(CSV)または {sheet_name: {columns, rows}} 形式の辞書(複数シートの XLSX)である必要があります。 |
overwrite | 既存の出力ファイルへの上書きを許可します(デフォルトは false)。 |
input_data の形式は、拡張子ごとに固定されています。
- CSV:行リストのリストです。ヘッダーが検出された場合は
input_data[0]に格納され、データ行はinput_data[1:]から始まります。 - XLSX:
{sheet_name: {"columns": list, "rows": list_of_rows}}形式の辞書です。
パスの制限: ファイルの読み書きを行う前に、ファイルパスが設定済みの許可境界内に解決される必要があります。
サーバーは、クライアントで設定された MCP ルートとサーバーで設定された許可ディレクトリ(--allowed-dirs またはマニフェストの user_config.allowed_directories を使用)の両方に対応しています。
サーバーは、ファイルにアクセスする前に、これらの境界に基づいてパスを検証します。
制限: ファイルサイズは最大 50 MB、行数は最大 100K、列数は最大 500、入力シート数は最大 50 です。
セキュリティに関する注意事項
- ベアラートークン認証。 HTTP モードで実行する際は
--token MY_SECRET_TOKENを渡し、クライアントリクエストにAuthorization: Bearer <token>を含めてください。 - DNS リバインディング対策。 Starlette ミドルウェアが
Host、Sec-Fetch-Site、Originヘッダーを検証します。 - コードサンドボックス。
execute_codeツールは実行前に AST 解析ですべての Python コードを検証します。インポート、ファイルアクセス、危険な組み込み関数は禁止されています。
プライバシーポリシー
Bentley Systems のプライバシーポリシーはこちらをご覧ください。
コントリビューション
開発環境のセットアップ、ブランチの命名、テストの実行、プルリクエストの送信に関するガイドラインは、CONTRIBUTING.mdをご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。