IFC MCP

io.github.flinker-app由 GitHub 帳號 flinker-app 發布v0.2.0更新於 Oct 24, 2026

Local IFC/BIM MCP server with IfcOpenShell Python in Pyodide and an IFC viewer.

概覽

AI 產生的概覽

讓助理在本機檢查並建立 IFC/BIM 建築模型、產生報告,並在本機 IFC 檢視器中開啟模型。

可以做什麼
IFC MCP 在本機 Pyodide 執行環境中透過 IfcOpenShell 執行 IFC 邏輯。它可以讀取 IFC 檔案、彙總模型、統計牆、門、窗與空間等構件,並找出缺少的名稱、分類或可疑的屬性值。它也能建立簡單的 IFC 檔案、產生 CSV 式報告、開啟本機 IFC 檢視器並套用 BCF 視點。產生的報告、BCF 檔案與 IFC 檔案會以臨時本機下載連結回傳。
適用情境
當你處理 IFC/BIM 模型,並希望助理在不離開對話的情況下檢查、驗證或彙總模型,或產生小型 IFC 檔案與房間面積報告時,適合使用。它鎖定支援本機 STDIO MCP 伺服器的桌面用戶端。
執行需求
桌面電腦需安裝 Node.js 20 或更新版本(含 npx)。伺服器透過 npx ifc-mcp 以 STDIO 方式在本機執行;未宣告任何帳號、API 金鑰或環境變數。開啟本機檢視器或下載連結需要瀏覽器。
安裝前請注意
它會讀取你指定的 IFC 檔案與專案資料夾,因此只應對信任的檔案使用;錯誤的模型資料可能導致報告或產生的 IFC 檔案不正確。大型 IFC 檔案可能耗時超過一分鐘,且取消請求不會停止已在執行的 Python。產生的結果以臨時本機下載連結保存,預設不會寫入你的專案資料夾。

安裝

在 SourceWeft 中

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

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

其他 MCP 客戶端

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

README

IFC MCP

IFC MCP lets your AI assistant inspect IFC/BIM files, create IFC files, create reports, open IFC models in a viewer, and apply BCF viewpoints.

How It Works

After installation, ask your AI client in normal language. The AI client starts IFC MCP when it needs the IFC tools and sends your request to the local server. IFC MCP reads IFC files locally, runs the needed IFC logic in a local Pyodide runtime with IfcOpenShell, and returns the answer to the chat.

[Watch IFC MCP with Claude demo on YouTube]

Good example prompts:

  • 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.

If IFC MCP creates a report, BCF file, or new IFC file, it returns a local download link. If you ask to view a model, IFC MCP opens a local viewer link. If your AI client does not open that link automatically, open it in your browser.

Large IFC files can take more than a minute to process. Cancelling a request does not stop Python already running; wait for it to finish before trying again.

Installation

1. Prerequisites

Install Node.js 20 or newer from the official Node.js download page. Choose the LTS version for your operating system, run the installer, then reopen the app where you want to use IFC MCP.

IFC MCP uses npx, which is included with Node.js. If your app later says node or npx is not found, reinstall Node.js LTS and reopen the app.

2. Choose your client

ChatGPT desktop app

ChatGPT desktop supports local MCP servers over STDIO.

  1. Open the ChatGPT desktop app.
  2. Open Settings.
  3. Select Plugins, then MCPs.
  4. Click Add. If prompted for a server type, choose STDIO.
  5. Enter:
    • Name: ifc-mcp
    • Command to launch: npx
    • First argument: -y
    • Second argument: ifc-mcp
  6. Leave the environment variable fields empty and save the server.
  7. Restart the ChatGPT desktop app.
  8. Start a new chat, type /mcp, and confirm that ifc-mcp is connected.

For more detail, see OpenAI's MCP documentation.

Claude Desktop

Option 1: Use the Claude Desktop UI

  1. Open Claude Desktop.
  2. Open Settings.
  3. Open Developer or Desktop app developer settings.
  4. Click Edit Config if that button is available. This opens the Claude Desktop MCP config file.
  5. Paste the JSON below, save the file, then fully quit and reopen Claude Desktop.
json
{  "mcpServers": {    "ifc-mcp": {      "command": "npx",      "args": ["-y", "ifc-mcp"]    }  }}

If the file already contains JSON, add only the ifc-mcp entry inside the existing mcpServers object. Do not create a second mcpServers object.

Option 2: Open the config file directly

Use this only if you do not see Edit Config in Claude Desktop:

  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

Paste the same JSON from Option 1, save the file, then fully quit and reopen Claude Desktop.

Check

