Model MCP
Revit tools over MCP stdio. Actions are enabled by default; REVIT_MCP_READ_ONLY=1 disables them.
Install
Add this to your client's MCP configuration (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json; VS Code and others use the same "mcpServers" shape).
revit-model-mcpclaude mcp add model-mcp -e 'REVIT_MCP_HOST=local' -e 'REVIT_MCP_REDACT_PATHS=0' -e 'REVIT_MCP_READ_ONLY=0' -e 'REVIT_MCP_TOOLSETS=all' -e 'REVIT_MCP_TOKEN=<your revit_mcp_token>' -- uvx revit-model-mcp==1.0.0
{
"mcpServers": {
"model-mcp": {
"command": "uvx",
"args": [
"revit-model-mcp==1.0.0"
],
"env": {
"REVIT_MCP_HOST": "local",
"REVIT_MCP_REDACT_PATHS": "0",
"REVIT_MCP_READ_ONLY": "0",
"REVIT_MCP_TOOLSETS": "all",
"REVIT_MCP_TOKEN": "<your revit_mcp_token>"
}
}
}
}
Environment variables
REVIT_MCP_HOSTrequired Revit host: local PowerShell, ssh:<alias>, or an http://host:port or https://host:port endpoint.REVIT_MCP_REDACT_PATHSSet to 1 to replace document and nested model paths with file names. Disabled by default.REVIT_MCP_READ_ONLYSet to 1 to disable actions that modify or delete model elements without hiding the action tools. Actions run by default.REVIT_MCP_TOOLSETSComma-separated toolsets whose tools are listed: all, core, read, actions, documents, views-sheets, family, links, cad-mep, export, batch, code. core is always included. Limits visibility only. Default all.REVIT_MCP_TOKENsecret HTTP bearer token from the workstation settings.json. Required only for http:// or https:// hosts; leave unset for local and SSH.
Documentation
From the project's README on GitHub, refreshed weekly. Links open on GitHub.
Contents
Model MCP for Autodesk® Revit® connects Claude Desktop, Claude Code or any MCP client that starts a stdio server to a live Revit project. Ask questions about the model, check it, and change it in plain language. Every change is one named undo entry in Revit, and read-only mode is one switch away.
Claude Desktop runs on a Mac and connects to Revit 2026 on a Windows workstation. Actions are enabled in this recording.
What happens in the recording
- "What model is open in Revit right now?" The client reads the document, levels and room counts.
- "Which level has the most room area? Find the largest room and show it to me." The client aggregates room areas by level and queries the largest room.
revit_showopens a matching plan and selects the room. - "Isolate that room, place a Chair-Breuer at its centre and move it 800 mm along X."
revit_isolate, thenrevit_place_familyat the room'sroomCenterMm, thenrevit_move. Each mutation is its own Revit transaction. - Cleanup afterwards is one more sentence: reset the view, delete the chair.
Quick start
You need two parts: the add-in inside Revit on Windows, and the server next to your MCP client. Details and requirements are in requirements and installation. Tested with Claude Desktop and Claude Code; other clients are listed on the tested clients page.
1. Install the add-in.
On the Windows machine with Revit, download RevitModelMcp-<version>-SingleUser.msi (current user) or RevitModelMcp-<version>-MultiUser.msi (all users) from the latest release.
Install only one of them.
Alternatively, install with WinGet:
winget install Sharafutdinov.RevitModelMcp
Keep Revit closed during installation, then start Revit and open a model. Revit asks whether to load the add-in, because release builds are not code-signed yet.
2. Add the server to your MCP client. In Revit, Add-ins > MCP > Connect AI app registers the bundled server in Claude Desktop, Cursor, VS Code or Codex; Claude Code gets a copy-paste command. The MSI includes the server executable, so this path needs no separate Python or uv installation.
If you prefer the PyPI server: Install uv, then register the server. For Claude Code on the same Windows machine:
claude mcp add revit-model-mcp -e REVIT_MCP_HOST=local -e REVIT_MCP_REDACT_PATHS=1 -- uvx revit-model-mcp
For Claude Desktop, open the revit-model-mcp-<version>.mcpb bundle from the latest release, or add this to its MCP configuration:
{
"mcpServers": {
"revit-model-mcp": {
"command": "uvx",
"args": ["revit-model-mcp"],
"env": {
"REVIT_MCP_HOST": "local",
"REVIT_MCP_REDACT_PATHS": "1"
}
}
}
}
On macOS or Linux, use a remote workstation instead of REVIT_MCP_HOST=local.
The Claude Desktop bundle page explains its settings form.
3. Ask a first question.
Restart the client, keep a model open in Revit and ask: "Call revit_ping, then tell me which model is open."
success: true means both parts are connected.
From a clone, uv run --directory server revit-model-mcp runs the same server without installing the package.
For updates, the release add-in checks GitHub daily and notifies by default; the PyPI server checks PyPI, or install the newer MSI (updates). Report bugs in Issues, ask questions in Discussions, and report vulnerabilities through SECURITY.md.
Why Model MCP
- Safe by design. Each change is one named undo entry in Revit, and one setting makes the whole server read-only.
- Confirmation first. Saving, syncing and other irreversible steps wait for your explicit approval.
- Installs like normal software. MSI installers, with deployment guides for SCCM, Intune and Group Policy.
- Works from a Mac. MCP stdio runs through SSH to the Windows workstation, so no port opens.
Try these prompts
Paste any of these into your MCP client with a model open in Revit. The last column names the tools each prompt uses.
| Goal | Prompt | Tools |
|---|---|---|
| Review | "Give me an overview of the open model: levels, element counts by category, links and the biggest problems." | revit_document_info, revit_list_catalog, revit_aggregate_elements, revit_list_warnings |
| Health check | "Run a health check before we issue this model and list what fails." | revit_model_health, revit_parameter_fill_check |
| Find and show | "Find the doors on this floor and show me where they are in 3D." | revit_query_elements, revit_capture_elements |
| Highlight | "Colour those doors red on the L2 plan and fade everything else." | revit_activate_view, revit_override_graphics |
| Change, then undo | "Move the selected elements 500 mm along X. Preview it first, then do it, then undo it." | revit_move with dry_run, revit_undo_last |
| Batch over a folder | "Collect read-only snapshots of every model in this folder and tell me which ones have parameters left empty." | revit_batch_start, revit_batch_status, revit_build_report |
| ISO 19650 register | "Check this model against our EIR and write an issue register to Excel with element snapshots." | revit_issue_register, with the ISO 19650 skill |
| Export | "Export the L2 plan as PDF, and a Navisworks file of the whole model." | revit_export, revit_export_nwc |
| Run from a Mac | "Call revit_ping and tell me which model is open on the workstation." | revit_ping, over SSH (see remote workstations) |
What it can do
The tables list every tool by name; the tool reference has arguments, units and limits.
"Show the building going up in construction order."
"Bring the building together piece by piece."
"Show supply and return air moving through the building."
"Colour the model by warnings."
Review a model
Read the model, find problems and show them in Revit.
Reads change nothing in the document.
Exported pictures are the PNG files saved by revit_export_view; the image below is one of them, untouched.
Tools for reviewing a model
| Task | Tools |
|---|---|
| Check the connection and open documents | revit_ping, revit_ui_state, revit_documents, revit_document_info, revit_list_instances |
| Find and count elements | revit_list_catalog, revit_aggregate_elements, revit_query_elements, revit_element_details, revit_list_relations |
| Read views and schedules | revit_list_views, revit_view_info, revit_view_summary, revit_view_elements, revit_schedule_data |
| Read warnings | revit_list_warnings, revit_view_warnings |
| Check model quality | revit_model_health, revit_parameter_fill_check, revit_family_audit |
| Get a picture | revit_export_view, revit_capture_elements |
| Point at things in Revit | revit_activate_view, revit_select, revit_show, revit_isolate, revit_override_graphics |
Coordinate links and datums
Compare and align grids and levels with linked models, inspect links and shared coordinates, and prepare CAD and Navisworks hand-overs.
Tools for links and datums
| Task | Tools |
|---|---|
| Inspect links and coordinates | revit_links_status, revit_shared_coordinates |
| Compare and align datums | revit_compare_link_datums, revit_align_link_datums |
| Work with CAD links | revit_link_cad, revit_walls_from_cad |
| Remove links | revit_remove_links |
| Navisworks export | revit_nwc_settings_check, revit_export_nwc |
Change the model safely
Edit elements, families, views and sheets. Each change is one named undo entry, and the riskiest calls wait for your confirmation. See safety.
Tools for changing the model
| Task | Tools |
|---|---|
| Edit elements | revit_move, revit_rotate, revit_copy, revit_mirror, revit_change_type, revit_set_parameter, revit_update_parameters, revit_delete |
| Run many steps as one undo | revit_run_actions |
| Create elements | revit_create_wall, revit_create_mep_run |
| Work with families | revit_load_family, revit_place_family, revit_place_families, revit_edit_families |
| Work with views and sheets | revit_create_view, revit_duplicate_view, revit_apply_view_template, revit_set_view_visibility, revit_create_sheet, revit_place_views_on_sheet |
| Tag elements and create schedules | revit_tag_elements, revit_create_schedule |
| Open, save and close documents | revit_open_document, revit_new_document, revit_activate_document, revit_close_views, revit_close_document, revit_save_document, revit_sync_document |
| Export files | revit_export |
| Run C# in Revit | revit_execute_code |
| Undo | revit_undo_last |
Process many models at once
Run the same checks, edits, exports and saves over a folder of models, or collect read-only snapshots from many models in a persistent run.
Long jobs return a jobId that survives client restarts.
Tools for many models
| Task | Tools |
|---|---|
| Open, change, export and save many models | revit_process_models |
| Collect snapshots without changing models | revit_batch_start, revit_batch_status, revit_batch_cancel, revit_batch_fetch |
| Follow and cancel long jobs | revit_jobs, revit_cancel_job |
Write an issue register with snapshots
Review a model against your requirements and write an Excel register with severity totals, element rows and element snapshots. Snapshots also let you audit models later without Revit running.
Tools for registers and reports
| Task | Tools |
|---|---|
| Take a snapshot of a model | revit_model_snapshot |
| Write an issue register | revit_issue_register |
| Build a report from snapshots | revit_build_report |
Prompts and skills
The prompts and coordinator guide describe read-only model review workflows.
For Claude Code, copy skills/revit-model-coordinator into ~/.claude/skills/.
For Claude Desktop, zip that skill folder and upload it as a skill.
The hand-written ISO 19650 issue register skill reviews a model against EIR/BEP requirements and writes an Excel register with element snapshots.
Install it the same way: copy skills/iso19650-issue-register into ~/.claude/skills/, or zip the folder and upload it in Claude Desktop.
Safety
- Actions are on by default. Set
REVIT_MCP_READ_ONLY=1in the server environment, or create the workstationread-onlyfile, to refuse every action. Action tools stay listed and returnerrorCode: "read_only"instead of running. - One undo per change. A committed action is one named Revit undo entry, shown in Revit's Undo list and in the add-in's "MCP activity" pane.
revit_undo_lastundoes it while it is still Revit's last change. - Confirmation tokens for irreversible actions. Saving, synchronizing, removing links and running C# always need one. Closing with changes, deleting more than 500 elements, overwriting existing export files and in-place saves in batch runs need one too. The first call changes nothing and returns the text to show you; the retry needs your explicit agreement. A token is single use and expires after five minutes.
- Dry runs. Model-changing tools such as
revit_move,revit_delete,revit_run_actions,revit_exportandrevit_process_modelsacceptdry_runto preview the result without committing it. - A readable summary. Every action returns
verificationand a one-sentencesummaryof what changed. - Path redaction.
REVIT_MCP_REDACT_PATHS=1hides directories in response path fields. Names, parameter values and errors stay visible. - Unreachable workstation.
errorCode: "transport_unavailable"withretryable: truemeans Revit or the workstation is unreachable and the call did not run. Retry when the workstation or tunnel is back. See errors and refusals. - HTTP. Direct HTTP callers need the bearer token and are refused while the workstation read-only file is present.
For unattended runs, switch on read-only mode. A confirmation token guards against mistakes and injected instructions, but a client that confirms by itself can send it back. See actions for gates, exceptions and verification failures, security details for authentication and privacy boundaries, and SECURITY.md to report a vulnerability.
Remote workstations
Local Windows clients use REVIT_MCP_HOST=local under the Revit user's account.
Remote clients run the whole server on the workstation over SSH, as the same Windows user that runs Revit.
Install it there once with uv tool install revit-model-mcp, then register ssh as the command:
{
"mcpServers": {
"revit-model-mcp": {
"command": "ssh",
"args": ["revit-pc", "revit-model-mcp", "--redact-paths"]
}
}
}
Replace revit-pc with the workstation's SSH host alias.
MCP stdio flows through the SSH session and the remote server uses the named pipe, so no port opens.
REVIT_MCP_HOST=ssh:<alias> (file channel over SSH) and HTTP through an SSH tunnel remain available; HTTP requires a bearer token except for /health and binds to loopback by default.
See transport setup.
Compatibility
Revit 2022 to 2027 on Windows 10 and 11.
The add-in targets .NET Framework 4.8 for Revit 2022-2024, .NET 8 for 2025 and 2026, and .NET 10 for 2027.
Every year builds, installs and runs live reads and actions.
The MSI bundles a server executable for Windows that needs no separate Python or uv installation.
The PyPI server needs Python 3.11 or newer and runs on Windows, macOS or Linux; uv can start it with uvx revit-model-mcp.
See validation evidence for dates and limits, and known gaps.
Privacy
Model MCP returns requested model data to the selected MCP client.
The bundle enables response path redaction by default.
The project has no telemetry.
The privacy policy covers collection, update checks, the AI client data flow, storage, retention and contact information.
The server checks for a newer stable release once a day; set REVIT_MCP_NO_UPDATE_CHECK=1 to opt out.
For administrators
The deployment guide covers silent MSI installs, SCCM, Intune, Group Policy, offline server installs and proxies. The policy reference lists every setting and its precedence. For security reviews, use the security whitepaper and the questionnaire answers. See also the MCP specifications, the tested clients and what Model MCP deliberately does not do.
Code signing policy
Release builds are not code-signed yet, so Revit asks whether to load the add-in after install and after each update.
Verify downloads with SHA256SUMS.txt and the build provenance attestation; see the code signing policy and download verification.
See automatic updates for update modes and installation.
Contributing and support
Documentation covers setup, tools and transport. Start with CONTRIBUTING.md, ask questions in Discussions, or report bugs and request features through the issue forms. CI runs the C# and Python test suites and builds the supported Revit configurations. If Model MCP saves you time, a :star: on GitHub helps other Revit users find it.
License
MIT, maintained by Dinar Sharafutdinov. See third-party notices for dependency licenses.
Trademarks
Autodesk and Revit are registered trademarks or trademarks of Autodesk, Inc., and/or its subsidiaries and/or affiliates in the USA and/or other countries. Model MCP is an independent project and is not affiliated with or endorsed by Autodesk.
Frequently asked questions
What is Model MCP?
Revit tools over MCP stdio. Actions are enabled by default; REVIT_MCP_READ_ONLY=1 disables them.
How do I install Model MCP?
It runs on your machine. In Claude Code: claude mcp add model-mcp -e 'REVIT_MCP_HOST=local' -e 'REVIT_MCP_REDACT_PATHS=0' -e 'REVIT_MCP_READ_ONLY=0' -e 'REVIT_MCP_TOOLSETS=all' -e 'REVIT_MCP_TOKEN=<your revit_mcp_token>' -- uvx revit-model-mcp==1.0.0. For other clients, paste the JSON configuration from this page into their MCP settings.
Does Model MCP need an API key?
Yes. It expects REVIT_MCP_HOST, REVIT_MCP_TOKEN, which you set in its configuration.
Is Model MCP open source?
Yes. Its code is on GitHub under the MIT license.
Who maintains Model MCP?
It is published by sharafutdinovdi. AI.tn lists it but does not maintain or endorse it.
From the official MCP Registry. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.