Fragment MCP Server
Provides tools for working with Building Information Modeling (BIM) files, converting IFC files to fragment format, loading fragments, and querying BIM data by category like walls, doors, and windows.
Requires Node.js to run the server and access file system functionality for reading IFC files and writing fragment files.
Uses pnpm for dependency management and installation of required packages.
Uses Zod for schema validation within the MCP server to ensure proper data formatting and validation.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Fragment MCP Serverload the building.frag file and show me all the walls"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Fragment MCP Server
A Model Context Protocol (MCP) server for working with Building Information Modeling (BIM) files. This server provides tools to convert IFC files to fragment format, load fragments, and query BIM data by category.
Features
IFC to Fragment Conversion: Convert Industry Foundation Classes (IFC) files to the open and efficient fragment format
Fragment Loading: Load and work with pre-converted fragment files
Category-based Querying: Fetch BIM elements by category (e.g., walls, doors, windows) with configurable attributes and relations
Related MCP server: Bonsai-mcp
Tools
convert-ifc-to-frag
Converts an IFC file to a .frag file format for efficient processing.
Parameters:
inputPath(string): Full path of the IFC file to convertoutputPath(string): Full path where the output .frags file will be saved
Example:
Input: /path/to/building.ifc
Output: /path/to/building.fragload-frag
Loads a .frag file into memory for querying.
Parameters:
filePath(string): Full path of the .frag file to load
fetch-elements-of-category
Fetches elements of a specified IFC category from loaded fragments.
Parameters:
category(string): Category name (e.g., "IFCWALL", "IFCDOOR", "IFCWINDOW")config(object): Configuration for fetching elements with the following structure:attributesDefault(boolean): Include default attributesattributes(array): List of specific attributes to includerelations(object): Relation configurationHasAssociations: Include association relationsIsDefinedBy: Include definition relations
Dependencies
@modelcontextprotocol/sdk: MCP server framework@thatopen/fragments: Fragment processing libraryweb-ifc: IFC file processingzod: Schema validation
Installation
Install dependencies:
pnpm installRun the server:
node main.tsClaude Desktop Integration
To use this MCP server with Claude Desktop, add the following configuration to your Claude Desktop settings file:
Configuration
Open Claude Desktop settings
Navigate to the MCP servers configuration
Add the following JSON configuration:
{
"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"
]
}
}
}Prerequisites for Claude Desktop
Node.js must be installed and accessible via
npxThe
tsxpackage should be available (install globally withnpm install -g tsxif needed)Both the filesystem and bim servers need to be configured for full functionality
Usage Workflow
Convert IFC to Fragment: Use
convert-ifc-to-fragto convert your IFC file to the efficient fragment formatLoad Fragments: Use
load-fragto load the fragment file into memoryQuery Elements: Use
fetch-elements-of-categoryto retrieve specific building elements by their IFC category
Supported IFC Categories
Common categories you can query include:
IFCWALL- WallsIFCDOOR- DoorsIFCWINDOW- WindowsIFCSLAB- Slabs/FloorsIFCBEAM- BeamsIFCCOLUMN- ColumnsIFCSPACE- Spaces/Rooms
Requirements
Node.js
File system access for reading IFC files and writing fragment files
Compatible with Model Context Protocol clients
Author
Helen Kwok
Available Tools
3 toolsconvert-ifc-to-fragC
Convert an IFC file to a .frag file. Needs file-system server
| Name | Required | Description | Default |
|---|---|---|---|
| inputPath | Yes | Full path of the IFC file to convert | |
| outputPath | Yes | Full path where the output .frags file will be saved |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'Needs file-system server' which adds useful context about infrastructure requirements, but it doesn't describe other behavioral traits like whether the conversion is destructive, what happens if files already exist, error conditions, or performance characteristics. For a file conversion tool with zero annotation coverage, this leaves significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately concise with two sentences that each serve a purpose: the first states the core functionality, the second provides important context about server requirements. There's no unnecessary verbiage, and the information is front-loaded with the primary purpose stated first.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that this is a file conversion tool with no annotations and no output schema, the description is incomplete. It doesn't explain what the .frag format is, what the conversion entails, potential limitations, or what happens upon completion. The 'Needs file-system server' hint helps but doesn't compensate for the lack of behavioral and output information that would help an agent use this tool effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with both parameters (inputPath and outputPath) clearly documented in the schema. The description doesn't add any parameter-specific information beyond what's already in the schema descriptions. According to the rules, when schema coverage is high (>80%), the baseline is 3 even with no param info in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: converting an IFC file to a .frag file. It specifies both the input format (IFC) and output format (.frag), making the verb+resource combination explicit. However, it doesn't differentiate from sibling tools like 'load-frag' which might handle .frag files differently, preventing a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides minimal usage guidance with 'Needs file-system server' indicating a prerequisite, but it doesn't explain when to use this tool versus alternatives like 'load-frag' or 'fetch-elements-of-category'. There's no explicit when/when-not guidance or comparison with sibling tools, leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fetch-elements-of-categoryC
Fetch elements of a specified category
| Name | Required | Description | Default |
|---|---|---|---|
| category | Yes | Category name. e.g. IFCWALL | |
| config | Yes | Configuration for fetching elements |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states 'fetch' which implies a read operation, but doesn't disclose critical traits like whether it's safe, what permissions are needed, rate limits, pagination, or what happens on errors. For a tool with complex nested parameters and no annotations, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste. It's appropriately sized and front-loaded, stating the core purpose without unnecessary elaboration. Every word earns its place, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (nested objects, no output schema, no annotations), the description is incomplete. It doesn't explain what 'elements' are, the return format, or how the config affects results. For a tool with rich input schema but no output schema, more context is needed to understand its behavior and usage fully.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both parameters ('category' and 'config') well-documented in the schema. The description adds no additional meaning beyond the schema, such as explaining the purpose of the config object or providing examples beyond the basic 'e.g. IFCWALL' in the schema. Baseline 3 is appropriate since the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Fetch elements of a specified category' clearly states the action (fetch) and target (elements of a category), but it's vague about what 'elements' are and doesn't distinguish from sibling tools like 'convert-ifc-to-frag' or 'load-frag'. It provides a basic purpose without specific context about the domain (e.g., IFC/BIM data).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description lacks context about prerequisites, when this tool is appropriate, or any exclusions. With sibling tools like 'convert-ifc-to-frag' and 'load-frag', there's no indication of how this tool relates to them or when to choose one over another.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
load-fragC
Load a .frag file. Needs file-system server
| Name | Required | Description | Default |
|---|---|---|---|
| filePath | Yes | Full path of the file to load with fragments |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool loads a file and requires a file-system server, but it doesn't disclose critical traits like whether this is a read-only operation, potential side effects (e.g., memory usage), error handling, or performance considerations. This leaves significant gaps in understanding the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two short sentences that directly address the tool's function and requirement. Every word earns its place, and it is front-loaded with the core action, making it efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of file loading operations, the lack of annotations and output schema, and the description's minimal detail, this is incomplete. It doesn't explain what 'load' means in terms of output (e.g., data structure, success/failure indicators) or behavioral nuances, which are crucial for effective tool invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the 'filePath' parameter well-documented in the schema. The description does not add any meaning beyond what the schema provides (e.g., it doesn't clarify file format expectations or path validation rules). According to the rules, with high schema coverage, the baseline is 3 even without param info in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Load') and the resource ('.frag file'), making the purpose understandable. It distinguishes from sibling tools like 'convert-ifc-to-frag' and 'fetch-elements-of-category' by focusing on loading rather than conversion or fetching. However, it doesn't specify what 'load' entails (e.g., reading, parsing, or processing), which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions 'Needs file-system server', which provides some context about prerequisites, but it lacks explicit guidance on when to use this tool versus alternatives. There is no mention of when-not-to-use scenarios or comparisons with sibling tools, leaving usage decisions ambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
3 tool updates
- First observed
convert-ifc-to-frag - First observed
fetch-elements-of-category - First observed
load-frag
TDQS
Each tool has a clearly distinct purpose: converting IFC to FRAG, fetching elements by category, and loading FRAG files. There is no overlap or ambiguity in their functions, making it easy for an agent to select the correct tool for each task.
The tools follow a consistent verb-object naming pattern (e.g., convert-ifc-to-frag, fetch-elements-of-category, load-frag), with all names using kebab-case. There is a minor deviation in 'load-frag' being slightly simpler, but overall the naming is predictable and readable.
With only 3 tools, the server feels thin for a domain involving IFC/FRAG file processing and element fetching. While the tools cover basic operations, the scope suggests more comprehensive functionality might be expected, such as querying or manipulating loaded data.
The toolset has significant gaps for a fragment processing domain. It lacks operations for updating, deleting, or querying beyond category fetching, and there are no tools for saving or exporting modified fragments, leaving agents with dead ends in workflows.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Model Context Protocol server for Studex tools, notifications, and profile integrations
A Model Context Protocol server for Wix AI tools
A Model Context Protocol (MCP) server for Selise Blocks Cloud integration
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Related MCP Servers
- FlicenseBqualityDmaintenanceA Model Context Protocol server that enables LLMs to extract and use content from unstructured documents across a wide variety of file formats.111-
- AlicenseAqualityDmaintenanceA Model Context Protocol server that integrates Claude with Blender, enabling users to analyze and interact with IFC (Industry Foundation Classes) building models through natural language commands.1760MIT
- AlicenseNot gradedqualityDmaintenanceA server that implements the Model Context Protocol, providing a standardized way to connect AI models to different data sources and tools.1511MIT
- AlicenseNot gradedqualityFmaintenanceA Model Context Protocol server that provides intelligent file reading and semantic search capabilities across multiple document formats with security-first access controls.7MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/helenkwok/openbim-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server