# IFC MCP server

> Inspect and create IFC/BIM files, build reports and view models locally with IfcOpenShell running in Pyodide.

- Listing: https://mcp.tc/i/ifc
- Connect: this is a local (stdio) server; install it on your machine (see Install). The listing link is a page, not an MCP endpoint.
- Type: local (stdio)
- Auth: no API key needed
- Category: [Developer Tools](https://mcp.tc/c/developer-tools)
- Vendor: flinker-app
- Repository: <https://github.com/flinker-app/ifc-mcp>
- Package: npm `ifc-mcp`

## About

IFC MCP lets an AI assistant work with IFC/BIM building models. It can inspect IFC files, create new IFC files, produce reports such as CSV room-area summaries, open models in an IFC viewer and apply BCF viewpoints. Generated reports, BCF files and new IFC files are returned as local download links.

It runs locally over stdio through npx, started by your MCP client. IFC files are read on your machine and the IFC logic runs in a local Pyodide runtime with IfcOpenShell. No sign-in or API key is needed. Node.js 20 or newer is required. Large files can take over a minute to process.

## What it can do

- Inspect and summarize IFC models
- Count elements such as walls, doors, windows and spaces
- Find missing names, classifications and suspicious property values
- Create CSV reports from IFC data
- Create new IFC files from a description
- Open IFC models in a local viewer
- Apply BCF viewpoints in the open viewer

## Example prompts

- "Open examples/sample.ifc and summarize the model."
- "Count the walls, doors and windows in this IFC file."
- "Create a CSV room-area report from this IFC file."
- "Create a simple IFC file with one storey and four walls."

## Install

### Claude Code

1. Run this in a terminal, in your project folder:

```bash
claude mcp add --transport stdio ifc -- npx -y ifc-mcp
```

2. Start Claude Code and type `/mcp`. **ifc** should show as connected.

Add `--scope user` to make it available in every project.

### Claude Desktop

1. Open **Settings → Developer → Edit Config**. It opens `claude_desktop_config.json`. Add:

`claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "ifc": {
      "command": "npx",
      "args": [
        "-y",
        "ifc-mcp"
      ]
    }
  }
}
```

2. Save the file and restart Claude Desktop.

Needs Node.js on your computer. The file lives in `~/Library/Application Support/Claude/` on macOS and `%APPDATA%\Claude\` on Windows.

### Cursor

[Add to Cursor](<https://cursor.com/install-mcp?name=ifc&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsImlmYy1tY3AiXX0%3D>) (opens Cursor)

Or add it by hand to `~/.cursor/mcp.json` (all projects) or `.cursor/mcp.json` (this project):

`mcp.json`:

```json
{
  "mcpServers": {
    "ifc": {
      "command": "npx",
      "args": [
        "-y",
        "ifc-mcp"
      ]
    }
  }
}
```

Needs Node.js on your computer.

### VS Code

[Install in VS Code](<https://vscode.dev/redirect/mcp/install?name=ifc&config=%7B%22type%22%3A%22stdio%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22ifc-mcp%22%5D%7D>) (opens VS Code)

Or from a terminal:

```bash
code --add-mcp '{"name":"ifc","type":"stdio","command":"npx","args":["-y","ifc-mcp"]}'
```

Or commit it to the repo in `.vscode/mcp.json`:

`.vscode/mcp.json`:

```json
{
  "servers": {
    "ifc": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "ifc-mcp"
      ]
    }
  }
}
```

Needs Node.js on your computer.

### Devin Desktop

1. Add it to `~/.config/devin/mcp_config.json` (macOS and Linux) or `%APPDATA%\devin\mcp_config.json` (Windows):

`mcp_config.json`:

```json
{
  "mcpServers": {
    "ifc": {
      "command": "npx",
      "args": [
        "-y",
        "ifc-mcp"
      ]
    }
  }
}
```

2. Refresh the MCP server list in Cascade.

Devin Desktop is the new name for Windsurf.

### Codex

```bash
codex mcp add ifc -- npx -y ifc-mcp
```

Or edit `~/.codex/config.toml` directly:

`config.toml`:

```toml
[mcp_servers.ifc]
command = "npx"
args = ["-y", "ifc-mcp"]
```

Needs Node.js on your computer.

### Gemini CLI

```bash
gemini mcp add ifc npx -- -y ifc-mcp
```

This adds it to the current project. Add `-s user` to use it everywhere.

### Any client

Most clients that start local servers accept this shape:

```json
{
  "mcpServers": {
    "ifc": {
      "command": "npx",
      "args": [
        "-y",
        "ifc-mcp"
      ]
    }
  }
}
```

Zed puts servers under `context_servers` in its settings, with the same `command`, `args` and `env` fields.

Needs Node.js on your computer.

## Details

- Server version: 0.2.0
- Last checked: 2026-10-04
- Listed: 2026-10-04
- Updated: 2026-10-04

---
Source: https://mcp.tc/i/ifc (mcp.tc is an independent directory, not affiliated with this server's publisher). Corrections: https://mcp.tc/report
