MCP Revit Hackathon Demo (AU 2025)
A lightweight Model Context Protocol (MCP) sample that lets AI clients query a Revit model for BIM insights like element counts, category breakdowns, families/types, room compliance, and naming conventions. It’s designed for quick demos, teaching, and extending MCP patterns with AEC data.
Highlights
- MCP-native: works with MCP-enabled clients (e.g., Claude Desktop)
- Simple prompts → structured BIM answers
- Windows-first sample with minimal setup
- Easy to extend with new queries and checks
Features
- Element insights
- Count total elements in the model
- Category breakdown (e.g., Walls, Doors, Rooms)
- Get elements by category or ID
- Families and types
- List families and types by category
- Summarize unique families/types and instance counts
- Room checks
- Basic compliance heuristics (area/height/load fields present)
- Naming convention review (name/number/mark/department/occupancy)
- Developer-friendly
- Small, readable code layout
- Example prompts and outputs
- Works with sample model data under
models/
Example Prompts
- “how many elements in model?” → 8
- “give me details of all categories in model” → Walls: 4, Doors: 3, Rooms: 1
- “How many family and type name, give me details” → Basic Wall: Generic - 200mm; M_Single-Flush: 0915 x 2134mm
- “I want check compliance standard for room” → flags missing occupancy/finishes/HVAC loads
- “give me check naming conversion for room category” → suggests standard naming and numbering patterns
Screenshots
System requirements
- Python 3.10 or higher installed.
- You must use the Python MCP SDK 1.2.0 or higher.
- The demo using Github Copilot Chat in Vscode, so you need to install the Github Copilot Chat and Vscode to run the demo. Some subscription may be required for the Copilot Chat.
Set up your environment
First, let’s install uv and set up our Python project and environment:
Macos/Linux:
curl -LsSf https://astral.sh/uv/install.sh | sh
Windows:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
Set up your project
- Clone the repository:
git clone https://github.com/yourusername/mcp-revit-sample-au2025.git
cd mcp-revit-sample-au2025
- Create a virtual environment:
python -m venv venv
source venv/bin/activate
- Install the required packages:
# Install dependencies
uv add mcp[cli] httpx
- configuration file (Use Claude):
Macos/Linux:
code ~/Library/Application\ Support/Claude/claude_desktop_config.json
Windows:
code $env:AppData\Claude\claude_desktop_config.json
Paste the following configuration into the file:
{
"mcpServers": {
"revit-mcp": {
"command": "uv",
"args": [
"--directory",
"/path/to/your/mcp-revit-sample-au2025",
"run",
"revit.py"
]
}
}
}
Config using VsCode :
- Create a
.vscodefolder in the root of your project. - Create a
mcp.jsonfile inside the.vscodefolder. - Paste the following configuration into the
mcp.jsonfile:
{
"servers": {
"revit-mcp-vscode": {
"command": "uv",
"type": "stdio",
"args": [
"--directory",
"C:\\Users\\chuon\\Downloads\\repos\\mcp-revit-sample-au2025",
"run",
"revit.py"
],
"env": {
}
}
}
}
- Restart Vscode.
- Open the Command Palette (Ctrl+Shift+P or Cmd+Shift+P) and type "MCP: Start Server" to start the MCP server.
Preview
Knowledge
Metadata
Release files for iflow-mcp_chuongmep-mcp-revit-sample-au2025 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| iflow_mcp_chuongmep_mcp_revit_sample_au2025-0.1.0.tar.gz | 376.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| iflow_mcp_chuongmep_mcp_revit_sample_au2025-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 381.7 kB
Release files / iflow_mcp_chuongmep_mcp_revit_sample_au2025-0.1.0.tar.gz
| Download URL | iflow_mcp_chuongmep_mcp_revit_sample_au2025-0.1.0.tar.gz |
|---|---|
| Size | 376.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1ec8b0a4909473afb1d1bc83ca89f7b43c09da73a2e1a0c631a61169d51d43b6
|
|
BLAKE2b-256 checksum How to use checksums |
90af74e6382ed3ad82cdc2e95557a36f1ecb9bfb20d2454de0895aaa3099093f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / iflow_mcp_chuongmep_mcp_revit_sample_au2025-0.1.0-py3-none-any.whl
| Download URL | iflow_mcp_chuongmep_mcp_revit_sample_au2025-0.1.0-py3-none-any.whl |
|---|---|
| Size | 5.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9a3df3e001718c1352002586c6781943359a7fe25c57e4a959700673c7538afa
|
|
BLAKE2b-256 checksum How to use checksums |
2ecf488d18eb6caa2f1c3b778036997287a6e0786b81b443c63a9fe99b0a9b09
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|