1. Conduid
  2. AI
  3. RevitMCP
MCP server · AI

RevitMCP

Model Context Protocol server for Autodesk Revit - enables AI assistants to interact with Revit through natural language

Unclaimed ai
39Low

Scored 12 days ago · breakdown

About RevitMCP

RevitMCP is an MCP server published by oakplank in the AI category: model Context Protocol server for Autodesk Revit - enables AI assistants to interact with Revit through natural language.

The repository has 64 stars and 14 forks, with the last commit 23 days ago. Recent commit activity is the strongest signal that reported issues will get attention.

Install

From source
git clone https://github.com/oakplank/RevitMCP

This server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.

Tools (46)

activate_viewSwitch the active Revit view by view ID or view name

Parameters not published.

analyze_model_statisticsSummarize model composition including category, family/type, view, sheet, level, and room counts

Parameters not published.

analyze_view_naming_patternsCluster view names by type and flag likely naming outliers

Parameters not published.

audit_schedule_capabilitiesRun a rollback-only probe for schedule creation, fields, filters, sorting, settings, and row reads

Parameters not published.

clear_temporary_isolateClear temporary hide/isolate in the active or target view

Parameters not published.

compare_schedulesCompare schedule rows across overall/release schedules by key fields and quantity fields

Parameters not published.

create_scheduleCreate a schedule or material takeoff with fields, calculated percentage fields, filters, sorting, and settings

Parameters not published.

delete_elementsDelete elements with dry-run, confirmation, max-count, unpin, and batch/individual safeguards

Parameters not published.

delete_scheduleDelete a schedule with dry-run and confirmation safeguards

Parameters not published.

duplicate_scheduleDuplicate a schedule and optionally rename it

Parameters not published.

Show all 46 tools
duplicate_viewDuplicate a view, optionally with detailing/as dependent, template assignment, and activation

Parameters not published.

export_active_view_imageExport the active Revit view to a local image artifact for model vision inspection

Parameters not published.

export_element_snapshotExport 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

Parameters not published.

filter_elementsFind elements by category, level, and parameter-based conditions

Parameters not published.

filter_stored_elements_by_parameterRefine a stored result set with batched server-side parameter filtering using one or many target values

Parameters not published.

get_active_selectionRead the current Revit selection as a reusable result set

Parameters not published.

get_active_view_elementsCapture a bounded snapshot of elements visible in the active view

Parameters not published.

get_active_view_infoRead the current view's name, type, scale, and related metadata

Parameters not published.

get_element_locationsRead model-space element locations using location points, curve midpoints, bounding-box centers, and host fallbacks

Parameters not published.

get_element_propertiesRead parameter values for specific elements or an existing result handle

Parameters not published.

get_element_relationshipsRead host, parent, child, dependent, and adaptive point relationships for model elements

Parameters not published.

get_elements_by_categoryRetrieve all elements for a category and store the result for follow-on actions

Parameters not published.

get_related_element_propertiesRead selected parameters from elements and their host/super-component chains

Parameters not published.

get_revit_diagnosticsReturn live pyRevit route, document, active view, selection, and write-context diagnostics

Parameters not published.

get_revit_memory_contextLoad persistent local user/project notes for recurring Revit conventions and workflow hints

Parameters not published.

get_revit_project_infoGet active project metadata, document path, and Revit version details

Parameters not published.

get_revit_schema_contextLoad canonical Revit schema context including levels, categories, families, types, and common parameters

Parameters not published.

get_schedule_infoRead a schedule definition including fields, hidden state, filters, sorting/grouping, and settings

Parameters not published.

get_schedule_rowsRead visible schedule table rows and column metadata

Parameters not published.

isolate_elements_in_viewTemporarily isolate explicit elements or the active selection in a view and optionally focus the camera for inspection

Parameters not published.

list_family_typesList loaded family types with category, family, type, and symbol IDs

Parameters not published.

list_schedule_available_fieldsList fields/parameters that can be added to a schedule, including stable available field indexes

Parameters not published.

list_schedulesList Revit schedules with IDs, categories, field counts, filters, sorting, and sheet placement status

Parameters not published.

list_stored_elementsList stored element result sets and their counts currently available on the server

Parameters not published.

