Revit Python MCP connects an MCP-compatible assistant, such as Claude Desktop or Claude Code, to Autodesk Revit through Python, FastMCP, and pyRevit Routes. This page covers only mcp-server-for-revit-python. It is an independent project with its own pyRevit extension, server, and tool list.
The chain turns a request into an MCP tool call, forwards it over HTTP to pyRevit Routes on the local workstation, and executes the operation through the Revit API. It can read levels and views, place certain families, visualize parameters, or manage documents according to the functions actually implemented. This third-party open-source project is not an official Autodesk connector and must be assessed from its own sources.
Contents
- What Revit Python MCP actually does
- Connecting Revit and Python with pyRevit Routes
- Available tools and current limits
- Useful capabilities for a BIM firm
- Comparison with Dynamo
- Security, governance, and limits
- Educasium's position
- Sources and next reading
What Revit Python MCP actually does
Key point: Revit Python MCP exposes a selected set of Revit actions to an assistant through Python. The AI client does not communicate directly with Revit. It launches or contacts the FastMCP server, which converts each call into a request to a pyRevit extension loaded in the application.
A Python server and a pyRevit extension
The repository contains two parts that must work together. main.py hosts the MCP server, supports stdio or HTTP transports, and forwards requests. The pyRevit extension registers Routes endpoints that execute inside Revit, where the Autodesk API is available. If Revit, pyRevit, or Routes Server is stopped, the MCP server may remain visible to the assistant while business operations fail.
This separation makes prototyping accessible to a team that already uses Python or pyRevit. It also creates two diagnostic surfaces: the connection from the client to the MCP server and the local HTTP connection between that server and Revit. A response from main.py alone does not prove that the correct Revit document is open or that the result is accurate.
A third-party project to assess on its own
The repository is published under the MIT license by the mcp-servers-for-revit organization. Autodesk and pyRevitLabs are not presented as its maintainers. Its documentation describes a minimal implementation intended for prototyping and extension, so a firm must verify every function on a witness model rather than treating it as a vendor-supported product.
Connecting Revit and Python with pyRevit Routes
Key point: the Python route uses two complementary local servers. The MCP server talks to the assistant; pyRevit Routes receives HTTP requests inside Revit and calls the Revit API. The verified flow is MCP client to main.py over stdio or HTTP, then a local request to pyRevit Routes on port 48884, then the Revit API. The repository uses FastMCP on the server side and ships a separate pyRevit extension for routes that run inside Revit.
Source-checked setup procedure
This procedure was checked against the project's sources, but Educasium has not yet run it end to end against a live Revit instance. Reproduce it on a test workstation and model before adoption.
- Install pyRevit and open Revit. The official pyRevit documentation confirms that it supports Revit add-on development in IronPython or CPython. The pyRevit ribbon tab must appear before proceeding.
- Enable Routes Server. In pyRevit settings, open Routes and enable Routes Server. The project README states that it listens locally at http://localhost:48884/.
- Install the Python MCP extension. The simplest route uses the pyRevit Extensions window. For a manual install, clone the repository, append .extension to the root folder name, then register it under Custom Extensions before reloading pyRevit.
- Check the Revit bridge. Keep Revit open with a test document. The address http://localhost:48884/revit_mcp/status/ should return an active status, a revit_available flag, and the document title.
- Configure the MCP client. The repository documents uv with the mcp[cli] package. In stdio mode, the client launches main.py locally. In HTTP mode, main.py can expose /mcp at http://127.0.0.1:8000. The path to main.py must be absolute on the workstation.
- Build a genuinely restricted test profile. The Python server registers execute_revit_code and several write tools by default. In a controlled fork, remove their MCP registration and the corresponding code-execution, write, and document-management routes from the extension startup. Before connecting the assistant, use MCP Inspector to confirm that they are absent from the tool list and verify that their Routes endpoints are inaccessible. Then request only Revit status, model information, levels, and available views, comparing every result with the witness model.
MCP client configuration
| Client | Repository-verified setting |
|---|---|
| Claude Desktop over stdio | command: uv; args: run, --with, mcp[cli], mcp, run, C:/absolute/path/main.py |
| Claude Code over stdio | claude mcp add -s user "Revit-Connector" -- uv run --with "mcp[cli]" mcp run C:/absolute/path/main.py |
| HTTP-compatible client | run uv run --with "mcp[cli]" main.py --combined, then register http://localhost:8000/mcp |
Restart the MCP client after changing its configuration. Revit and Routes Server must remain open during the test. If /revit_mcp/status/ does not respond, repair the pyRevit bridge before troubleshooting the AI client.
What is actually available
The Python repository status table, checked on October 8, 2026, marks model, level, view, and family reading as implemented, together with view export, family placement, point-based element creation, color splash, document open and save, and synchronize with central. Current selection, line- and surface-based element creation, deletion, and generic modification are still marked pending. A video demonstration should therefore not be treated as proof that any particular command has shipped.
The execute_revit_code tool is already marked implemented and can run IronPython directly in the Revit context. It is the most powerful capability and the highest-risk one: it should not be available in a read-only pilot. The repository also states that pyRevit Routes is still a draft API and lacks built-in authentication.
The official pyRevit Agent Runtime path remains experimental
The official documentation now describes Agent Runtime, a path independent of Routes that uses the pyrevit mcp stdio server and a named pipe restricted to the current Windows user. It adds readonly, ask, and auto policies, plus human approval and rollback for changes. As of October 8, 2026, it is still off by default, Phase 0 is validated only on Revit 2024 and 2025, and the CLI/MCP phase is still in progress: it is a safer direction to monitor, not a stable production recommendation. Even its readonly mode does not sandbox a Python script's file, network, or process side effects.
Available tools and current limits
Key point: the Python repository's status table is the reference for which functions are actually available. Every tool discussed on this page belongs to the FastMCP server and Python routes in the same repository.
Reading and visualization
Implemented read functions include connection status, general model information, levels, exportable views, the current view, visible elements, and available families. They are suitable for a first pilot because their results can be checked quickly against the Revit interface and existing schedules.
View export and color splash add a visual layer. They can help identify a category or inspect the distribution of a parameter, but the result depends on filters, values, and the active document. A colored visualization is not BIM validation; it must remain tied to an explicit checking rule.
Writing and document management
The repository marks family placement, point-based element creation, document open, save, and close, and synchronize with central as available. These operations change Revit or file state and should not be enabled during the first trial. Line- or surface-based creation, deletion, and generic modification remain listed as unimplemented at the time of verification.
execute_revit_code is a special case: it can run IronPython in the Revit context and bypasses the guardrails of a business-command list. Hiding it in the user interface is not enough. A restricted pilot should remove both its MCP registration and its extension route, then verify their absence before connecting to any model.
Useful capabilities for a BIM firm
Key point: the most credible use cases are not spectacular demos, but repetitive, verifiable, reversible operations. Revit MCP becomes interesting when the assistant manipulates elements the team can quickly check in the model.
Reading and controlling the model
The safest uses are queries that a BIM manager can confirm without interpretation: active document, level list, view inventory, available families, or elements visible in the current view. The assistant can prepare a summary, but the model remains the source of truth and any discrepancy must be recorded.
After read access is validated, family placement or point-based element creation can be tested on a disposable copy. The protocol should specify the family, type, level, coordinates, unit, and expected result. A technically successful operation can still be wrong for the project if it uses the wrong level or type.
Data extraction and take-offs
Model, level, view, family, and visible-element information can support a structured extraction or preliminary check. The server does not turn these responses into certified take-offs. Define the expected fields, retain the source document, and check units before reusing the data in a table, note, or cost estimate.
The extracted data still depends on model quality. If rooms are not enclosed, if materials are assigned incorrectly, or if firm-specific parameters are inconsistent, the assistant will produce a clean summary from a weak base. This is the same limit as standard Revit schedules: automation does not repair a fragile BIM structure.
Comparison with Dynamo
Key point: Revit Python MCP does not occupy the same place as Dynamo. It is more conversational, but less mature as a visual scripting and validation environment.
| Option | Natural use | Main strength | Watch point |
|---|---|---|---|
| Revit Python MCP | Driving Revit from a local AI assistant with Python and pyRevit | Fast prototyping, explicit tools, extensible routes | Third-party project, unauthenticated Routes, uneven maturity |
| Dynamo | Automating Revit with visual graphs and scripts | Proven ecosystem in Revit firms | Learning curve and graph maintenance |
| Internal pyRevit script | Running a known Python command from the ribbon | Clear interaction and control of the script | Less conversational, internal maintenance required |
| Internal Revit add-in | Building a targeted workflow directly with the Revit API | Control over code, permissions, and validation | Development, maintenance, and testing budget required |
Revit MCP versus Dynamo
Dynamo remains the reference when a firm wants workflows that are reproducible, versioned, and transferable to a BIM team. Revit Python MCP fits better with punctual natural-language operations: querying a view, extracting a summary, or testing a family placement on a copy of the model. Good usage is not about replacing every Dynamo graph, but identifying tasks where a conversational interaction is faster than a full script.
For regulatory work, critical schedules, or transformations across hundreds of elements, Dynamo or a versioned pyRevit script keeps the advantage of readability and prior validation. The MCP can come earlier to explore or prepare, then the BIM team formalizes what should become durable. This separation prevents the assistant from becoming a black-box production system.
Security, governance, and limits
Key point: the chain runs locally, but local does not mean risk-free. Commands apply to a real Revit model; the main risk is not only confidentiality, but model integrity.
Confidentiality and local data
The chain runs its Revit bridge on the local workstation. The Revit file itself is not sent to GitHub or PyPI. However, excerpts passed to the assistant, including element names, parameters, and analysis results, can enter the model conversation. Data handling therefore also depends on the MCP client and model provider.
For a firm bound by confidentiality clauses, the rule should be simple: test on an internal model or anonymized copy, never on a sensitive client file during the first trial. Data sent to the model should be limited to what the task requires. This discipline also applies to Claude Desktop, Claude Code, Cline, or any other compatible MCP client.
What should not be automated without control
execute_revit_code, document operations, and write tools should be treated as high-privilege capabilities. They should not be available to the whole team by default. The current pyRevit documentation states that Routes has no authentication and may listen on 0.0.0.0. The Python project's Routes documentation specifies that the first Revit instance normally uses port 48884, while simultaneous instances move to 48885, 48886, and onward. Inventory every active Routes listener, block each affected port or the complete configured range in Windows Firewall for network profiles, and never expose them to the Internet, even behind a simple authenticated gateway.
The repository is primarily a prototyping base. That does not replace a firm protocol: backup, witness model, BIM manager review, exact inventory of enabled tools and routes, call logging, and validation before any production use.
Educasium's position
Key point: Educasium can help a firm understand and frame this kind of tool, but should not sell it as production-validated without internal proof.
Available experience
Educasium trains architects and construction professionals to use AI operationally, with particular attention to BIM workflows, deliverable quality, and professional limits. We have not yet deployed this exact Revit MCP server in a client firm or measured a verified time saving on a real project. That absence should remain visible: this article analyzes a verified open-source tool, not an Educasium case study.
That caution improves the recommendation. Instead of promising general Revit automation, the right starting point is a controlled scope: document status, level list, view inventory, or family placement on a test model. The firm can then decide whether the connector deserves a place in its internal BIM reference.
Hypothetical implementation
Hypothetical implementation. For a serious Python pilot, Educasium would recommend copying a training model, installing pyRevit and the extension for the team's Revit version, then checking /revit_mcp/status/. The upstream repository does not meet this read-only gate unchanged: a controlled fork would remove code-execution, write, and document-management tools from the MCP registry and the corresponding routes from the extension startup. MCP Inspector would confirm that only get_revit_status, get_revit_model_info, list_levels, and list_revit_views are advertised, then direct requests would verify that the removed endpoints are inaccessible. The BIM manager would record mismatches between responses and the model, data sent to the model provider, errors, and cases where Dynamo remains preferable.
Once that protocol is validated, the team could selectively restore one write tool that is actually available, such as place_family or create_point_based_element, only on a disposable model copy. The final decision should not be "adopt or reject AI in Revit", but "which commands from this server are reliable enough for the way we produce". This is a method decision, not a demo effect.
Sources and next reading
Key point: the technical information on this page comes from pyRevit documentation and the Python repository, not from a commercial demonstration. The Routes architecture, tool status, installation commands, and cited risks were checked against the sources below.
What to read next
If your firm already works in Revit, start with our guide to the best AI plugin for Revit in 2026 to distinguish design assistants, rendering tools, and BIM automation. For a wider view, also read AI and BIM: what changes for the digital model and the AI software comparison for architects.
Teams that want to frame these uses at the skills level can then look at the Mastering AI in Architecture course or the Skills hub for architects. The right goal is not adding one more tool, but deciding which Revit tasks truly deserve AI-assisted automation. Educasium is Qualiopi certified; OPCO/FIFPL funding may be available depending on status, fund criteria, approval, and remaining budget, but is not guaranteed. Contact us to review the appropriate framework.