Token导航 LogoToken导航TokenDH.com
Cutom Revit MCP server logo
设计创作stdio官方级别未说明来源级核验

Cutom Revit MCP server

MCP Server

tsc

通过Claude AI自然语言控制Autodesk Revit的MCP服务器,实现AI驱动的BIM操作,提供61种工具支持。

工具数

63

提示词数

0

GitHub Stars

2

资源数

0
C#Claude自然语言处理Claude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

archsalem101

提供方

archsalem101

最后核验

2026/5/17 20:20

运行时

Node.js

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

npx tsc

详细介绍

Revit MCP服务器

使用Claude AI通过自然语言控制Autodesk Revit。此项目实现了 模型上下文协议(MCP) 该服务器连接了Claude Desktop和Revit 2023,通过61个工具实现了人工智能驱动的BIM操作。

问克劳德 *“列出所有墙”*, *“创建包含建筑立面的图纸”*,或 *“按级别计数门”* 它直接在Revit模型中执行。

建筑

Claude Desktop ──(stdio/MCP)──► TypeScript MCP Server ──(HTTP :8080)──► C# Revit Plugin ──► Revit API
组件语言角色
MCP服务器Types/Node.js将Claude Desktop的MCP工具调用转换为HTTP请求
Revit插件 CNET Framework 4.8接收HTTP请求并在主线程上执行Revit API操作

C#插件使用 ExternalEvent 用于线程安全Revit API访问的模式。一 HttpListenerlocalhost:8080 接收工具请求,并通过将其排队 ExternalEvent,并等待结果。

先决条件

  • Autodesk Revit 2023 (安装在默认路径 C:\Program Files\Autodesk\Revit 2023\)
  • Node.js v18+(下载)
  • .NET Framework 4.8开发包 (下载)
  • 克劳德桌面版 (下载)

项目结构

revit-mcp-server/
├── RevitPlugin/                    # C# Revit Add-in
│   ├── App.cs                      # Plugin entry point (IExternalApplication)
│   ├── HttpServer.cs               # HTTP server on localhost:8080
│   ├── ExternalEventHandler.cs     # Thread-safe Revit API execution
│   ├── ToolRouter.cs               # Routes tool names to handlers
│   ├── RevitMcpPlugin.csproj       # .NET project file
│   ├── RevitMcpPlugin.addin        # Revit add-in manifest
│   ├── Tools/
│   │   ├── QueryTools.cs           # get_elements, find_elements, quantities
│   │   ├── ElementTools.cs         # create/delete/move/copy elements
│   │   ├── ParameterTools.cs       # get/set parameter values
│   │   ├── ViewTools.cs            # manage views, duplicate, filters
│   │   ├── SheetTools.cs           # create sheets, place viewports
│   │   ├── SelectionTools.cs       # select elements by criteria
│   │   ├── VisibilityTools.cs      # hide/isolate/unhide elements
│   │   ├── LevelGridTools.cs       # levels, grids, rename elements
│   │   ├── MEPTools.cs             # panel schedules, conduit QA, room contents
│   │   ├── AnnotationTools.cs      # tags, duplicate tag detection
│   │   └── ProjectTools.cs         # categories list, warnings
│   └── Helpers/
│       ├── CategoryHelper.cs       # Category name resolution (60+ aliases)
│       ├── UnitHelper.cs           # Unit conversions (mm/m/ft/in)
│       └── JsonHelper.cs           # Element-to-JSON serialization
│
├── mcp-server/                     # TypeScript MCP Server
│   ├── package.json
│   ├── tsconfig.json
│   ├── .env.example
│   └── src/
│       ├── index.ts                # Entry point
│       ├── server.ts               # MCP server setup + tool registration
│       ├── revit-client.ts         # HTTP client for Revit plugin
│       ├── types.ts                # TypeScript interfaces
│       └── tools/
│           ├── query-tools.ts      # Element query tools
│           ├── element-tools.ts    # Element creation/modification tools
│           ├── parameter-tools.ts  # Parameter tools
│           ├── view-tools.ts       # View management tools
│           ├── sheet-tools.ts      # Sheet management tools
│           ├── selection-tools.ts  # Selection tools
│           ├── visibility-tools.ts # Visibility tools
│           ├── level-grid-tools.ts # Level/grid tools
│           ├── mep-tools.ts        # MEP tools
│           ├── annotation-tools.ts # Annotation tools
│           └── project-tools.ts    # Project-wide tools
│
└── README.md

安装说明

步骤1:构建C#Revit插件

  1. 打开终端并导航到 RevitPlugin 文件夹:
cd RevitPlugin
  1. 还原NuGet包并构建:
