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
İlgili Sunucular
Kone.vc
sponsorMonetize your AI agent with contextual product recommendations
Claude Auto-Approve MCP
Adds auto-approve functionality for MCP requests to the Claude Desktop application.
Meta Mind
An advanced server for intelligent task management, workflow orchestration, and automatic archiving.
Business Central MCP
An MCP server for interacting with Microsoft Business Central, built with FastMCP and FastAPI.
DMARKOFF
The DMARKOFF MCP server gives your AI agents direct access to live DMARC monitoring data. Domain health, authentication results, policy status, security alerts. All available in your AI environment, without switching tools or opening a dashboard.
Make
Turn your Make scenarios into callable tools for AI assistants.
LynxPrompt MCP
Browse, search, and manage AI configuration blueprints and prompt hierarchies via LynxPrompt
MS-365 MCP Server
A containerized MCP server for Microsoft 365, featuring OAuth authentication and OpenTelemetry instrumentation for monitoring.
Todoist
Manage tasks and projects on Todoist using natural language.
MCP Orchestrator
A universal interface to manage and interact with all your MCP servers from a single point, using external configuration files for mappings and credentials.
Propbar
UK property data: crime stats, schools, demographics, valuations, comparables, Ofsted ratings