mcpField
I
IFC MCP

IFC MCP

ローカル
github.com/flinker-appメディア・デザイン135 週間前に更新

IFC MCP について

IFC MCPは、IFC/BIMファイルの検査、作成、レポート生成をAIアシスタントから行うローカルMCPサーバーです。PyodideとIfcOpenShellでローカル処理し、モデルビューアーとBCF視点操作も備えています。

主な機能

  1. 01IFC/BIMモデルのローカル検査
  2. 02IFCファイルとレポートの作成
  3. 03ビューアーでモデルを表示
  4. 04BCF視点の適用

活用シーン

  1. 01要素数の集計とプロパティの問題確認
  2. 02部屋面積のCSVレポート生成
  3. 03簡易なIFC建物モデルの作成
  4. 04モデルや視点の表示

MCP 対応

IFCの分析、ファイル作成、レポート生成、ビューアー操作のツールをMCPクライアントに提供します。STDIOでローカル実行でき、独自ビューアーにも接続できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"flinker-app-ifc": {
"command": "npx",
"args": [
"-y",
"ifc-mcp"
]
}
}
}
起動コマンドnpx -y ifc-mcp

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmifc-mcp0.2.0

ツール

5

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
codestringはい生の Python コード。入力ファイルは名前で開きます。例:ifcopenshell.open("model.ifc") または open("model.ifc", "rb")。
filesarrayはいIFC/IFCXML/IFCZIP 入力。ない場合は [] を使用します。デスクトップホストではローカルファイルシステムのパスを使用し、ブラウザホストではブラウザ定義のパスを使用します。

詳細

IFC MCP

IFC MCP を使うと、AI アシスタントで IFC/BIM ファイルを検査したり、IFC ファイルやレポートを作成したり、ビューアーで IFC モデルを開いたり、BCF ビューポイントを適用したりできます。

仕組み

インストール後、AI クライアントに普段の言葉で依頼してください。IFC ツールが必要になると、AI クライアントが IFC MCP を起動し、リクエストをローカルサーバーに送信します。IFC MCP は IFC ファイルをローカルで読み込み、IfcOpenShell を使ってローカルの Pyodide ランタイムで必要な IFC 処理を実行し、回答をチャットに返します。

YouTube で IFC MCP と Claude のデモを見る

プロンプトの例:

  • 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 サーバーに対応しています。

  1. ChatGPT デスクトップアプリを開きます。
  2. Settings を開きます。
  3. Plugins、続いて MCPs を選択します。
  4. Add をクリックします。サーバーの種類を求められた場合は、STDIO を選択します。
  5. 次のように入力します。
    • Name:ifc-mcp
    • Command to launch:npx
    • First argument:-y
    • Second argument:ifc-mcp
  6. 環境変数の欄は空欄のままにして、サーバーを保存します。
  7. ChatGPT デスクトップアプリを再起動します。
  8. 新しいチャットを開始し、/mcp と入力して、ifc-mcp が接続されていることを確認します。

詳しくは、OpenAI の MCP ドキュメントをご覧ください。

Claude Desktop

オプション 1:Claude Desktop の UI を使用する

  1. Claude Desktop を開きます。
  2. Settings を開きます。
  3. Developer または Desktop app の開発者設定を開きます。
  4. Edit Config ボタンがある場合はクリックします。Claude Desktop の MCP 設定ファイルが開きます。
  5. 以下の 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 がそこに表示されます。上記の仕組みのセクションに記載されているツールが一覧表示されていることを確認してください。

詳細については、Claude の[ローカル MCP サーバーガイド](https://support.claude.com/en/articles/10949351-getting-started-with-local-mcp-servers-on-claude-desktop)をご覧ください。

VS Code Copilot

オプション 1:インストールボタンを使用する

VS Code が開き、IFC MCP が追加されます。

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 を使用する

  1. VS Code を開きます。
  2. Codex パネルを開きます。
  3. Codex の設定を開きます。
  4. MCP servers を選択します。
  5. Add server をクリックします。
  6. 次の情報を入力します。
    • 名前:ifc-mcp
    • コマンド:npx
    • 引数:-y ifc-mcp
  7. サーバーを保存します。
  8. VS Code を再読み込みするか、新しい Codex セッションを開始します。
  9. 新しい Codex セッションで IFC MCP ツールを利用できることを確認します。

オプション 2:ターミナルコマンドを使用する

  1. VS Code で Terminal -> New Terminal を開きます。
  2. 次のコマンドを貼り付けて実行します。
codex mcp add ifc-mcp -- npx -y ifc-mcp
  1. VS Code を再読み込みするか、新しい Codex セッションを開始します。
  2. 新しい Codex セッションで IFC MCP ツールを利用できることを確認します。

詳細については、Codex MCP のドキュメントをご覧ください。

VS Code Claude Code

オプション 1:プロジェクトの JSON ファイルを使用する

  1. VS Code でプロジェクトを開きます。
  2. プロジェクトのルートにある .mcp.json を作成または編集します。
  3. 次の JSON を追加してファイルを保存します。
{
  "mcpServers": {
    "ifc-mcp": {
      "command": "npx",
      "args": ["-y", "ifc-mcp"]
    }
  }
}
  1. VS Code で Claude Code を再度開きます。
  2. /mcp と入力し、Claude から求められた場合はプロジェクトサーバーを承認します。
  3. 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 ファイルにつながる可能性があります。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。