dotnet restore
dotnet build -c Release
注:.csproj 参考中的Revit API DLL C:\Program Files\Autodesk\Revit 2023\。如果您的Revit安装在其他地方,请更新 ` 条目在 RevitMcpPlugin.csproj`.
  1. 构建输出将在 RevitPlugin\bin\Release\:

- RevitMcpPlugin.dll - Newtonsoft.Json.dll

步骤2:部署Revit插件

将三个文件复制到Revit 2023附加模块文件夹:

# Create target folder variable
set ADDIN_DIR=%APPDATA%\Autodesk\Revit\Addins\2023

# Copy the add-in manifest
copy RevitPlugin\RevitMcpPlugin.addin "%ADDIN_DIR%\"

# Copy the built DLLs
copy RevitPlugin\bin\Release\RevitMcpPlugin.dll "%ADDIN_DIR%\"
copy RevitPlugin\bin\Release\Newtonsoft.Json.dll "%ADDIN_DIR%\"

复制后,文件夹应包含:

%APPDATA%\Autodesk\Revit\Addins\2023\
├── RevitMcpPlugin.addin
├── RevitMcpPlugin.dll
└── Newtonsoft.Json.dll

步骤3:安装MCP服务器依赖项

cd mcp-server
npm install

步骤4:构建MCP服务器

cd mcp-server
npx tsc

这将TypeScript编译为JavaScript mcp-server/dist/ 文件夹。

步骤5:配置Claude桌面

打开Claude Desktop配置文件:

%APPDATA%\Claude\claude_desktop_config.json

添加 revit 进入下 mcpServers:

{
  "mcpServers": {
    "revit": {
      "command": "node",
      "args": [
        "C:\\FULL\\PATH\\TO\\github_revit_MCP_server\\mcp-server\\dist\\index.js"
      ],
      "env": {
        "REVIT_HOST": "localhost",
        "REVIT_PORT": "8080"
      }
    }
  }
}
重要提示: 替换 C:\\FULL\\PATH\\TO\\ 使用项目文件夹的实际绝对路径。使用双反睫毛 \\ JSON格式。

步骤6:启动

  1. 启动Revit 2023 并打开一个项目。该插件将自动加载并启动端口8080上的HTTP服务器。您应该看到一个确认对话框。
  1. 重新启动克劳德桌面 因此,它采用了新的MCP服务器配置。
  1. 开始聊天! 在Claude Desktop中打开一个新对话,然后尝试:

- *“列出模型中的所有墙”* - *“获取项目信息”* - *“按类型统计所有门”* - *“创建名为建筑立面的新图纸a-501”*

验证连接

您可以独立验证每个组件:

检查Revit插件HTTP服务器:

curl http://localhost:8080/health

预期响应:

{
  "success": true,
  "status": "running",
  "revitConnected": true,
  "documentName": "YourProject.rvt",
  "serverVersion": "1.0.0"
}

直接测试工具调用:

curl -X POST http://localhost:8080/execute -H "Content-Type: application/json" -d "{\"tool\": \"get_project_info\", \"parameters\": {}}"

可用工具(61)

查询工具(10)

工具说明
get_elements按类别分页获取元素
get_element_parameters获取元素的所有参数
find_elements_by_parameter查找与参数值匹配的元素
calculate_quantities计算面积、长度、体积起飞
count_elements_by_category统计一个或所有类别中的元素
count_elements_by_family按族和类型对元素进行计数
get_element_by_id获取单个元素的详细信息
get_element_room找出哪个房间包含元素
get_project_info获取项目元数据
export_schedule_data将Revit明细表导出为JSON

元素工具(8)

工具说明
create_wall在两点之间创建墙
create_floor从边界点创建楼板
create_room在标高上的某个点创建房间
create_family_instance放置一个家庭实例(门、窗、家具)
delete_elements按ID删除元素
move_element通过平移向量移动元素
rotate_element按度旋转元素
copy_element将元素复制到新位置

参数工具(4)

工具说明
get_parameter_value获取特定的参数值
set_parameter_value设置参数值
get_parameter_names列出元素上的所有参数
batch_set_parameters在多个元素上设置相同的参数

查看工具(6)

工具说明
get_views列出所有视图,按类型筛选
get_active_view获取当前活动视图
activate_view切换到其他视图
duplicate_view复制视图
create_dependent_view创建依赖视图
get_view_filters列出应用于视图的筛选器

板材工具(6)

工具说明
get_sheets列出所有带有视口的图纸
create_sheet创建新工作表
place_view_on_sheet在图纸上放置视图
get_sheet_viewports在图纸上列出视口
rename_sheet重命名图纸
duplicate_and_place_view一步复制视图并将其放置在图纸上

