Autodesk Revit MCP Server
Autodesk Revit MCP Server
Autodesk Revit MCP Server
Model Context Protocol server for Autodesk Revit
Overview
Production-ready MCP server enabling AI agents to control Autodesk Revit through natural language. Integrates with Claude Desktop, Microsoft Copilot, and custom MCP clients.
Key Features:
- 100+ Revit API tools (geometry, views, sheets, families, MEP, structures)
- Localhost HTTP bridge with sub-second response time
- Thread-safe ExternalEvent architecture
- Advanced reflection API for unlimited Revit access
- Production-ready with comprehensive tool coverage
Quick Start
Prerequisites
- Windows 10/11
- Autodesk Revit 2024-2026
- Python 3.11+
- .NET Framework 4.8
Installation
# Clone repository
git clone https://github.com/Sam-AEC/Autodesk-Revit-MCP-Server.git
cd Autodesk-Revit-MCP-Server
# Build Revit add-in
.\scripts\build-addin.ps1 -RevitVersion 2024
# Install Python package
pip install -e packages/mcp-server-revit
Configure Claude Desktop
Edit %APPDATA%\Claude\claude_desktop_config.json:
{
"mcpServers": {
"revit": {
"command": "python",
"args": ["-m", "revit_mcp_server.mcp_server"],
"env": {
"MCP_REVIT_BRIDGE_URL": "http://127.0.0.1:3000",
"MCP_REVIT_MODE": "bridge"
}
}
}
}
Configure VS Code / GitHub Copilot
This repository includes a workspace MCP config at .vscode/mcp.json. After installing the Python package and starting Revit with the bridge add-in loaded, open this repository in VS Code and run MCP: List Servers or use the MCP Servers view.
For marketplace and registry publication details, see MCP Marketplaces and Client Distribution.
Verify Installation
Start Revit, then:
curl http://localhost:3000/health
Expected response:
{
"status": "healthy",
"revit_version": "2024"
}
Architecture
┌─────────────────────────────────┐
│ AI Client (Claude/Copilot) │
└───────────────┬─────────────────┘
│ MCP Protocol
┌───────────────▼─────────────────┐
│ MCP Server (Python) │
│ - Tool Registry │
│ - Security/Audit │
└───────────────┬─────────────────┘
│ HTTP :3000
┌───────────────▼─────────────────┐
│ Revit Bridge Add-in (C#) │
│ - HTTP Server │
│ - ExternalEvent Handler │
└───────────────┬─────────────────┘
│ Revit API
┌───────────────▼─────────────────┐
│ Autodesk Revit 2024-2026 │
└─────────────────────────────────┘
Threading Model: HTTP requests are queued and executed on Revit's main thread via ExternalEvent for thread safety.
Bridge Status: The bridge runs as a localhost HTTP server on port 3000, providing health checks and tool execution endpoints.
Available Tools
Document Management
revit.create_new_document- Create blank projectrevit.open_document- Open RVT/RFA filerevit.save_document- Save active documentrevit.close_document- Close documentrevit.get_document_info- Get project metadata
Levels & Grids
revit.create_level- Create level at elevationrevit.list_levels- List all levelsrevit.create_grid- Create grid line
Model Elements
revit.create_wall- Create wall from curverevit.create_floor- Create floor from profilerevit.create_roof- Create roof from profilerevit.create_column- Create structural columnrevit.create_beam- Create structural beamrevit.create_foundation- Create foundation elementrevit.create_room- Create room boundary
MEP Systems
revit.create_duct- Create HVAC ductrevit.create_pipe- Create plumbing piperevit.create_cable_tray- Create cable trayrevit.create_conduit- Create electrical conduitrevit.get_mep_systems- List MEP systems
Families & Components
revit.place_family_instance- Place family instancerevit.place_door- Place door in wallrevit.place_window- Place window in wallrevit.list_families- List loaded familiesrevit.edit_family- Edit family document
Element Operations
revit.delete_element- Delete elementrevit.copy_element- Copy element with translationrevit.move_element- Move element by vectorrevit.rotate_element- Rotate element around axisrevit.mirror_element- Mirror element across planerevit.pin_element- Pin element in placerevit.unpin_element- Unpin element
Parameters
revit.get_element_parameters- Read element parametersrevit.set_parameter_value- Write parameter valuerevit.get_parameter_value- Read single parameterrevit.batch_set_parameters- Batch update parametersrevit.get_type_parameters- Get type parametersrevit.set_type_parameter- Set type parameter
Views
revit.create_3d_view- Create isometric 3D viewrevit.create_section_view- Create section viewrevit.create_floor_plan_view- Create floor planrevit.duplicate_view- Duplicate viewrevit.apply_view_template- Apply view templaterevit.get_view_templates- List view templatesrevit.list_views- List all views
Sheets & Documentation
revit.create_sheet- Create sheet with titleblockrevit.place_viewport_on_sheet- Place viewport on sheetrevit.list_sheets- List all sheetsrevit.delete_sheet- Delete sheetrevit.duplicate_sheet- Duplicate sheetrevit.get_sheet_info- Get sheet informationrevit.list_titleblocks- List titleblock typesrevit.populate_titleblock- Fill titleblock parametersrevit.renumber_sheets- Renumber sheetsrevit.batch_create_sheets_from_csv- Create sheets from CSV
Annotation
revit.create_tag- Create element tagrevit.create_dimension- Create dimensionrevit.create_text_note- Create text annotationrevit.create_text_type- Create text typerevit.tag_all_in_view- Tag all elements in viewrevit.create_revision_cloud- Create revision cloud
Selection & Query
revit.get_selection- Get current selectionrevit.set_selection- Set element selectionrevit.list_elements_by_category- Query by categoryrevit.get_element_type- Get element typerevit.get_element_bounding_box- Get element boundsrevit.get_categories- List all categories
Groups & Links
revit.create_group- Create model grouprevit.ungroup- Ungroup elementsrevit.convert_to_group- Convert to grouprevit.get_group_members- Get group membersrevit.get_link_instances- List link instancesrevit.get_rvt_links- List Revit links
Schedules & Data
revit.create_schedule- Create schedule viewrevit.get_schedule_data- Extract schedule datarevit.export_schedules- Export schedules to CSVrevit.calculate_material_quantities- Calculate quantities
Export Operations
revit.export_pdf_by_sheet_set- Export to PDFrevit.export_dwg_by_view- Export to DWGrevit.export_ifc_with_settings- Export to IFCrevit.export_navisworks- Export to Navisworksrevit.export_image- Export view as imagerevit.render_3d_view- Render 3D view
Project Information
revit.get_phases- List project phasesrevit.get_phase_filters- List phase filtersrevit.get_design_options- List design optionsrevit.get_worksets- List worksetsrevit.get_warnings- Get model warningsrevit.get_project_location- Get project location
Worksharing
revit.sync_to_central- Synchronize with centralrevit.relinquish_all- Relinquish all elements
Materials & Rendering
revit.create_material- Create materialrevit.set_element_material- Assign materialrevit.get_render_settings- Get render settings
Analysis & Validation
revit.check_clashes- Run clash detectionrevit.get_room_boundary- Get room boundary
Advanced Features
revit.invoke_method- Universal Revit API method invocationrevit.reflect_get- Get property via reflectionrevit.reflect_set- Set property via reflection
Project Parameters
revit.list_shared_parameters- List shared parametersrevit.create_shared_parameter- Create shared parameterrevit.list_project_parameters- List project parametersrevit.create_project_parameter- Create project parameter
Revisions
revit.get_revision_sequences- Get revision sequences
Total: 100+ tools • Full API Reference: docs/tools.md
Development Status
This server is actively maintained and continuously improved. For the latest updates and known limitations, see:
- GitHub Issues - Bug reports and feature requests
- Changelog - Version history and updates
- Discussions - Community support
Security
Default: Localhost-only (127.0.0.1:3000), no authentication required.
Enterprise: Optional HTTPS, OAuth2 (Entra ID), audit logging, and rate limiting.
See docs/security.md for details.
Project Structure
Autodesk-Revit-MCP-Server/
├── packages/
│ ├── revit-bridge-addin/ # C# Revit Add-in
│ │ └── src/Bridge/
│ │ ├── App.cs # IExternalApplication
│ │ ├── BridgeServer.cs # HTTP server
│ │ └── BridgeCommandFactory.cs
│ └── mcp-server-revit/ # Python MCP Server
│ ├── src/revit_mcp_server/
│ │ ├── mcp_server.py # MCP protocol
│ │ ├── bridge/client.py # HTTP client
│ │ └── tools/ # Tool handlers
│ └── tests/
├── scripts/
│ ├── build-addin.ps1 # Build C# DLL
│ └── install.ps1 # Deploy to Revit
├── docs/
│ ├── tools.md # API reference
│ ├── architecture.md # System design
│ └── security.md # Security model
└── README.md
Documentation
- Installation Guide
- API Reference
- Architecture
- Security Model
- MCP Marketplaces and Client Distribution
- Claude Desktop Setup
- Contributing
License
MIT License - Copyright (c) 2025
Links
Related Servers
Kone.vc
sponsorMonetize your AI agent with contextual product recommendations
UTM Mind MCP
Automate UTM link creation, validation, and governance with natural language commands.
wlater-McpServer
Unofficial Google Keep MCP server - (Personal Accounts) AI powered access
Whoop
Access the Whoop API to query cycles, recovery, strain, and workout data.
Mila MCP
Create, read, update docs, spreadsheets, and presentations via AI — 23 MCP tools for a full office suite with 74K+ users.
AI Survey via MCP
Create AI-moderated interviews and surveys via MCP and share survey links with participants instantly.
AnkiConnect
Connect Claude with AnkiConnect to create and review flashcards using natural language.
ActivityWatch MCP Server (Swift)
Provides structured access to ActivityWatch time tracking data for AI assistants.
Feishu/Lark OpenAPI MCP
Connect AI agents to Feishu/Lark APIs for document processing, conversation management, and calendar scheduling.
OSP Marketing Tools
A suite of tools for technical marketing content creation, optimization, and product positioning based on Open Strategy Partners' methodologies.
NexNex
Organizational context & memory for AI agents. Connect 100+ tools into one knowledge graph via 47 MCP tools.