关于 IFC MCP
IFC MCP 是面向 BIM 工作的本地 MCP 服务,可供 AI 助手检查、生成和汇报 IFC 文件。它使用 Pyodide 与 IfcOpenShell 在本机处理文件,并提供模型查看器及 BCF 视点操作。
主要功能
- 01本地检查 IFC/BIM 模型
- 02创建 IFC 文件与报告
- 03在查看器中打开模型
- 04应用 BCF 视点
适用场景
- 01统计构件并检查属性问题
- 02生成房间面积 CSV 报告
- 03创建简单 IFC 建筑模型
- 04在查看器中查看模型或视点
MCP 相关
向 MCP 客户端提供 IFC 文件分析、创建、报告及查看器操作工具。服务器通过 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 逻辑,然后将结果返回到聊天中。
以下是一些不错的示例提示词:
打开 examples/sample.ifc 并总结模型。统计 examples/sample.ifc 中的墙、门、窗、空间和属性集数量。查找此 IFC 文件中缺失的名称、分类以及可疑的属性值。根据此 IFC 文件生成房间面积 CSV 报告。创建一个简单的 IFC 文件,其中包含一栋建筑、一层楼和四面墙。打开 IFC 查看器并显示 examples/sample.ifc。在已打开的 IFC 查看器中应用 C:\path\to\viewpoint.bcfzip。清空 IFC 查看器。
如果 IFC MCP 生成报告、BCF 文件或新的 IFC 文件,它会返回一个本地下载链接。如果你请求查看模型,IFC MCP 会打开一个本地查看器链接。如果你的 AI 客户端没有自动打开该链接,请在浏览器中打开。
大型 IFC 文件的处理时间可能超过一分钟。取消请求不会停止已在运行的 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。 - 输入:
- 名称:
ifc-mcp - 启动命令:
npx - 第一个参数:
-y - 第二个参数:
ifc-mcp
- 名称:
- 将环境变量字段留空并保存服务。
- 重启 ChatGPT 桌面应用。
- 开始新的聊天,输入
/mcp,并确认ifc-mcp已连接。
如需了解更多信息,请参阅 OpenAI 的 MCP 文档。
Claude Desktop
选项 1:使用 Claude Desktop 界面
- 打开 Claude Desktop。
- 打开
Settings。 - 打开
Developer或Desktop app开发者设置。 - 如果有
Edit Config按钮,请点击它。这会打开 Claude Desktop MCP 配置文件。 - 粘贴以下 JSON,保存文件,然后完全退出并重新打开 Claude Desktop。
{
"mcpServers": {
"ifc-mcp": {
"command": "npx",
"args": ["-y", "ifc-mcp"]
}
}
}
如果文件中已有 JSON,请仅将 ifc-mcp 条目添加到现有的 mcpServers 对象中。不要创建第二个 mcpServers 对象。
选项 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 设置界面
- 打开 VS Code。
- 打开 Codex 面板。
- 打开 Codex 设置。
- 选择
MCP servers。 - 点击
Add server。 - 输入:
- 名称:
ifc-mcp - 命令:
npx - 参数:
-y ifc-mcp
- 名称:
- 保存服务。
- 重新加载 VS Code 或启动新的 Codex 会话。
- 检查 IFC MCP 工具是否在新的 Codex 会话中可用。
选项 2:使用终端命令
- 在 VS Code 中打开
Terminal -> New Terminal。 - 粘贴并运行:
codex mcp add ifc-mcp -- npx -y ifc-mcp
- 重新加载 VS Code 或启动新的 Codex 会话。
- 检查 IFC MCP 工具是否在新的 Codex 会话中可用。
有关详情,请参阅 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 server
提供接收本地文件路径的处理程序。将下面的函数替换为你的应用的查看器操作:
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 文件。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。