RevitMCP
model context protocol for Autodesk Revit
Ask AI about RevitMCP
Powered by Claude · Grounded in docs
I know everything about RevitMCP. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Reviews
Documentation
RevitMCP
RevitMCP is a pyRevit extension plus a Python server that lets AI clients work against a live Revit session.
It supports two ways to use it:
- Web UI at
http://127.0.0.1:8000 - Claude Desktop local MCP over stdio
Repository layout note: this repository root is the pyRevit extension root. If you install from source manually, the checkout directory itself should be named RevitMCP.extension.
Tools
RevitMCP exposes 29 tools:
| Tool | Description |
|---|---|
get_revit_project_info | Get active project metadata, document path, and Revit version details |
get_active_view_info | Read the current view's name, type, scale, and related metadata |
get_active_view_elements | Capture a bounded snapshot of elements visible in the active view |
export_active_view_image | Export the active Revit view to a local image artifact for model vision inspection |
activate_view | Switch the active Revit view by view ID or view name |
duplicate_view | Duplicate a view, optionally with detailing/as dependent, template assignment, and activation |
get_active_selection | Read the current Revit selection as a reusable result set |
get_revit_diagnostics | Return live pyRevit route, document, active view, selection, and write-context diagnostics |
list_family_types | List loaded family types with category, family, type, and symbol IDs |
get_revit_schema_context | Load canonical Revit schema context including levels, categories, families, types, and common parameters |
resolve_revit_targets | Resolve user terms to exact Revit category, level, family, type, and parameter names |
get_revit_memory_context | Load persistent local user/project notes for recurring Revit conventions and workflow hints |
save_revit_memory_note | Save a persistent local user/project note for future chats and tool runs |
analyze_model_statistics | Summarize model composition including category, family/type, view, sheet, level, and room counts |
get_elements_by_category | Retrieve all elements for a category and store the result for follow-on actions |
select_elements_by_id | Select elements by explicit IDs or a stored result handle |
select_stored_elements | Select a previously stored search or filter result inside Revit |
list_stored_elements | List stored element result sets and their counts currently available on the server |
filter_elements | Find elements by category, level, and parameter-based conditions |
filter_stored_elements_by_parameter | Refine a stored result set with batched server-side parameter filtering using one or many target values |
get_element_properties | Read parameter values for specific elements or an existing result handle |
update_element_parameters | Update one or many element parameters with typed value handling |
override_element_graphics | Apply or reset active-view graphic overrides for explicit IDs or stored result sets |
delete_elements | Delete elements with dry-run, confirmation, max-count, unpin, and batch/individual safeguards |
place_view_on_sheet | Create a new sheet, auto-number it, and place a matched view on it |
list_views | List views that can be placed on sheets, including type and placement status |
analyze_view_naming_patterns | Cluster view names by type and flag likely naming outliers |
suggest_view_name_corrections | Generate rename suggestions from a prior view naming analysis |
plan_and_execute_workflow | Execute a multi-step Revit workflow from a structured tool plan |
Requirements
- Autodesk Revit
- pyRevit
- Python 3.7+ available as
pythonif you want to run the external server directly or through Claude Desktop - A Revit project open while using RevitMCP
Surface Modes
RevitMCP has two server surfaces:
web: browser UI athttp://127.0.0.1:8000mcp: stdio server for Claude Desktop
One server.py process runs one surface at a time.
To switch manually:
python lib\RevitMCP_ExternalServer\server.py --surface web
python lib\RevitMCP_ExternalServer\server.py --surface mcp
If you use the pyRevit launcher, it reads the preferred surface from:
%USERPROFILE%\Documents\RevitMCP\user_data\revitmcp_settings.json
{
"preferences": {
"server_surface": "web"
}
}
If you want both the Web UI and Claude Desktop at the same time, they need to run as separate processes.
Install RevitMCP
- Install pyRevit: pyRevit installer
- Choose one of these pyRevit extension roots:
%APPDATA%\pyRevit\Extensions%PROGRAMDATA%\pyRevit\Extensions
- Clone this repository directly into a folder named
RevitMCP.extensionunder that root:
git clone https://github.com/oakplank/RevitMCP.git "%APPDATA%\pyRevit\Extensions\RevitMCP.extension"
- If you download a ZIP instead, extract the repository contents into a folder named
RevitMCP.extensionunder the same extension root. - Reload pyRevit or restart Revit.
The folder name matters: pyRevit discovers extensions by folders that end with .extension.
Enable Revit Routes
- Open Revit.
- Go to
pyRevit -> Settings. - Enable the Routes server.
- Restart Revit.
- Allow firewall access if Windows asks.
The default Revit Routes port is usually 48884.
Quick Start: Web UI
- Open a Revit project.
- In Revit, click
RevitMCP -> Server -> Launch RevitMCP. - Open
http://127.0.0.1:8000. - Add any required model or API settings in the web UI.
- Try:
Get Revit project info
Quick Start: Claude Desktop
- Install Claude Desktop:
https://claude.ai/download - In Claude Desktop, go to
Settings -> Developer -> Local MCP Servers -> Edit Config. - Add
revitmcpto your Claude config.
If your Claude config already exists, keep your current preferences and other MCP servers. Only add revitmcp under mcpServers.
If you copy the full example below, update the preferences values to match your own Claude Desktop setup.
{
"mcpServers": {
"revitmcp": {
"command": "python",
"args": [
"C:\\Program Files\\pyRevit-Master\\extensions\\RevitMCP.extension\\lib\\RevitMCP_ExternalServer\\server.py",
"--surface",
"mcp"
]
}
},
"preferences": {
"chromeExtensionEnabled": true,
"coworkScheduledTasksEnabled": true,
"ccdScheduledTasksEnabled": true,
"sidebarMode": "chat",
"coworkWebSearchEnabled": true
}
}
- Replace the example
server.pypath with the actual path on your machine. - If
pythondoes not work, replace it with the full path topython.exe. - Save the file and fully restart Claude Desktop.
- Re-open
Settings -> Developer -> Local MCP Serversand confirmrevitmcpshowsrunning. - Try:
Get Revit project info
Expected Claude Desktop screen after revitmcp is configured:

Troubleshooting
revitmcp does not show in Claude Desktop
- Check that your Claude config is valid JSON.
- Make sure the
server.pypath is absolute and exists. - If
pythonis not found, use the full path topython.exe. - Fully quit Claude Desktop from the system tray and reopen it.
- Check
%APPDATA%\Claude\logs.
Claude Desktop can see revitmcp but tools do not work
- Make sure Revit is open with a project loaded.
- Make sure pyRevit Routes is enabled.
- Restart Revit after enabling Routes.
- Open
View Logsforrevitmcpin Claude Desktop.
Web UI or server startup issues
- Check
%USERPROFILE%\Documents\RevitMCP\server_logs - Startup log:
server_startup_error.log - App log:
server_app.log
