IFC MCP について
IFC MCPは、IFC/BIMファイルの検査、作成、レポート生成をAIアシスタントから行うローカルMCPサーバーです。PyodideとIfcOpenShellでローカル処理し、モデルビューアーとBCF視点操作も備えています。
主な機能
- 01IFC/BIMモデルのローカル検査
- 02IFCファイルとレポートの作成
- 03ビューアーでモデルを表示
- 04BCF視点の適用
活用シーン
- 01要素数の集計とプロパティの問題確認
- 02部屋面積のCSVレポート生成
- 03簡易なIFC建物モデルの作成
- 04モデルや視点の表示
MCP 対応
IFCの分析、ファイル作成、レポート生成、ビューアー操作のツールをMCPクライアントに提供します。STDIOでローカル実行でき、独自ビューアーにも接続できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
5掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| code | string | はい | 生の Python コード。入力ファイルは名前で開きます。例:ifcopenshell.open("model.ifc") または open("model.ifc", "rb")。 |
| files | array | はい | IFC/IFCXML/IFCZIP 入力。ない場合は [] を使用します。デスクトップホストではローカルファイルシステムのパスを使用し、ブラウザホストではブラウザ定義のパスを使用します。 |
詳細
IFC MCP
IFC MCP を使うと、AI アシスタントで IFC/BIM ファイルを検査したり、IFC ファイルやレポートを作成したり、ビューアーで IFC モデルを開いたり、BCF ビューポイントを適用したりできます。
仕組み
インストール後、AI クライアントに普段の言葉で依頼してください。IFC ツールが必要になると、AI クライアントが IFC MCP を起動し、リクエストをローカルサーバーに送信します。IFC MCP は IFC ファイルをローカルで読み込み、IfcOpenShell を使ってローカルの Pyodide ランタイムで必要な IFC 処理を実行し、回答をチャットに返します。
プロンプトの例:
Open examples/sample.ifc and summarize the model.Count the walls, doors, windows, spaces, and property sets in examples/sample.ifc.Find missing names, classifications, and suspicious property values in this IFC file.Create a CSV room-area report from this IFC file.Create a simple IFC file with one building, one storey, and four walls.Open the IFC viewer and show examples/sample.ifc.Apply C:\path\to\viewpoint.bcfzip in the open IFC viewer.Clear the IFC viewer.
IFC MCP がレポート、BCF ファイル、または新しい IFC ファイルを作成すると、ローカルのダウンロードリンクを返します。モデルの表示を依頼すると、IFC MCP はローカルのビューアーリンクを開きます。AI クライアントがリンクを自動で開かない場合は、ブラウザーで開いてください。
大きな IFC ファイルの処理には 1 分以上かかることがあります。リクエストをキャンセルしても、すでに実行中の Python は停止しません。再試行する前に、処理が終わるまでお待ちください。
インストール
1. 前提条件
Node.js の公式ダウンロードページから、Node.js 20 以降をインストールしてください。お使いのオペレーティングシステムに対応する LTS バージョンを選び、インストーラーを実行した後、IFC MCP を使用するアプリを再起動してください。
IFC MCP は Node.js に含まれる npx を使用します。後でアプリに node または npx が見つからないと表示された場合は、Node.js LTS を再インストールし、アプリを再起動してください。
2. クライアントを選択
ChatGPT デスクトップアプリ
ChatGPT デスクトップアプリは、STDIO 経由のローカル MCP サーバーに対応しています。
- ChatGPT デスクトップアプリを開きます。
Settingsを開きます。Plugins、続いてMCPsを選択します。Addをクリックします。サーバーの種類を求められた場合は、STDIOを選択します。- 次のように入力します。
- Name:
ifc-mcp - Command to launch:
npx - First argument:
-y - Second argument:
ifc-mcp
- Name:
- 環境変数の欄は空欄のままにして、サーバーを保存します。
- ChatGPT デスクトップアプリを再起動します。
- 新しいチャットを開始し、
/mcpと入力して、ifc-mcpが接続されていることを確認します。
詳しくは、OpenAI の MCP ドキュメントをご覧ください。
Claude Desktop
オプション 1:Claude Desktop の UI を使用する
- Claude Desktop を開きます。
Settingsを開きます。DeveloperまたはDesktop appの開発者設定を開きます。Edit Configボタンがある場合はクリックします。Claude Desktop の MCP 設定ファイルが開きます。- 以下の JSON を貼り付けてファイルを保存し、Claude Desktop を完全に終了してから再起動します。
{
"mcpServers": {
"ifc-mcp": {
"command": "npx",
"args": ["-y", "ifc-mcp"]
}
}
}
ファイルにすでに JSON が含まれている場合は、既存の mcpServers オブジェクト内に ifc-mcp エントリだけを追加してください。mcpServers オブジェクトを 2 つ作成しないでください。
オプション 2:設定ファイルを直接開く
Claude Desktop に Edit Config が表示されない場合にのみ、この方法を使用してください。
- Windows:
%APPDATA%\Claude\claude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
オプション 1 と同じ JSON を貼り付けてファイルを保存し、Claude Desktop を完全に終了してから再起動します。
確認
設定を確認するには、Claude Desktop を開いて新しいチャットを開始し、チャットボックスの近くにある + ボタンをクリックして、Connectors を探します。Claude Desktop の再起動後、IFC MCP がそこに表示されます。上記の仕組みのセクションに記載されているツールが一覧表示されていることを確認してください。
VS Code Copilot
オプション 1:インストールボタンを使用する
VS Code が開き、IFC MCP が追加されます。
VS Code からサーバーを信頼するか尋ねられた場合は、許可してください。 ツールが表示されない場合は、VS Code を再読み込みしてください。チャットを開き、ツール/ツールの構成ボタンを使って IFC MCP ツールを確認してください。
オプション 2:.vscode/mcp.json を手動で追加する
{
"servers": {
"IFC MCP": {
"type": "stdio",
"command": "npx",
"args": ["-y", "ifc-mcp"]
}
}
}
ファイルを保存した後、VS Code を再読み込みしてください。
チャットを開き、ツール/ツールの構成ボタンを使って IFC MCP ツールを確認してください。
詳細については、VS Code MCP サーバーのドキュメントをご覧ください。
VS Code Codex
オプション 1:Codex の設定 UI を使用する
- VS Code を開きます。
- Codex パネルを開きます。
- Codex の設定を開きます。
MCP serversを選択します。Add serverをクリックします。- 次の情報を入力します。
- 名前:
ifc-mcp - コマンド:
npx - 引数:
-y ifc-mcp
- 名前:
- サーバーを保存します。
- VS Code を再読み込みするか、新しい Codex セッションを開始します。
- 新しい Codex セッションで IFC MCP ツールを利用できることを確認します。
オプション 2:ターミナルコマンドを使用する
- VS Code で
Terminal -> New Terminalを開きます。 - 次のコマンドを貼り付けて実行します。
codex mcp add ifc-mcp -- npx -y ifc-mcp
- VS Code を再読み込みするか、新しい Codex セッションを開始します。
- 新しい Codex セッションで IFC MCP ツールを利用できることを確認します。
詳細については、Codex MCP のドキュメントをご覧ください。
VS Code Claude Code
オプション 1:プロジェクトの JSON ファイルを使用する
- VS Code でプロジェクトを開きます。
- プロジェクトのルートにある
.mcp.jsonを作成または編集します。 - 次の JSON を追加してファイルを保存します。
{
"mcpServers": {
"ifc-mcp": {
"command": "npx",
"args": ["-y", "ifc-mcp"]
}
}
}
- VS Code で Claude Code を再度開きます。
/mcpと入力し、Claude から求められた場合はプロジェクトサーバーを承認します。ifc-mcpが接続されていることを確認します。
オプション 2:すべてのプロジェクトにターミナルコマンドを使用する
claude mcp add --transport stdio ifc-mcp --scope user -- npx -y ifc-mcp
その後、VS Code で Claude Code を再度開き、/mcp と入力して、ifc-mcp が
接続されていることを確認します。
claude コマンドが見つからない場合は、先に Claude Code をインストールしてください。
詳細については、Claude Code VS Code のドキュメントとClaude Code MCP のドキュメントをご覧ください。
その他の MCP クライアント
次のサーバーエントリを MCP クライアントの設定に追加します。
{
"mcpServers": {
"ifc-mcp": {
"command": "npx",
"args": ["-y", "ifc-mcp"]
}
}
}
設定を保存した後、MCP クライアントを再起動してください。
詳細については、Model Context Protocol のドキュメントをご覧ください。
アプリにすでに IFC ビューアがある場合は、IFC MCP の通常のツールインターフェースを再利用し、既定のローカルビューアを開く代わりに、アプリ内でビューアのアクションを実行できます。MCP クライアントは引き続き show-ifc-file や set-bcf-view などのツールを呼び出します。ビューアツールの動作を定義するのはアプリ側だけです。
Node MCP サーバー
ローカルのファイルパスを受け取るハンドラーを用意します。以下の関数をアプリのビューアアクションに置き換えてください。
import { createServer } from "ifc-mcp";
import { serveStdio } from "@modelcontextprotocol/server/stdio";
serveStdio(() => createServer({
viewer: {
"open-ifc-viewer": () => openThisViewer(),
"show-ifc-file": ({ file_path }) => loadIfcIntoThisViewer(file_path),
"set-bcf-view": ({ bcf_path }) => applyBcfToThisViewer(bcf_path),
"clear-ifc-viewer": () => clearThisViewer(),
},
}));
ハンドラーから MCP ツールの結果を返します。content にはフィードバックを格納し、失敗を示すには isError: true を指定します。
ブラウザーアプリ
アプリで選択したファイルと、既存のビューア用コールバックを渡します。ここでは、file は選択した IFC File で、viewer はビューアのインスタンスです。
import { createIfcMcpHost } from "ifc-mcp/browser";
const files = new Map([
[file.name, { name: file.name, source: file }],
]);
const host = createIfcMcpHost({
files,
viewer: {
"show-ifc-file": (name, bytes) => viewer.add(name, bytes),
"set-bcf-view": (name, bytes) => viewer.add(name, bytes),
"clear-ifc-viewer": () => viewer.clear(),
},
});
const result = await host.handleToolCall({
name: "show-ifc-file",
input: { file_path: file.name },
});
ファイルのコールバックには、ファイル名と Uint8Array のバイト列が渡されます。BCF コールバックは、視点が適用されたかどうかを説明する MCP ツールの結果を返す必要があります。ツール定義には host.tools を、生成されたダウンロードファイルには host.getGeneratedFiles() を使用します。ダウンロードが不要になったら、host.clearFiles() を呼び出してください。
ローカル開発
このチェックアウトからローカル開発を行う場合:
npm install
npm test
ワークスペースには .vscode/mcp.json が含まれているため、VS Code からこのチェックアウトのサーバーを実行できます。
セキュリティ
IFC MCP では、IFC に関する作業はお使いのマシン上で行われます。IFC ファイルの読み込み、IFC の分析、ローカルビューアの起動はすべてローカルで実行されます。ビューアがパブリックインターネットに公開されることはありません。
生成されたレポート、BCF ファイル、IFC ファイルは、一時的なローカルダウンロードリンクとして提供されます。IFC MCP は、既定では生成された出力ファイルをプロジェクトフォルダーに書き込みません。
信頼できる IFC/BIM ファイルおよびプロジェクトフォルダーに対してのみ IFC MCP を使用してください。IFC MCP は、使用を指示したファイルを読み取ることができます。また、モデルデータに誤りや誤解を招く内容が含まれていると、不正確なレポートや生成された IFC ファイルにつながる可能性があります。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。