Revit MCP Server
# ποΈ Revit MCP Server
A Model Context Protocol server for Revit integration, enabling seamless communication between Claude AI and Autodesk Revit.
[English](./README.md) | [δΈζ](./README.zh-CN.md)
## π― Overview
This TypeScript-based MCP server provides a bridge between Claude AI and Revit, allowing direct interaction with Revit models through a WebSocket connection. It implements the Model Context Protocol to enable:
- β‘ Real-time access to Revit model information
- π Element querying and filtering
- π View and level management
- π‘οΈ Robust error handling with fallback mock data
## β¨ Features
### π Revit Integration
- π‘ WebSocket-based communication with Revit plugin
- π Real-time model data access
- π Graceful fallback to mock data when connection fails
- βοΈ Configurable connection settings via environment variables
### π Core Functionalities
- **π Model Information**
- Access basic model metadata (name, path, version)
- Get element counts and last modification date
- Real-time model state synchronization
- **ποΈ Element Management**
- Query elements with flexible filtering
- Access element properties and geometry
- Batch element operations
- **πͺ View & Level Control**
- List all available views
- Access level information
- Navigate through model hierarchy
## π» Development
### π Prerequisites
- Node.js (v14 or higher)
- npm
- Autodesk Revit (2023 or later)
- Revit WebSocket Plugin (companion plugin)
### π§ Installation
Install dependencies:
```bash
npm install
```
Build the server:
```bash
npm run build
```
For development with auto-rebuild:
```bash
npm run watch
```
### βοΈ Configuration
The server can be configured using environment variables:
```plaintext
REVIT_HOST=127.0.0.1 # Revit plugin WebSocket host
REVIT_PORT=8080 # Revit plugin WebSocket port
```
## π Integration with Claude Desktop
Add the server configuration to Claude Desktop:
Windows:
```bash
%APPDATA%/Claude/claude_desktop_config.json
```
Configuration format:
```json
{
"mcpServers": {
"revit-mcp-server": {
"command": "D:/path/to/revit-mcp-server/build/index.js"
}
}
}
```
### π Debugging
For debugging the MCP communication:
1. Use the built-in MCP Inspector:
```bash
npm run inspector
```
2. Monitor WebSocket communication with Revit plugin
3. Check server logs for connection and operation status
## β οΈ Error Handling
The server implements robust error handling:
- Automatic fallback to mock data when Revit connection fails
- Detailed error logging
- Graceful connection recovery
## π License
MIT License
## π€ Contributing
Contributions are welcome! Please feel free to submit pull requests.
## π¬ Contact
If you have any questions or suggestions, feel free to reach out:
- π§ Email: 353554036@qq.com
- π¬ WeChat Account: modian4500
TDQS
Scored across 6 tools
Every tool has a clearly distinct purpose targeting different Revit model components: categories, element info, elements, families, levels, and views. There is no overlap in functionality, and an agent can easily distinguish between them based on the specific resource each retrieves.
All tools follow a consistent verb_noun pattern with 'get_' as the prefix and a plural or singular noun describing the resource. This uniformity makes the tool set predictable and easy to navigate, with no deviations in naming style.
With 6 tools, the count is reasonable for a Revit model server, covering key retrieval operations. However, it might be slightly under-scoped as it lacks tools for creating, updating, or deleting elements, which could be expected in a full Revit integration.
The tool set is severely incomplete for a Revit domain, as it only provides read-only retrieval operations. There are significant gaps in CRUD coverageβno tools for creating, updating, or deleting elements, categories, families, etc., which will likely cause agent failures when trying to modify models.