ifc-mcp
Enables AI agents to load, query, and analyze IFC building model files, including spatial structures, elements, properties, materials, and geometry.
README
IFC MCP Server
An MCP (Model Context Protocol) server that enables AI agents to understand and query IFC (Industry Foundation Classes) building model files. This server exposes a rich set of tools for loading IFC files, traversing spatial hierarchies, inspecting elements and properties, querying materials and quantities, and retrieving geometry bounding boxes — allowing AI assistants like Claude to reason about building information models without requiring the user to manually extract data.
Installation
From PyPI (recommended)
pip install ifc-mcp
# or with uv:
uv tool install ifc-mcp
Claude Desktop config (no path needed):
{
"mcpServers": {
"ifc": {
"command": "uvx",
"args": ["ifc-mcp"]
}
}
}
To update
uv tool upgrade ifc-mcp
Or pin to a specific version:
"args": ["ifc-mcp==0.2.0"]
Development Setup
Prerequisites: Python 3.11+, uv
git clone <repo>
cd IfcMcp
uv sync
uv run pytest # verify all tests pass
Claude Desktop config for local dev:
{
"mcpServers": {
"ifc": {
"command": "uv",
"args": ["run", "python", "server.py"],
"cwd": "/absolute/path/to/IfcMcp"
}
}
}
On Windows, use double backslashes: "cwd": "C:\\Users\\...\\IfcMcp"
Tools Reference
Every tool (except list_loaded_models) requires a model_id — the value returned by load_ifc_file.
| Tool | Parameters | Description |
|---|---|---|
load_ifc_file |
path |
Load an IFC file; returns model_id |
list_loaded_models |
— | List all models in memory |
unload_ifc_file |
model_id |
Free a loaded model |
get_spatial_structure |
model_id |
Full spatial hierarchy (Project→Site→Building→Storey→Space) |
get_element_containment |
model_id, global_id |
Spatial containment chain for an element |
get_elements_by_type |
model_id, ifc_type, limit, offset |
Paginated list by IFC type |
get_element_by_id |
model_id, global_id |
Full element details |
search_elements |
model_id, filters..., limit, offset |
Filter elements by type/name/pset/property |
get_property_sets |
model_id, global_id |
All Psets for an element |
get_quantities |
model_id, global_id |
All quantity sets for an element |
get_material |
model_id, global_id |
Material info (name, layers, category) |
get_model_statistics |
model_id |
Element counts by type, storey names, schema |
get_bounding_box |
model_id, global_id |
Min/max XYZ bounding box in project coordinates |
MCP Resource
Each loaded model exposes a pre-computed summary resource:
ifc://model/{model_id}/summary
This resource is computed at load time and contains the project name, IFC schema version, element counts by type, and storey names. It gives AI agents a fast overview of a model without issuing individual tool calls.
Error Responses
All tools return structured error objects. Common codes:
{"error": "element_not_found", "details": "..."}
{"error": "model_not_loaded", "details": "..."}
{"error": "geometry_unavailable", "details": "..."}
{"error": "file_not_found", "details": "..."}
{"error": "load_failed", "details": "..."}
{"error": "query_failed", "details": "..."}
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.