list_viewsList views that can be placed on sheets, including type and placement status

Parameters not published.

override_element_graphicsApply or reset active-view graphic overrides for explicit IDs or stored result sets

Parameters not published.

place_view_on_sheetCreate a new sheet, auto-number it, and place a matched view on it

Parameters not published.

plan_and_execute_workflowExecute a multi-step Revit workflow from a structured tool plan

Parameters not published.

resolve_revit_targetsResolve user terms to exact Revit category, level, family, type, and parameter names

Parameters not published.

save_revit_memory_noteSave a persistent local user/project note for future chats and tool runs

Parameters not published.

select_elements_by_idSelect elements by explicit IDs or a stored result handle

Parameters not published.

select_stored_elementsSelect a previously stored search or filter result inside Revit

Parameters not published.

suggest_view_name_correctionsGenerate rename suggestions from a prior view naming analysis

Parameters not published.

sync_element_parameter_valuesCopy first populated source parameter values into a target parameter with missing-only or overwrite-all policy and dry-run preview

Parameters not published.

update_element_parametersUpdate one or many element parameters with typed value handling

Parameters not published.

update_scheduleUpdate schedule fields, calculated percentage fields, filters, sorting/grouping, settings, or name

Parameters not published.

Ask AI

✦

Ask AI about RevitMCP

Powered by Claude · Grounded in docs

I know everything about RevitMCP. Ask me about installation, configuration, usage, or troubleshooting.

Security checks

  • ✓README presentThe repository ships documentation.

5 checks have not been run yet.

README

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 python if 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 at http://127.0.0.1:8000
  • mcp: 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

  1. Install pyRevit: pyRevit installer
  2. Choose one of these pyRevit extension roots:
    • %APPDATA%\pyRevit\Extensions
    • %PROGRAMDATA%\pyRevit\Extensions
  3. Clone this repository directly into a folder named RevitMCP.extension under that root:
git clone https://github.com/oakplank/RevitMCP.git "%APPDATA%\pyRevit\Extensions\RevitMCP.extension"
  1. If you download a ZIP instead, extract the repository contents into a folder named RevitMCP.extension under the same extension root.
  2. Reload pyRevit or restart Revit.

The folder name matters: pyRevit discovers extensions by folders that end with .extension.

Enable Revit Routes

  1. Open Revit.
  2. Go to pyRevit -> Settings.
  3. Enable the Routes server.
  4. Restart Revit.
  5. Allow firewall access if Windows asks.

The default Revit Routes port is usually 48884.

Quick Start: Web UI

  1. Open a Revit project.
  2. In Revit, click RevitMCP -> Server -> Launch RevitMCP.
  3. Open http://127.0.0.1:8000.
  4. Add any required model or API settings in the web UI.
  5. Try: Get Revit project info

Quick Start: Claude Desktop

  1. Install Claude Desktop: https://claude.ai/download
  2. In Claude Desktop, go to Settings -> Developer -> Local MCP Servers -> Edit Config.
  3. Add revitmcp to 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
  }
}
  1. Replace the example server.py path with the actual path on your machine.
  2. If python does not work, replace it with the full path to python.exe.
  3. Save the file and fully restart Claude Desktop.
  4. Re-open Settings -> Developer -> Local MCP Servers and confirm revitmcp shows running.
  5. Try: Get Revit project info

Expected Claude Desktop screen after revitmcp is configured:

Claude Desktop Local MCP settings showing Developer selected and the revitmcp server running

Troubleshooting

revitmcp does not show in Claude Desktop

  • Check that your Claude config is valid JSON.
  • Make sure the server.py path is absolute and exists.
  • If python is not found, use the full path to python.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 Logs for revitmcp in 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

README copy captured when this server was indexed; it may lag the repository. The original is authoritative.

Questions

About RevitMCP

How do I install RevitMCP?

No package has been published for this server, so install it from source: clone the repository and follow its README.

Is RevitMCP safe to use with an AI agent?

Its trust score is 39 out of 100 (low). It passes 1 of the 1 static security checks run so far. It has no ConduID identity yet, so agent calls to it are not receipted.

Is RevitMCP still maintained?

Yes — the last commit was 23 days ago. The repository has 64 stars and 14 forks.