Skip to main content
Glama
soewal19

EraCore Revit MCP

by soewal19

EraCore Revit MCP

Python 3.12+ License: MIT Architecture MCP

EraCore Revit MCP is a Model Context Protocol (MCP) server that connects LLM assistants (Cursor, Claude Desktop, and others) to Autodesk Revit BIM models. It exposes typed tools for reading model metadata, listing elements, creating geometry, batch-updating parameters, and exporting schedules.

Built with Hexagonal Architecture, Domain-Driven Design, and a Walking Skeleton delivery approach.

Version

1.0.0

Revit

2024–2027 (pyRevit bridge tested on 2027)

Python

3.12+

Platform

Windows (Revit integration); fake mode runs anywhere


Features

Capability

Fake mode

pyRevit mode

MCP tools (7) — ping, model info, list/get elements

Create walls with Revit transactions

Batch parameter updates (≤100 per batch)

Export ViewSchedule to CSV

Real Revit document read/write via HTTP bridge

Unit tests without Revit installed


Related MCP server: revit-mcp

Quick Start

Prerequisites

  • Python 3.12+

  • Windows 10/11 (required for live Revit integration)

  • Autodesk Revit 2024+ and pyRevit (optional; fake mode needs neither)

Install

git clone <repository-url> eracore
cd eracore

python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -e ".[dev]"

Copy-Item .env.example .env

Run the Walking Skeleton (fake mode — no Revit)

# Default: REVIT_MCP_REVIT_ADAPTER_MODE=fake in .env
python -m revit_mcp demo

Expected output ends with:

WALKING SKELETON OK — walls: 2 → 3
Report generated: reports/demo_walls.csv

Run with real Revit (pyRevit)

# 1. Install pyRevit extension and dependencies
.\scripts\install_revit_deps.ps1

# 2. Start Revit with the bridge
.\scripts\start_revit_with_bridge.ps1

# 3. Open any .rvt model, then set adapter mode
#    REVIT_MCP_REVIT_ADAPTER_MODE=pyrevit  in .env

python -m revit_mcp demo
python -m revit_mcp mcp

See Revit & pyRevit setup for full instructions.


MCP Tools

Tool

Description

ping()

Health check — server version and Revit connectivity

get_model_info(include_stats?)

Project metadata, levels, optional category statistics

list_elements(...)

Filtered, paginated element list

get_element(element_id)

Single element with parameters

create_wall(...)

Create a wall between two XYZ points (mm)

batch_update_parameters(...)

Bulk parameter updates with per-item error reporting

export_schedule(...)

Export a ViewSchedule to CSV

Full contracts: Software Design Document · MCP server source


CLI Commands

python -m revit_mcp mcp      # Start MCP server (stdio transport)
python -m revit_mcp demo     # Run end-to-end Walking Skeleton
python -m revit_mcp config   # Print active configuration
python -m revit_mcp help     # Show help

Project Structure

eracore/
├── src/revit_mcp/              # Python MCP server (hexagonal layers)
│   ├── domain/                 # Entities, value objects, ports
│   ├── application/            # Use cases and DTOs
│   ├── adapters/
│   │   ├── primary/mcp/        # MCP inbound adapter
│   │   └── secondary/pyrevit_adapter/  # Revit bridge outbound adapters
│   └── config/                 # Settings and DI container
├── pyrevit_extension/          # EraCoreMCP pyRevit extension (HTTP bridge)
├── scripts/                    # Install and Revit launch scripts
├── tests/unit/                 # Use-case tests (fake adapter)
└── docs/                       # Architecture (C4) and guides

Configuration

Environment variables use the REVIT_MCP_ prefix. Copy .env.example to .env.

Variable

Default

Description

REVIT_MCP_REVIT_ADAPTER_MODE

fake

fake or pyrevit

REVIT_MCP_REVIT_BRIDGE_HOST

127.0.0.1

HTTP bridge host

REVIT_MCP_REVIT_BRIDGE_PORT

47200

HTTP bridge port

REVIT_MCP_REVIT_API_TIMEOUT_SEC

30

Bridge RPC timeout (increase for slow models)

REVIT_MCP_LOG_LEVEL

INFO

Logging level


Development

# Unit tests (≥70% coverage enforced)
pytest tests/unit -q

# Linting and types
ruff check src tests
ruff format src tests
mypy -p src.revit_mcp

# Architecture boundary checks
lint-imports

Docker (fake mode only — Revit cannot run inside Linux containers):

docker compose --profile ci run --rm tests
docker compose --profile demo run --rm demo

MCP Client Integration

Cursor

Add to MCP settings:

{
  "mcpServers": {
    "eracore-revit": {
      "command": "python",
      "args": ["-m", "revit_mcp", "mcp"],
      "cwd": "F:\\Teach\\eracore",
      "env": {
        "REVIT_MCP_REVIT_ADAPTER_MODE": "pyrevit"
      }
    }
  }
}

More clients: MCP client configuration guide.


Documentation

Document

Description

Documentation index

Entry point for all docs

C4 Architecture

Context → Container → Component → Code

Getting started

Detailed setup walkthrough

Revit integration

pyRevit bridge and extension

SDD v1

Use cases, MCP contracts, acceptance criteria

PRINCIPLES.md

Engineering and architecture rules


Architecture at a Glance

 LLM Client (Cursor / Claude)
        │  MCP stdio JSON-RPC
        ▼
 EraCore MCP Server (Python)
        │  Use Cases → Ports
        ▼
 Fake adapter (in-memory)  OR  pyRevit HTTP Bridge (:47200)
                                      │
                                      ▼
                              Autodesk Revit 2027 + .rvt model

Full C4 diagrams: System Context · Containers · Components


License

MIT — see LICENSE.


EraCore Team · BIM × AI · 2026

A
license - permissive license
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • Convert Revit files to XKT, IFC, or DWG and query BIM data via natural language.

  • Revit model query + APS Design Automation runner.

  • Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.

View all MCP Connectors

Latest Blog Posts

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/soewal19/eracore-revit-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server