README
🚀 Fragment MCP Server
Fragment MCP Server是一个用于处理建筑信息模型(BIM)文件的模型上下文协议(MCP)服务器。该服务器提供了将IFC文件转换为片段格式、加载片段以及按类别查询BIM数据的工具。
🚀 快速开始
你可以按照以下步骤快速启动Fragment MCP Server:
- 安装依赖:
pnpm install
- 运行服务器:
node main.ts
✨ 主要特性
- IFC到片段的转换:将工业基础类(IFC)文件转换为开放且高效的片段格式。
- 片段加载:加载并处理预先转换好的片段文件。
- 基于类别的查询:按类别(如墙、门、窗)获取BIM元素,并可配置属性和关系。
📦 安装指南
安装依赖
pnpm install
运行服务器
node main.ts
💻 使用示例
基础用法
1. 将IFC文件转换为片段文件
使用convert-ifc-to-frag工具将IFC文件转换为.frag文件格式,以便进行高效处理。
Input: /path/to/building.ifc
Output: /path/to/building.frag
2. 加载片段文件
使用load-frag工具将.frag文件加载到内存中,以便进行查询。
3. 查询指定类别的元素
使用fetch-elements-of-category工具从已加载的片段中获取指定IFC类别的元素。
高级用法
在使用fetch-elements-of-category工具时,可以通过config参数进行更详细的配置,例如:
{
"category": "IFCWALL",
"config": {
"attributesDefault": true,
"attributes": ["Name", "Length"],
"relations": {
"HasAssociations": true,
"IsDefinedBy": true
}
}
}
📚 详细文档
工具说明
convert-ifc-to-frag
将IFC文件转换为.frag文件格式,用于高效处理。
参数:
inputPath(字符串):要转换的IFC文件的完整路径。outputPath(字符串):输出的.frag文件的保存路径。
load-frag
将.frag文件加载到内存中,以便进行查询。
参数:
filePath(字符串):要加载的.frag文件的完整路径。
fetch-elements-of-category
从已加载的片段中获取指定IFC类别的元素。 参数:
category(字符串):类别名称(如 "IFCWALL"、"IFCDOOR"、"IFCWINDOW")。config(对象):用于获取元素的配置,结构如下:attributesDefault(布尔值):是否包含默认属性。attributes(数组):要包含的特定属性列表。relations(对象):关系配置。HasAssociations:是否包含关联关系。IsDefinedBy:是否包含定义关系。
依赖项
@modelcontextprotocol/sdk:MCP服务器框架。@thatopen/fragments:片段处理库。web-ifc:IFC文件处理库。zod:模式验证库。
Claude Desktop集成
要在Claude Desktop中使用此MCP服务器,请在Claude Desktop设置文件中添加以下配置:
配置步骤
- 打开Claude Desktop设置。
- 导航到MCP服务器配置。
- 添加以下JSON配置:
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/path/to/your/models/directory"
]
},
"bim": {
"command": "npx",
"args": [
"-y",
"tsx",
"/path/to/your/openbim-mcp/main.ts"
]
}
}
}
Claude Desktop的先决条件
- 必须安装Node.js,并且可以通过
npx访问。 - 应安装
tsx包(如有需要,可使用npm install -g tsx全局安装)。 - 为了实现完整功能,需要同时配置文件系统服务器和BIM服务器。
使用工作流程
- 将IFC转换为片段:使用
convert-ifc-to-frag将IFC文件转换为高效的片段格式。 - 加载片段:使用
load-frag将片段文件加载到内存中。 - 查询元素:使用
fetch-elements-of-category按IFC类别检索特定的建筑元素。
支持的IFC类别
可以查询的常见类别包括:
IFCWALL- 墙IFCDOOR- 门IFCWINDOW- 窗IFCSLAB- 楼板IFCBEAM- 梁IFCCOLUMN- 柱IFCSPACE- 空间/房间
要求
- Node.js
- 具有读取IFC文件和写入片段文件的文件系统访问权限
- 与模型上下文协议客户端兼容
📄 许可证
文档未提及相关信息,故跳过该章节。
🔧 技术细节
文档未提及相关信息,故跳过该章节。
作者
Helen Kwok
Scan to join WeChat group