EraCore Revit MCP
Provides tools for interacting with Autodesk Revit BIM models, including reading model metadata, listing elements, creating walls, batch-updating parameters, and exporting schedules.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@EraCore Revit MCPExport the door schedule to CSV"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
EraCore Revit 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 .envRun the Walking Skeleton (fake mode — no Revit)
# Default: REVIT_MCP_REVIT_ADAPTER_MODE=fake in .env
python -m revit_mcp demoExpected output ends with:
WALKING SKELETON OK — walls: 2 → 3
Report generated: reports/demo_walls.csvRun 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 mcpSee Revit & pyRevit setup for full instructions.
MCP Tools
Tool | Description |
| Health check — server version and Revit connectivity |
| Project metadata, levels, optional category statistics |
| Filtered, paginated element list |
| Single element with parameters |
| Create a wall between two XYZ points (mm) |
| Bulk parameter updates with per-item error reporting |
| 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 helpProject 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 guidesConfiguration
Environment variables use the REVIT_MCP_ prefix. Copy .env.example to .env.
Variable | Default | Description |
|
|
|
|
| HTTP bridge host |
|
| HTTP bridge port |
|
| Bridge RPC timeout (increase for slow models) |
|
| 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-importsDocker (fake mode only — Revit cannot run inside Linux containers):
docker compose --profile ci run --rm tests
docker compose --profile demo run --rm demoMCP 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 |
Entry point for all docs | |
Context → Container → Component → Code | |
Detailed setup walkthrough | |
pyRevit bridge and extension | |
Use cases, MCP contracts, acceptance criteria | |
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 modelFull C4 diagrams: System Context · Containers · Components
License
MIT — see LICENSE.
EraCore Team · BIM × AI · 2026
This server cannot be deployed
Maintenance
Related MCP Connectors
Convert Revit files to XKT, IFC, or DWG and query BIM data via natural language.
Revit model integration via APS — elements, parameters, schedules, clashes, IFC export.
Connect AI assistants to Google Sheets through controlled tools for reading and updating rows.
Connects AI assistants to QCDatabase.AI for everyday construction quality-control work.
Related MCP Servers
- AlicenseBqualityNot gradedmaintenanceAllows AI assistants to interact with Autodesk Revit through the MCP protocol, enabling the AI to create, modify, and delete elements in Revit projects.15123 npm1-
- AlicenseAqualityDmaintenanceEnables AI assistants to interact with Autodesk Revit to query project data, manage elements, and execute generated code via the Model Context Protocol. It provides full compatibility with GitHub Copilot and Claude to automate BIM modeling workflows.13123 npmMIT
- AlicenseAqualityDmaintenanceEnables Large Language Models to access and manipulate Autodesk Revit models through a pyRevit-based bridge and the Model Context Protocol.20193MIT
- AlicenseNot gradedqualityCmaintenanceA pyRevit extension and Python server that enables AI clients to interact with a live Autodesk Revit session through tools for project info, view management, element operations, and schedule management.57MIT