To check the setup, open Claude Desktop, start a new chat, click the + button near the chat box, and look for Connectors. IFC MCP should appear there after Claude Desktop has restarted. You should see the tools listed in the How It Works section above.

For more detail, see Claude's local MCP server guide.

VS Code Copilot

Option 1: Use the install button

This opens VS Code and adds IFC MCP.

[Install IFC MCP in VS Code]

If VS Code asks whether you trust the server, accept it. Reload VS Code if the tools do not appear. Open Chat and use the tools/configure-tools button to see the IFC MCP tools.

Option 2: Add .vscode/mcp.json manually

json
{  "servers": {    "IFC MCP": {      "type": "stdio",      "command": "npx",      "args": ["-y", "ifc-mcp"]    }  }}

Reload VS Code after saving the file.

Open Chat and use the tools/configure-tools button to see the IFC MCP tools.

For more detail, see the VS Code MCP server docs.

VS Code Codex

Option 1: Use the Codex settings UI

  1. Open VS Code.
  2. Open the Codex panel.
  3. Open Codex settings.
  4. Select MCP servers.
  5. Click Add server.
  6. Enter:
    • Name: ifc-mcp
    • Command: npx
    • Arguments: -y ifc-mcp
  7. Save the server.
  8. Reload VS Code or start a new Codex session.
  9. Check that the IFC MCP tools are available in the new Codex session.

Option 2: Use the terminal command

  1. Open Terminal -> New Terminal in VS Code.
  2. Paste and run:
powershell
codex mcp add ifc-mcp -- npx -y ifc-mcp
  1. Reload VS Code or start a new Codex session.
  2. Check that the IFC MCP tools are available in the new Codex session.

For more detail, see the Codex MCP docs.

VS Code Claude Code

Option 1: Use a project JSON file

  1. Open your project in VS Code.
  2. Create or edit .mcp.json in the project root.
  3. Add this JSON and save the file:
json
{  "mcpServers": {    "ifc-mcp": {      "command": "npx",      "args": ["-y", "ifc-mcp"]    }  }}
  1. Reopen Claude Code in VS Code.
  2. Type /mcp and approve the project server if Claude asks.
  3. Check that ifc-mcp is connected.

Option 2: Use the terminal command for all projects

powershell
claude mcp add --transport stdio ifc-mcp --scope user -- npx -y ifc-mcp

Then reopen Claude Code in VS Code, type /mcp, and check that ifc-mcp is connected.

If the claude command is not found, install Claude Code first.

For more detail, see the Claude Code VS Code docs and Claude Code MCP docs.

Other MCP clients

Add this server entry to your MCP client config:

json
{  "mcpServers": {    "ifc-mcp": {      "command": "npx",      "args": ["-y", "ifc-mcp"]    }  }}

Restart the MCP client after saving the config.

For more detail, see the Model Context Protocol docs.

Use Your Own Viewer

If your app already has an IFC viewer, you can reuse IFC MCP's normal tool interface and apply viewer actions in your app instead of opening the default local viewer. The MCP client still calls tools like show-ifc-file and set-bcf-view; your app only defines what those viewer tools do.

Node MCP server

Provide handlers that receive local file paths. Replace the functions below with your app's viewer actions:

js
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(),  },}));

Return MCP tool results from your handlers: content contains feedback, and isError: true indicates failure.

Browser app

Pass files selected in your app and callbacks for your existing viewer. Here, file is a selected IFC File, and viewer is your viewer instance:

js
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 },});

File callbacks receive a filename and Uint8Array bytes. The BCF callback must return an MCP tool result describing whether the viewpoint was applied. Use host.tools for the tool definitions and host.getGeneratedFiles() for generated downloads. Call host.clearFiles() when those downloads are no longer needed.

Local Development

For local development from this checkout:

powershell
npm installnpm test

The workspace includes .vscode/mcp.json, so VS Code can run the server from this checkout.

Security

IFC MCP keeps the IFC work on your own machine. It reads your IFC files locally, runs the IFC analysis locally, and opens a local viewer. It does not publish the viewer to the public internet.

Generated reports, BCF files, and IFC files are temporary local download links. IFC MCP does not write generated output files into your project folder by default.

Use IFC MCP only with IFC/BIM files and project folders you trust. It can read the files you ask it to use, and incorrect or misleading model data can lead to wrong reports or generated IFC files.

來源:README.md,提交 e28a02b

工具

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

版本歷史

2
  1. v0.2.0最新Sep 24, 2026
  2. v0.1.17Sep 16, 2026

評分

已滿足適用檢查項的 50%

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

  • 近 30 天內可連通25 分

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

  • 已宣告認證方式10 分

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

  • 已列出工具15 分

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

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