How demolinator/revit-mcp-server works
Revit MCP Server exposes Revit operations as MCP tools in a local Python process, sends tool requests over HTTP to pyRevit routes, and performs them against the active Revit document. The main workflow is client request → domain tool → HTTP bridge → route handler → Revit model/result. The README documents additional analysis, documentation, interop, persistence, and code-execution capabilities; their detailed wiring is not sampled, so those branches are shown at the subsystem level.
Main entry points: main.py HTTP bridge · building_tools.py Building creation · __init__.py Tool registry · placement.py Family placement
Components 21
MCP interface
- MCP server
main.py - Tool registry
tools/__init__.py - HTTP bridge
main.py
Model operations
- Route registration
startup.py - Building creation
tools/building_tools.py - Family placement
revit_mcp/placement.py - Model editing
revit_mcp/editing.py - MEP creation
tools/mep_tools.py - MEP routes
revit_mcp/mep.py
Analysis and views
- View queries
revit_mcp/views.py - Model analysis
revit_mcp/analysis.py - Clash detection
revit_mcp/clash.py - Annotation and tags
revit_mcp/annotation.py - Document outputs
revit_mcp/documentation.py - Element coloring
revit_mcp/colors.py
Interop and persistence
- File interop
revit_mcp/interop.py - Model persistence
revit_mcp/document.py - Code execution
revit_mcp/code_execution.py
Other components
- MCP client
- pyRevit Routes
- Revit API and document
Connections 34
- MCP client → MCP server: sends tool requests
- MCP server → Tool registry: registers tools
- MCP server → HTTP bridge: provides HTTP calls
- Building creation → HTTP bridge: posts requests
- MEP creation → HTTP bridge: posts requests
- Tool registry → HTTP bridge: supplies callbacks
- HTTP bridge → pyRevit Routes: sends HTTP requests
- Route registration → pyRevit Routes: registers handlers
- pyRevit Routes → Building creation: dispatches requests
- pyRevit Routes → MEP routes: dispatches requests
- pyRevit Routes → Family placement: dispatches requests
- pyRevit Routes → Model editing: dispatches requests
- pyRevit Routes → View queries: dispatches requests
- pyRevit Routes → Model analysis: dispatches requests
- pyRevit Routes → Clash detection: dispatches requests
- pyRevit Routes → Annotation and tags: dispatches requests
- pyRevit Routes → Document outputs: dispatches requests
- pyRevit Routes → Element coloring: dispatches requests
- pyRevit Routes → File interop: dispatches requests
- pyRevit Routes → Model persistence: dispatches requests
- pyRevit Routes → Code execution: dispatches requests
- Building creation → Revit API and document: creates elements
- Family placement → Revit API and document: places families
- Model editing → Revit API and document: modifies elements
- MEP routes → Revit API and document: creates systems
- View queries → Revit API and document: queries and exports views
- Model analysis → Revit API and document: analyzes model
- Clash detection → Revit API and document: checks interferences
- Annotation and tags → Revit API and document: adds annotations
- Document outputs → Revit API and document: exports documents
- Element coloring → Revit API and document: applies overrides
- File interop → Revit API and document: imports and exports
- Model persistence → Revit API and document: saves document
- Code execution → Revit API and document: executes in context