An MCP server for processing IFC4 files using FastMCP. Provides tools to retrieve and analyze IFC file entities, properties, and related metadata.
The IFC MCP server presents a coherent domain-specific toolkit for IFC file parsing with clear verb-noun naming and reasonable descriptions. All 6 tools have explicit names, descriptions, and input schemas visible in source. However, there are systematic gaps: parameter descriptions vary in quality, output schemas lack formal documentation, error handling is basic, and there is no validation guidance in descriptions. The server uses FastMCP (Python) with middleware for error handling, which is a good foundation, but does not reach production quality without addressing documentation and error clarity.
Retrieve entities of a specific type from an IFC file, optionally filtered by attributes.
Retrieve entities of a specific type from an IFC file, optionally filtered by attributes or properties, including their relevant properties.
Get information about a specific entity in an IFC file.
Retrieve all entity types from an IFC file.
Get the property names for a specific entity type in an IFC file.
Get property sets or a subset of relevant properties for a specific entity in an IFC file.
Output schemas not formally documented. Tools return dicts/lists but no schema definition provided to LLM. LLMs cannot predict response structure.
filter_dict parameter lacks detail. Description says 'list of dictionaries' but does not explain valid keys, structure, or constraints. Example: should LLM use 'property_name', 'min', 'max', 'valid_values', 'valid_substring'? Undocumented parameter structure forces guessing.
Error handling is basic. get_property_sets returns {'error': 'Entity not found'} but does not guide LLM on recovery (e.g., 'Entity not found. Use get_entity_info to verify ID.'). No structured error classification (retryable vs fatal).
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 59 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 0 | - | v1 |
file_path parameter appears in all tools but lacks validation guidance. No description of: must exist? relative/absolute? what IFC versions supported? Does malformed path raise exception or return silent failure?
recursive parameter in get_entity_info lacks explanation. What does recursive=true return vs false? Size implications? Performance cost? Defaults to false but no guidance on when to set true.
Long descriptions (get_entities_with_properties ~550 chars) bury key details with example queries. Examples ('Tell me about the properties...') should not take up description space; move to docstring or separate guidance.