get_revit_statusLABSCO SUMMARY
An agent can read the Revit model that is open in front of you.
What it takes off you is the round trip through the Revit API: ask in words which levels, views and families the project has, get a view back as an image, and place a component — without writing C# or opening the API reference.
What it is
A bridge between an MCP client and Autodesk Revit. The server speaks MCP on one side and, on the other, makes HTTP calls to a pyRevit Routes REST API running inside the Revit process, so every answer comes from the document that is open.
What you get
- Which document is open, and whether the Revit side is answering at all
- Every level in the model, and every view, listed by name
- A view returned as an image you can look at
- The family categories the project uses, and the families loaded under them
- A loaded family placed into the model
Requirements
Autodesk Revit with pyRevit installed and its Routes module running — the MCP server reaches it over a local HTTP port. The Routes API is in draft form and carries no authentication of its own, so keep that port local and add your own controls before using it anywhere shared.
Setup effort
Build from source — git clone https://github.com/mcp-servers-for-revit/mcp-server-for-revit-python
USE CASES
Taking stock of a model somebody just handed you
Check the bridge is answering, then read back what document is loaded and the levels it is built on, before you touch anything.
Finding the view you are supposed to be looking at
List the views by name and pull the one you mean back as an image, so the model is something you can see rather than describe.
Checking which families the project actually has loaded
Read the family categories the project uses and the families sitting under each one, so a placement decision is made against what is really there.
Dropping a component in without switching to Revit
Pick the family from the loaded list and place it, with the model updating in the running instance.
19 tools
Listed in project docs. Your client may show a different list.
get_revit_model_infolist_levelsget_revit_viewlist_revit_viewsplace_familylist_familieslist_family_categoriesget_current_view_infoget_current_view_elementscreate_point_based_elementcolor_splashexecute_revit_codelist_revit_installationslaunch_revitopen_documentclose_documentsave_documentsync_with_centralBEFORE YOU INSTALL
What to know first
Tools you get
19 tools named in the project's documentation.
Where it runs
Both documented clients run the server on your machine.
INSTALLATION
Connect your client
Server setup
In Revit, open the pyRevit tab → Settings → Routes and activate Routes Server. pyRevit then listens on http://localhost:48884/.
git clone https://github.com/mcp-servers-for-revit/mcp-server-for-revit-pythonAdd .extension to the cloned folder's name. In pyRevit Settings, under Custom Extensions, add the path to that folder, save, and reload pyRevit (restart Revit if needed).
Check the bridge: open http://localhost:48884/revit_mcp/status/ in a browser — it should answer with "status": "active".
MCP Clients
Claude Desktop — stdio
{
"mcpServers": {
"Revit Connector": {
"command": "uv",
"args": [
"run",
"--with",
"mcp[cli]",
"mcp",
"run",
"<YOUR_PATH_TO_MAIN>"
]
}
}
}<YOUR_PATH_TO_MAIN> is the path to main.py in your clone. Revit must be running with the Routes Server active.
Claude Code
claude mcp add -s user "Revit-Connector" -- uv run --with "mcp[cli]" mcp run <YOUR_PATH_TO_MAIN><YOUR_PATH_TO_MAIN> is the path to main.py in your clone. Revit must be running with the Routes Server active.