选择工具(8)

工具说明
get_current_selection获取当前选定的元素
select_elements_by_ids按ID选择元素
select_all_by_category选择类别的所有元素
select_elements_by_level选择特定级别的元素
select_by_parameter_value选择与参数匹配的元素
select_and_hide_category选择并隐藏类别
select_and_isolate_category隔离一个类别
clear_selection清除当前选择

可见性工具(6)

工具说明
hide_elements_by_category隐藏类别的所有元素
unhide_elements_by_category取消隐藏类别
isolate_elements_by_category暂时隔离一个类别
isolate_elements_by_selection隔离当前选择
unhide_all重置活动视图中的所有隐藏/隔离
unisolate_all重置临时隔离

水平和网格工具(4)

工具说明
get_levels列出所有标高
get_grids列出所有网格
create_level创建新关卡
rename_elements批量重命名元素

MEP工具(5)

工具说明
get_panel_schedules获取配电盘明细表
calculate_conduit_bends分析导管弯曲计算
conduit_qa_check导管系统的质量保证检查
analyze_wall_lengths_by_level按标高分组的墙长/面积
get_elements_in_room查找房间内的元素

注释工具(4)

工具说明
create_tag标记活动视图中的元素
tag_all_in_view自动标记类别中所有未标记的元素
find_duplicate_tags查找具有多个标签的元素
get_element_orientation获取元素的朝向

项目工具(2)

工具说明
get_all_categories列出所有包含元素计数的类别
get_warnings获取所有Revit警告/错误

适应其他Revit版本

本项目目标 修订版2023 (.NET Framework 4.8)。要适应其他版本:

Revit 2024+(.NET Framework 4.8)

  • 更新 `.csproj` 指向Revit 2024安装
  • 部署到 %APPDATA%\Autodesk\Revit\Addins\2024\
  • API应该大部分兼容

Revit 2025+(.NET 8)

  • 改变 `.csprojnet48net8.0-windows`
  • 更新 `` 到Revit 2025的安装路径
  • 替换不推荐使用的API调用(某些 SpecTypeId 图案可能不同)
  • 部署到 %APPDATA%\Autodesk\Revit\Addins\2025\

故障排除

Claude Desktop中的“服务器已断开连接”

  1. 检查MCP日志: 打开 %APPDATA%\Claude\logs\mcp-server-revit.log
  2. 常见修复: 确保你用以下代码构建了TypeScript npx tsc 和路径在 claude_desktop_config.json 指向 dist/index.js 文件(不是 src/index.ts)
  3. 路径问题:args 数组必须包含 绝对路径dist/index.js 双睫毛

Revit插件未加载

  1. 验证所有3个文件都在 %APPDATA%\Autodesk\Revit\Addins\2023\:

- RevitMcpPlugin.addin - RevitMcpPlugin.dll - Newtonsoft.Json.dll

  1. 检查一下 .addin 文件未被阻止:右键单击>属性>取消阻止
  2. 部署后重新启动Revit

“工具执行超时”

  • Revit可能正忙于其他操作。请稍候,然后重试。
  • 大型型号可能需要超过30秒的超时时间

健康检查报告 revitConnected: false

  • 确保Revit项目文档已打开(而不仅仅是开始屏幕)

运作原理

  1. 克劳德桌面版 发送MCP tools/call 请求(例如。, get_elements 随着 {category: "Walls"})通过stdio
  2. TypeScript MCP服务器 接收它,将其转换为HTTP POST localhost:8080/execute
  3. C#Revit插件 HttpServer接收请求,在 ExternalEventHandler,并提出 ExternalEvent
  4. Revit拾取 ExternalEvent 在其 主线程 并执行Revit API调用
  5. 结果返回:Revit API响应->JSON响应->HTTP响应->MCP响应->Claude Desktop

ExternalEvent + ManualResetEventSlim 模式确保所有Revit API调用都发生在主线程上(Revit需要),而HTTP服务器可以处理来自后台线程的请求。

变更后的重建

如果修改任何源文件:

C#插件更改:

cd RevitPlugin
dotnet build -c Release
# Re-copy DLLs to Revit addins folder
copy bin\Release\RevitMcpPlugin.dll "%APPDATA%\Autodesk\Revit\Addins\2023\"
# Restart Revit

TypeScript MCP服务器更改:

cd mcp-server
npx tsc
# Restart Claude Desktop

许可证

MIT许可证-请参阅 许可证 了解详情。

致谢

目录标签

目录标签

C#Claude自然语言处理BIM自动化本地部署Revit插件AI辅助设计建筑信息模型

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Node.js

来源包(packageName,安装包名)

tsc

工具数量(toolCount,工具数)

63

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP