Fragment MCP Server是一个用于处理建筑信息模型(BIM)文件的模型上下文协议(MCP)服务器。该服务器提供了将IFC文件转换为片段格式、加载片段以及按类别查询BIM数据的工具。
你可以按照以下步骤快速启动Fragment MCP Server:
pnpm install
node main.ts
pnpm install
node main.ts
使用convert-ifc-to-frag工具将IFC文件转换为.frag文件格式,以便进行高效处理。
Input: /path/to/building.ifc
Output: /path/to/building.frag
使用load-frag工具将.frag文件加载到内存中,以便进行查询。
使用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中使用此MCP服务器,请在Claude Desktop设置文件中添加以下配置:
{
"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"
]
}
}
}
npx访问。tsx包(如有需要,可使用npm install -g tsx全局安装)。convert-ifc-to-frag将IFC文件转换为高效的片段格式。load-frag将片段文件加载到内存中。fetch-elements-of-category按IFC类别检索特定的建筑元素。可以查询的常见类别包括:
IFCWALL - 墙IFCDOOR - 门IFCWINDOW - 窗IFCSLAB - 楼板IFCBEAM - 梁IFCCOLUMN - 柱IFCSPACE - 空间/房间文档未提及相关信息,故跳过该章节。
文档未提及相关信息,故跳过该章节。
Helen Kwok