model context protocol for Autodesk Revit
Config is the same across clients — only the file and path differ.
{
"mcpServers": {
"revitmcp": {
"command": "<see-readme>",
"args": []
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
RevitMCP is a pyRevit extension plus a Python server that lets AI clients work against a live Revit session.
No automated test available for this server. Check the GitHub README for setup instructions.
Five weighted categories — click any category to see the underlying evidence.
No known CVEs.
No package registry to scan.
Click any tool to inspect its schema.
Be the first to review
Have you used this server?
Share your experience — it helps other developers decide.
Sign in to write a review.
Others in design
MCP server for accessing Figma plugin console logs and screenshots via Cloudflare Workers or local mode
Official Miro MCP server - Supports context to code and creating diagrams, docs, and data tables.
AI image generation and editing with prompt optimization and quality presets. Powered by Nano Banana
Coinbase Design System - MCP Server
MCP Security Weekly
Get CVE alerts and security updates for RevitMCP and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
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:
http://127.0.0.1:8000Repository 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.
RevitMCP exposes 44 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 |
export_element_snapshot | Export a focused snapshot from explicit IDs or the active selection by activating a target view, temporarily isolating elements, tightening a section box when exporting 3D views, exporting, and restoring the view |
isolate_elements_in_view | Temporarily isolate explicit elements or the active selection in a view and optionally focus the camera for inspection |
clear_temporary_isolate | Clear temporary hide/isolate in the active or target view |
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 |
get_element_relationships | Read host, parent, child, dependent, and adaptive point relationships for model elements |
get_related_element_properties | Read selected parameters from elements and their host/super-component chains |
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 place |