Revit
БесплатноНе проверенmcp-servers-for-revit — 80+ AI automation tools for Autodesk Revit via Model Context Protocol (Revit 2023-2026)
Описание
mcp-servers-for-revit — 80+ AI automation tools for Autodesk Revit via Model Context Protocol (Revit 2023-2026)
README
mcp-servers-for-revit
Connect AI assistants to Autodesk Revit via the Model Context Protocol.
mcp-servers-for-revit enables AI clients like Claude, Cline, and other MCP-compatible tools to read, create, modify, and delete elements in Revit projects in real time. It exposes 138 tools covering project info, model analysis, element creation, batch operations, data export, and more.
[!NOTE] This is a fork of the original revit-mcp project with additional tools and functionality improvements.
Key Features
- 124 MCP tools — project info, model health, clash detection, element CRUD, batch operations, data export (PDF/DWG/IFC/CSV)
- Revit 2023, 2024, 2025, 2026, 2027 — fully tested on all five versions
- Language-independent — works with any Revit UI language (English, Italian, French, German, etc.) using BuiltInCategory resolution
- Built-in Claude chat panel — dockable panel inside Revit with direct AI access (Anthropic API, extended thinking enabled)
- Real-time execution — AI requests are executed immediately on the active model via TCP/JSON-RPC 2.0
- Extensible command set — add new commands without modifying the plugin core
Architecture
flowchart LR
Client["MCP Client<br/>(Claude, Cline, etc.)"]
Server["MCP Server<br/><code>server/</code>"]
Plugin["Revit Plugin<br/><code>plugin/</code>"]
CommandSet["Command Set<br/><code>commandset/</code>"]
Revit["Revit API"]
Client <-->|stdio| Server
Server <-->|TCP :8080| Plugin
Plugin -->|loads| CommandSet
CommandSet -->|executes| Revit
| Component | Language | Role |
|---|---|---|
MCP Server (server/) |
TypeScript | Translates AI tool calls into JSON-RPC messages over TCP |
Revit Plugin (plugin/) |
C# | Runs inside Revit, listens on localhost:8080, dispatches commands |
Command Set (commandset/) |
C# | Implements Revit API operations, returns structured results |
Requirements
To use
| Requirement | Details |
|---|---|
| Node.js | 18+ (for the MCP server) |
| Autodesk Revit | 2023, 2024, 2025, 2026, or 2027 |
| OS | Windows 10/11 (Revit is Windows-only) |
| Anthropic API key (optional) | Required only for the built-in chat panel. Set via %USERPROFILE%\.claude\api_key.txt or env ANTHROPIC_API_KEY |
To build from source
| Requirement | Details |
|---|---|
| Visual Studio 2022 | With .NET desktop development workload |
| .NET Framework 4.8 SDK | For Revit 2023-2024 builds |
| .NET 8 SDK | For Revit 2025-2026 builds |
| .NET 10 SDK (preview) | For Revit 2027 builds |
| Node.js 18+ | For the MCP server |
| Revit API assemblies | Installed with Revit (referenced automatically via NuGet) |
Quick Start
1. Install the Revit plugin
Option A: Automatic install (recommended)
Open PowerShell and paste this command:
powershell -ExecutionPolicy Bypass -Command "irm https://raw.githubusercontent.com/LuDattilo/revit-mcp-server/main/scripts/install.ps1 | iex"
The script:
- Detects installed Revit versions automatically
- Downloads the correct pre-built Release from GitHub
- Extracts to the right folder and unblocks all DLLs
- Verifies all dependencies are present
- Checks for Node.js (required for MCP server) and offers to install it
- Configures Claude Desktop if installed
# Install for a specific Revit version
.\install.ps1 -RevitVersion 2025
# Install a specific release
.\install.ps1 -Tag v1.2.0
# Uninstall
.\install.ps1 -Uninstall
Option B: Manual install
[!IMPORTANT] Download the pre-built ZIP from the Releases page. Do NOT clone the repository or copy the source code — the source contains
.csfiles, not compiled.dllfiles. The plugin will not work without compiled binaries.
Extract the ZIP to:
%AppData%\Autodesk\Revit\Addins\<your Revit version>\
To open this folder quickly, press Win+R and type:
%AppData%\Autodesk\Revit\Addins
After extraction your folder must look like this:
Addins/2025/
├── mcp-servers-for-revit.addin <-- manifest file (required)
└── revit_mcp_plugin/ <-- subfolder (required)
├── RevitMCPPlugin.dll <-- main plugin (required)
├── RevitMCPSDK.dll <-- SDK dependency (required)
├── Newtonsoft.Json.dll <-- JSON dependency (required)
├── tool_schemas.json
└── Commands/
├── commandRegistry.json
└── RevitMCPCommandSet/
├── command.json
└── 2025/
├── RevitMCPCommandSet.dll
└── ...
[!WARNING] If
RevitMCPPlugin.dllis missing or therevit_mcp_plugin/subfolder is not present, the plugin will not load. Check that you extracted the contents of the ZIP, not the ZIP file itself.
2. Configure the MCP server
Claude Code
claude mcp add mcp-server-for-revit -- npx -y mcp-server-for-revit
Claude Desktop
Claude Desktop → Settings → Developer → Edit Config → claude_desktop_config.json:
{
"mcpServers": {
"mcp-server-for-revit": {
"command": "npx",
"args": ["-y", "mcp-server-for-revit"]
}
}
}
3. Start Revit
The plugin loads automatically. In the Add-Ins ribbon tab you should see three buttons in the "Revit MCP Plugin" panel:
| Button | Function |
|---|---|
| Revit MCP Switch | Start/stop the TCP server |
| MCP Panel | Show/hide the built-in chat panel |
| Settings | Plugin settings |
Click "Revit MCP Switch" to start the TCP server. When the status indicator turns green, the connection is active.
[!TIP] If you only see the Switch button but not MCP Panel or Settings, the plugin did not load correctly. See Troubleshooting below.
Supported Revit Versions
| Version | .NET Target | Status | Notes |
|---|---|---|---|
| Revit 2023 | .NET Framework 4.8 | Fully tested | Italian localization verified |
| Revit 2024 | .NET Framework 4.8 | Built & compatible | Same codebase as R23 |
| Revit 2025 | .NET 8 | Fully tested | Structural model (Snowdon Towers) |
| Revit 2026 | .NET 8 | Fully tested | Primary development target |
| Revit 2027 | .NET 10 | Fully tested | .NET 10 SDK (preview) required |
All tools work across all versions. The command set uses compile-time constants (REVIT2023, REVIT2024, etc.) to handle API differences between versions (e.g., ElementId is long in R24+, int in R23).
Supported Tools (124)
Project & Model Info
| Tool | Description |
|---|---|
get_project_info |
Project metadata, levels, phases, links, worksets |
get_current_view_info |
Active view type, name, scale, detail level |
get_current_view_elements |
Elements from the active view filtered by category |
get_selected_elements |
Currently selected elements |
get_available_family_types |
Family types filtered by category |
get_element_parameters |
All instance and type parameters for elements |
get_warnings |
Model warnings and errors |
get_phases |
Phases and phase filters |
get_worksets |
Workset info and status |
get_shared_parameters |
Project parameters bound to categories |
manage_links |
List, reload, or unload linked Revit models |
Model Analysis & Auditing
| Tool | Description |
|---|---|
ai_element_filter |
Intelligent element query by category, type, visibility, bounding box |
analyze_model_statistics |
Element counts by category, type, family, and level |
check_model_health |
Health score (0-100), grade (A-F), actionable recommendations |
clash_detection |
Geometric intersection detection between element sets |
measure_between_elements |
Distance measurement (center-to-center, closest points, bounding box) |
get_elements_in_spatial_volume |
Find elements within a 3D bounding region |
Materials & Quantities
| Tool | Description |
|---|---|
get_materials |
List materials filtered by class or name |
get_material_properties |
Physical, structural, and thermal properties |
get_material_quantities |
Material takeoffs: area, volume, element counts |
Element Creation
| Tool | Description |
|---|---|
create_line_based_element |
Walls, beams, pipes (start/end points) |
create_point_based_element |
Doors, windows, furniture (insertion point) |
create_surface_based_element |
Floors, ceilings, roofs (boundary) |
create_floor |
Floors from boundary points or room boundaries |
create_room |
Rooms at specified locations |
create_grid |
Grid systems with automatic spacing |
create_level |
Levels at specified elevations |
create_structural_framing_system |
Beam framing systems within a boundary |
create_array |
Linear or radial arrays of elements |
Element Modification
| Tool | Description |
|---|---|
modify_element |
Move, rotate, mirror, or copy elements |
operate_element |
Select, hide, isolate, highlight, delete |
change_element_type |
Batch swap family types |
set_element_parameters |
Write parameter values on elements |
set_element_phase |
Change element phase assignment |
set_element_workset |
Change element workset assignment |
match_element_properties |
Copy parameters from source to target elements |
copy_elements |
Copy elements between views |
delete_element |
Delete elements by ID |
load_family |
Load a family file (.rfa) into the project |
Views & Sheets
| Tool | Description |
|---|---|
create_view |
Create floor plans, sections, elevations, 3D views |
duplicate_view |
Duplicate views (independent, dependent, with detailing) |
create_view_filter |
Create, apply, or list view filters |
apply_view_template |
List, apply, or remove view templates |
override_graphics |
Per-element graphic overrides (color, transparency, lineweight) |
color_elements |
Color elements by parameter value |
create_sheet |
Create sheets with title blocks |
batch_create_sheets |
Create multiple sheets at once |
place_viewport |
Place views onto sheets |
create_schedule |
Create schedule views with fields, filters, sorting |
create_revision |
List, create, or add revisions to sheets |
Annotation
| Tool | Description |
|---|---|
create_dimensions |
Dimension annotations between elements or points |
create_text_note |
Text note annotations in views |
create_filled_region |
Hatched/filled regions in views |
tag_all_walls |
Auto-tag all walls in the active view |
tag_all_rooms |
Auto-tag all rooms in the active view |
Data Export
| Tool | Description |
|---|---|
export_room_data |
All room data (area, volume, department, finishes) |
export_elements_data |
Bulk element data export with filtering (JSON/CSV) |
export_schedule |
Export schedules to CSV/TXT files |
get_schedule_data |
Read schedule contents or list all schedules |
batch_export |
Export sheets/views to PDF, DWG, or IFC |
Batch Operations & Cleanup
| Tool | Description |
|---|---|
batch_rename |
Batch rename views, sheets, levels, grids, rooms |
renumber_elements |
Sequential renumbering of rooms, doors, windows |
sync_csv_parameters |
Write parameter values back from CSV/AI data |
purge_unused |
Identify and remove unused families, types, materials |
cad_link_cleanup |
Audit and clean up CAD imports and links |
add_shared_parameter |
Add shared parameters to categories |
Advanced
| Tool | Description |
|---|---|
send_code_to_revit |
Execute C# code inside Revit. Variables: document (Document), parameters (object[]). Auto-imports: System, System.Linq, Autodesk.Revit.DB/UI, System.Collections.Generic. Use return to send results. Mode auto wraps in Transaction, none for manual |
store_project_data |
Store project metadata in local database |
store_room_data |
Store room metadata in local database |
query_stored_data |
Query stored project and room data |
say_hello |
Display a greeting dialog (connection test) |
Built-in Chat Panel
The Revit plugin includes a dockable chat panel that connects directly to the Anthropic API. It provides a Claude chat interface inside Revit where the AI can autonomously execute tools on the active model.
- Model: Claude Sonnet 4.6 with extended thinking (10K token budget)
- System prompt: Autonomous mode — Claude executes actions directly without unnecessary confirmations
- Features: Tool execution feedback, thinking summary, round progress, stop/cancel, chat export (TXT/MD/JSON)
Known Limitations
| Limitation | Details |
|---|---|
| Windows only | Revit runs only on Windows; macOS/Linux are not supported |
| Single model | The plugin operates on the active document only; background documents are not accessible |
| TCP port 8080 | The plugin listens on localhost:8080; if the port is occupied, the server won't start |
| No undo integration | Operations executed by AI tools create standard Revit transactions but are not grouped into a single undo step |
send_code_to_revit |
May fail if third-party addins cause assembly conflicts (e.g., duplicate DLL references) |
| Parameter names are localized | Revit parameter names depend on UI language. Use BuiltInCategory names (e.g., OST_Walls) for categories. The command set resolves categories automatically, but parameter names must match the Revit language |
| No streaming | Tool results are returned as a single response; large results (e.g., exporting thousands of elements) may take time |
| Anthropic API key | The built-in chat panel requires an Anthropic API key. External MCP clients (Claude Code, Claude Desktop) use their own authentication |
Troubleshooting
Only the Switch button appears (no MCP Panel or Settings)
Cause: The plugin was not installed correctly — usually because source code was copied instead of the pre-built Release, or files are missing.
Fix:
- Close Revit
- Delete the old installation from
%AppData%\Autodesk\Revit\Addins\<version>\ - Download the correct ZIP from the Releases page
- Extract and verify the folder structure matches the one shown in Step 1
- Restart Revit
Plugin does not appear in Add-Ins tab
- Verify that
mcp-servers-for-revit.addinexists directly inside%AppData%\Autodesk\Revit\Addins\<version>\(not in a subfolder) - Verify the ZIP version matches your Revit version (e.g., Revit2025 ZIP for Revit 2025)
- Check that Revit did not block the DLLs: right-click each
.dll→ Properties → if you see "Unblock" at the bottom, check it and click OK
"Connection refused" when using Claude Desktop or Claude Code
- Ensure Revit is open and the MCP Switch is ON (green indicator)
- Check that port 8080 is not used by another application:
netstat -an | findstr 8080
Other common issues
| Issue | Solution |
|---|---|
| "Element not found" | Verify element ID with get_current_view_elements |
| "Parameter not found" | Check exact name with get_element_parameters — names are localized |
| "Family type not found" | Use get_available_family_types for exact names |
| "Tool not available" in Claude Desktop | Restart Claude Desktop to refresh the MCP tool list |
| Timeout on large operations | Try with fewer elements or a simpler filter |
Development
MCP Server
cd server
npm install
npm run build
The server compiles TypeScript to server/build/. During development you can run it directly with npx tsx server/src/index.ts.
Revit Plugin + Command Set
Open mcp-servers-for-revit.sln in Visual Studio. The solution contains both the plugin and command set projects. Build configurations target Revit 2023-2027:
| Configuration | Target | .NET |
|---|---|---|
Debug R23 / Release R23 |
Revit 2023 | .NET Framework 4.8 |
Debug R24 / Release R24 |
Revit 2024 | .NET Framework 4.8 |
Debug R25 / Release R25 |
Revit 2025 | .NET 8 |
Debug R26 / Release R26 |
Revit 2026 | .NET 8 |
Debug R27 / Release R27 |
Revit 2027 | .NET 10 |
Building the solution automatically assembles the complete deployable layout in plugin/bin/AddIn <year> <config>/ — the command set is copied into the plugin's Commands/ folder as part of the build.
Testing
The test project uses Nice3point.TUnit.Revit to run integration tests against a live Revit instance.
# Revit 2026
dotnet test -c Debug.R26 -r win-x64 tests/commandset
# Revit 2025
dotnet test -c Debug.R25 -r win-x64 tests/commandset
Note: The
-r win-x64flag is required on ARM64 machines because the Revit API assemblies are x64-only.
Project Structure
mcp-servers-for-revit/
├── mcp-servers-for-revit.sln # Combined solution (plugin + commandset + tests)
├── command.json # Command set manifest
├── server/ # MCP server (TypeScript) - tools exposed to AI clients
│ └── src/tools/ # One .ts file per tool (138 tools)
├── plugin/ # Revit add-in (C#) - TCP bridge + chat panel
│ └── UI/ # Dockable chat panel (XAML + code-behind)
├── commandset/ # Command implementations (C#) - Revit API operations
│ ├── Commands/ # Command registration
│ ├── Services/ # Event handlers (one per tool)
│ └── Utils/ # CategoryResolver, ProjectUtils, etc.
├── tests/ # Integration tests (TUnit + live Revit)
├── assets/ # Images for documentation
├── .github/ # CI/CD workflows
├── LICENSE
└── README.md
Releasing
A single v* tag drives the entire release. The release workflow automatically:
- Builds the Revit plugin + command set for Revit 2023-2027
- Creates a GitHub release with
mcp-servers-for-revit-vX.Y.Z-Revit<year>.zipassets - Publishes the MCP server to npm as mcp-server-for-revit
# Bump version, commit, and tag
./scripts/release.ps1 -Version X.Y.Z
# Push to trigger CI
git push origin main --tags
Acknowledgements
| Credit | Link | |
|---|---|---|
| Original concept | Roman Zarkhin — created the first MCP server for Revit (15 tools) | romanzarkhin/revit-mcp |
| Expansion to 80+ tools | mcp-servers-for-revit community — lisiting01, jmcouffin, huyan1458, bobbyg603, chuongmep and others expanded the project across three repos | revit-mcp, revit-mcp-plugin, revit-mcp-commandset |
| Consolidated repo | sparx-fire (Bobby Galli) — merged the three repos into a single solution | mcp-servers-for-revit/mcp-servers-for-revit |
| Current maintainer | LuDattilo — language-independent operation, embedded Claude chat panel, PowerShell installer | LuDattilo/revit-mcp-server |
License
This project is released under the MIT License — see LICENSE for the full text.
What MIT allows
| Allowed | Condition | |
|---|---|---|
| Commercial use | Yes | Include copyright notice |
| Modification | Yes | Include copyright notice |
| Distribution | Yes | Include copyright notice |
| Private use | Yes | — |
| Sublicensing | Yes | Include copyright notice |
Disclaimer of Liability
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND. The authors and contributors are not liable for any damages, data loss, model corruption, or unintended modifications to Revit projects arising from the use of this software. Use at your own risk.
Important:
- This software executes commands on live Revit models. Always work on copies or ensure you have backups before using AI-driven automation.
- The AI (Claude or other MCP clients) may misinterpret instructions and execute unintended operations. Review AI-generated actions before confirming batch operations on production models.
- This project is not affiliated with, endorsed by, or supported by Autodesk, Inc. "Autodesk" and "Revit" are registered trademarks of Autodesk, Inc.
Установка Revit
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/LuDattilo/revit-mcp-serverFAQ
Revit MCP бесплатный?
Да, Revit MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для Revit?
Нет, Revit работает без API-ключей и переменных окружения.
Revit — hosted или self-hosted?
Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.
Как установить Revit в Claude Desktop, Claude Code или Cursor?
Открой Revit на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
Fetch
Web content fetching and conversion for efficient LLM usage.
AWS KB Retrieval
Retrieval from AWS Knowledge Base using Bedrock Agent Runtime.
автор: modelcontextprotocolSpring AI MCP Server
Provides auto-configuration for setting up an MCP server in Spring Boot applications.
llm-analysis-assistant
A very streamlined mcp client that supports calling and monitoring stdio/sse/streamableHttp, and can also view request responses through the /logs page. It also
автор: xuzexin-hzCompare Revit with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории ai
