ifc-mcp

ifc-mcp

Enables AI agents to load, query, and analyze IFC building model files, including spatial structures, elements, properties, materials, and geometry.

Category
Visit Server

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

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.

Official
Featured
TypeScript
Audiense Insights MCP Server

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.

Official
Featured
Local
TypeScript
Magic Component Platform (MCP)

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.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

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.

Official
Featured
TypeScript
Kagi MCP Server

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.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

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.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured