关于 Model MCP
Model MCP 将 MCP 客户端连接到正在运行的 Autodesk Revit 项目,用于检查和编辑模型。它提供多类 Revit 工具,并以命名撤销记录、变更预览及只读或审批控制管理操作。
主要功能
- 01读取并检查 Revit 模型
- 02查询、选择和显示构件
- 03编辑构件、族、视图和图纸
- 04批量处理模型文件
- 05预览变更并撤销操作
适用场景
- 01检查模型健康状况和警告
- 02查找并高亮房间或构件
- 03执行并撤销受控模型编辑
- 04收集多个模型的快照
MCP 相关
该 MCP 服务向 MCP 客户端提供 Revit 模型检查、编辑、导出和批处理工具。它通过 Windows 加载项连接 Revit,并支持 stdio,包括经 SSH 访问远程工作站。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
uvx revit-model-mcpREVIT_MCP_HOSTRevit host: local PowerShell, ssh:<alias>, or an http://host:port or https://host:port endpoint.REVIT_MCP_REDACT_PATHSSet to 1 to replace document and nested model paths with file names. Disabled by default.REVIT_MCP_READ_ONLYSet to 1 to disable actions that modify or delete model elements without hiding the action tools. Actions run by default.REVIT_MCP_TOOLSETSComma-separated toolsets whose tools are listed: all, core, read, actions, documents, views-sheets, family, links, cad-mep, export, batch, code. core is always included. Limits visibility only. Default all.REVIT_MCP_TOKEN密钥HTTP bearer token from the workstation settings.json. Required only for http:// or https:// hosts; leave unset for local and SSH.本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
77收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| job_id | any | 否 | |
| wait_s | integer | 否 | 等待秒数,范围为 0 到 50。 |
| document | any | 否 | 目标活动文档标题或文件名中不区分大小写的子字符串。读取操作要求恰好有一个匹配的实例;省略 document 时要求恰好有一个正在运行的实例。在发布前,零个或多个匹配项都会导致失败。省略 document 时,revit_list_instances 返回所有匹配的实例,或所有正在运行的实例。 |
| process_id | any | 否 | 精确的正 Revit 进程 ID。优先级高于 document;如果两者均已提供,则必须一致。 |
| cancel_job_id | any | 否 | |
| timeout_seconds | integer | 否 | 等待结果的正整数秒数,从任务接收后开始计时(省略时为 120);HTTP 会将此值用作响应时间预算。超时会引发错误,增加此值不会覆盖插件的执行限制。 |
| pickup_timeout_seconds | integer | 否 | 等待插件接收本地或 SSH 作业的正整数秒数(省略时为 300);通过 HTTP 时忽略。接收超时会引发错误,但待处理作业之后仍可能执行。 |
详细介绍
适用于 Autodesk® Revit® 的 Model MCP 可将 Claude Desktop、Claude Code 或任何可启动 stdio 服务的 MCP 客户端连接到实时 Revit 项目。 用自然语言询问模型、检查模型并对其进行修改。 在 Revit 中,每次更改都会作为一个命名撤销条目记录,只需切换一个开关即可启用只读模式。
Claude Desktop 在 Mac 上运行,并连接到 Windows 工作站上的 Revit 2026。 此录屏中启用了操作功能。
录屏中发生的操作
- “Revit 中当前打开的是什么模型?”客户端读取文档、楼层和房间数量。
- “哪个楼层的房间总面积最大?找出最大的房间并展示给我。”客户端按楼层汇总房间面积,并查询面积最大的房间。
revit_show会打开匹配的平面图并选中该房间。 - “隔离该房间,在房间中心放置一把 Chair-Breuer,并沿 X 轴移动 800 mm。”先运行
revit_isolate,然后在房间的roomCenterMm位置运行revit_place_family,接着运行revit_move。每次修改都是独立的 Revit 事务。 - 之后只需再说一句即可完成清理:重置视图,删除椅子。
你需要两个部分:Windows 上 Revit 内部的加载项,以及 MCP 客户端旁边的服务。 详情和要求见要求与安装。 已使用 Claude Desktop 和 Claude Code 测试;其他客户端见已测试客户端页面。
1. 安装加载项。
在安装了 Revit 的 Windows 计算机上,从最新版本下载 RevitModelMcp-<version>-SingleUser.msi(当前用户)或 RevitModelMcp-<version>-MultiUser.msi(所有用户)。
只安装其中一个。
也可以使用 WinGet 安装:
winget install Sharafutdinov.RevitModelMcp
安装期间保持 Revit 关闭,然后启动 Revit 并打开一个模型。 Revit 会询问是否加载此加载项,因为发布版本目前尚未进行代码签名。
2. 将服务添加到 MCP 客户端。 在 Revit 中,选择 Add-ins > MCP > Connect AI app,即可在 Claude Desktop、Cursor、VS Code 或 Codex 中注册捆绑的服务;Claude Code 则会提供一条可复制粘贴的命令。 MSI 包含服务可执行文件,因此此方式无需单独安装 Python 或 uv。
如果你更倾向于使用 PyPI 服务: 安装 uv,然后注册服务。 对于同一台 Windows 计算机上的 Claude Code:
claude mcp add revit-model-mcp -e REVIT_MCP_HOST=local -e REVIT_MCP_REDACT_PATHS=1 -- uvx revit-model-mcp
对于 Claude Desktop,请打开最新版本中的 revit-model-mcp-<version>.mcpb 捆绑包,或将以下内容添加到其 MCP 配置中:
{
"mcpServers": {
"revit-model-mcp": {
"command": "uvx",
"args": ["revit-model-mcp"],
"env": {
"REVIT_MCP_HOST": "local",
"REVIT_MCP_REDACT_PATHS": "1"
}
}
}
}
在 macOS 或 Linux 上,请改用远程工作站,而不要使用 REVIT_MCP_HOST=local。
Claude Desktop 捆绑包页面介绍了其设置表单。
3. 提出第一个问题。
重启客户端,保持 Revit 中的模型处于打开状态,然后询问:“调用 revit_ping,然后告诉我当前打开的是哪个模型。”
success: true 表示两部分均已连接。
从克隆的仓库运行 uv run --directory server revit-model-mcp,即可使用同一服务,无需安装软件包。
如需更新,发布版加载项每天检查 GitHub,默认会通知你;PyPI 服务会检查 PyPI,也可以安装较新的 MSI(更新)。 请在 Issues 中报告错误,在 Discussions 中提问,并通过 SECURITY.md 报告漏洞。
为什么选择 Model MCP
- 安全始于设计。 在 Revit 中,每项更改都会成为一个单独命名的撤销记录;只需一个设置,即可让整个服务变为只读。
- 先确认再操作。 保存、同步和其他不可逆操作都需要等待你的明确批准。
- 像普通软件一样安装。 提供 MSI 安装程序,以及适用于 SCCM、Intune 和 Group Policy 的部署指南。
- 可通过 Mac 使用。 MCP stdio 通过 SSH 连接到 Windows 工作站,因此无需开放端口。
试试这些提示词
在 Revit 中打开一个模型后,将以下任一提示词粘贴到 MCP 客户端中。 最后一列列出了每个提示词使用的工具。
| 目标 | 提示词 | 工具 |
|---|---|---|
| 检查 | "概览当前打开的模型:标高、按类别统计的元素数量、链接以及最大的问题。" | revit_document_info、revit_list_catalog、revit_aggregate_elements、revit_list_warnings |
| 健康检查 | "在发布此模型前进行健康检查,并列出未通过的项目。" | revit_model_health、revit_parameter_fill_check |
| 查找并显示 | "查找此楼层上的门,并在 3D 中显示其位置。" | revit_query_elements、revit_capture_elements |
| 高亮显示 | "在 L2 平面图上将这些门设为红色,并淡化其他所有内容。" | revit_activate_view、revit_override_graphics |
| 修改,然后撤销 | "沿 X 方向将所选元素移动 500 mm。先预览,再执行,然后撤销。" | 使用 dry_run 的 revit_move、revit_undo_last |
| 批量处理文件夹 | "收集此文件夹中每个模型的只读快照,并告诉我哪些模型仍有参数为空。" | revit_batch_start、revit_batch_status、revit_build_report |
| ISO 19650 登记表 | "根据我们的 EIR 检查此模型,并将问题登记表连同元素快照写入 Excel。" | revit_issue_register,以及 ISO 19650 技能 |
| 导出 | "将 L2 平面图导出为 PDF,并将整个模型导出为 Navisworks 文件。" | revit_export、revit_export_nwc |
| 从 Mac 运行 | "调用 revit_ping,并告诉我工作站上打开的是哪个模型。" | revit_ping,通过 SSH(参见远程工作站) |
功能
下表按名称列出了所有工具;工具参考中包含参数、单位和限制。
![]() “按施工顺序展示建筑的建造过程。” | ![]() “将建筑逐块拼装起来。” |
![]() “展示送风和回风在建筑中的流动。” | ![]() “按警告为模型着色。” |
检查模型
读取模型、查找问题,并在 Revit 中显示。
不会更改文档中的任何内容。
导出的图片是由 revit_export_view 保存的 PNG 文件;下方图片就是其中一张,未经修改。
用于检查模型的工具
| 任务 | 工具 |
|---|---|
| 检查连接和打开的文档 | revit_ping、revit_ui_state、revit_documents、revit_document_info、revit_list_instances |
| 查找并统计元素 | revit_list_catalog、revit_aggregate_elements、revit_query_elements、revit_element_details、revit_list_relations |
| 读取视图和明细表 | revit_list_views、revit_view_info、revit_view_summary、revit_view_elements、revit_schedule_data |
| 读取警告 | revit_list_warnings、revit_view_warnings |
| 检查模型质量 | revit_model_health、revit_parameter_fill_check、revit_family_audit |
| 获取图片 | revit_export_view、revit_capture_elements |
| 在 Revit 中定位对象 | revit_activate_view、revit_select、revit_show、revit_isolate、revit_override_graphics |
协调链接模型和基准
比较并对齐链接模型中的轴网和标高,检查链接和共享坐标,并准备 CAD 和 Navisworks 交付文件。
用于处理链接和基准的工具
| 任务 | 工具 |
|---|---|
| 检查链接和坐标 | revit_links_status、revit_shared_coordinates |
| 比较并对齐基准 | revit_compare_link_datums、revit_align_link_datums |
| 处理 CAD 链接 | revit_link_cad、revit_walls_from_cad |
| 移除链接 | revit_remove_links |
| 导出 Navisworks 文件 | revit_nwc_settings_check、revit_export_nwc |
安全地更改模型
编辑元素、族、视图和图纸。 每项更改都会作为一个具名的撤销条目,风险最高的调用会等待你确认。 请参阅安全性。
用于更改模型的工具
| 任务 | 工具 |
|---|---|
| 编辑元素 | revit_move、revit_rotate、revit_copy、revit_mirror、revit_change_type、revit_set_parameter、revit_update_parameters、revit_delete |
| 将多个步骤作为一次撤销操作运行 | revit_run_actions |
| 创建元素 | revit_create_wall、revit_create_mep_run |
| 处理族 | revit_load_family、revit_place_family、revit_place_families、revit_edit_families |
| 处理视图和图纸 | revit_create_view、revit_duplicate_view、revit_apply_view_template、revit_set_view_visibility、revit_create_sheet、revit_place_views_on_sheet |
| 为元素添加标记并创建明细表 | revit_tag_elements、revit_create_schedule |
| 打开、保存和关闭文档 | revit_open_document、revit_new_document、revit_activate_document、revit_close_views、revit_close_document、revit_save_document、revit_sync_document |
| 导出文件 | revit_export |
| 在 Revit 中运行 C# | revit_execute_code |
| 撤销 | revit_undo_last |
一次处理多个模型
对一个文件夹中的多个模型运行相同的检查、编辑、导出和保存操作,或在持久运行中收集多个模型的只读快照。
长时间运行的任务会返回一个可在客户端重启后继续使用的 jobId。
用于处理多个模型的工具
| 任务 | 工具 |
|---|---|
| 打开、更改、导出和保存多个模型 | revit_process_models |
| 收集快照,但不更改模型 | revit_batch_start、revit_batch_status、revit_batch_cancel、revit_batch_fetch |
| 跟踪和取消长时间运行的任务 | revit_jobs、revit_cancel_job |
根据你的要求审查模型,并编写一份 Excel 登记表,其中包含严重性汇总、构件行和构件快照。 快照还能让你日后在 Revit 未运行时审查模型。
登记表和报告工具
| 任务 | 工具 |
|---|---|
| 为模型拍摄快照 | revit_model_snapshot |
| 编写问题登记表 | revit_issue_register |
| 根据快照生成报告 | revit_build_report |
提示词和技能
提示词和协调器指南介绍了只读模型审查工作流。
对于 Claude Code,请将 skills/revit-model-coordinator 复制到 ~/.claude/skills/。
对于 Claude Desktop,请将该技能文件夹压缩为 ZIP,然后将其上传为技能。
手动编写的 ISO 19650 问题登记表技能会根据 EIR/BEP 要求审查模型,并编写包含构件快照的 Excel 登记表。
以相同方式安装:将 skills/iso19650-issue-register 复制到 ~/.claude/skills/,或将该文件夹压缩为 ZIP,然后在 Claude Desktop 中上传。
安全
- 操作默认开启。 在服务环境中设置
REVIT_MCP_READ_ONLY=1,或创建工作站read-only文件,以拒绝所有操作。操作工具仍会列出,但会返回errorCode: "read_only",而不会执行。 - 每项更改对应一次撤销。 已提交的操作会成为一个带名称的 Revit 撤销记录,显示在 Revit 的“撤销”列表和加载项的“MCP activity”窗格中。只要它仍是 Revit 的最新更改,
revit_undo_last就可以撤销该操作。 - 不可逆操作需要确认令牌。 保存、同步、移除链接和运行 C# 始终需要确认令牌。关闭时存在更改、删除超过 500 个构件、覆盖现有导出文件,以及批处理运行中的原位保存也需要确认令牌。首次调用不会更改任何内容,并会返回要向你显示的文本;重试时需要你的明确同意。令牌只能使用一次,并会在五分钟后过期。
- 试运行。
revit_move、revit_delete、revit_run_actions、revit_export和revit_process_models等修改模型的工具接受dry_run,可在不提交更改的情况下预览结果。 - 易读的摘要。 每项操作都会返回
verification和一句话的summary,说明发生了哪些更改。 - 路径隐藏。
REVIT_MCP_REDACT_PATHS=1会隐藏响应路径字段中的目录。名称、参数值和错误仍会显示。 - 工作站无法访问。
errorCode: "transport_unavailable"且retryable: true表示无法访问 Revit 或工作站,且调用未执行。工作站或隧道恢复后再重试。请参阅错误和拒绝。 - HTTP。 直接调用 HTTP 的客户端需要 bearer 令牌;工作站的只读文件存在时,请求会被拒绝。
对于无人值守运行,请启用只读模式。 确认令牌可防止操作失误和指令注入,但会自行确认的客户端也可以将令牌发回。 有关门控、例外和验证失败,请参阅操作;有关身份验证和隐私边界,请参阅安全详情;报告漏洞请参阅 SECURITY.md。
远程工作站
本地 Windows 客户端在 Revit 用户的账户下使用 REVIT_MCP_HOST=local。
远程客户端通过 SSH 在工作站上运行整个服务,使用运行 Revit 的同一 Windows 用户。
在工作站上安装一次:uv tool install revit-model-mcp,然后将 ssh 注册为命令:
{
"mcpServers": {
"revit-model-mcp": {
"command": "ssh",
"args": ["revit-pc", "revit-model-mcp", "--redact-paths"]
}
}
}
将 revit-pc 替换为工作站的 SSH 主机别名。
MCP 标准输入/输出通过 SSH 会话传输,远程服务使用命名管道,因此无需开放端口。
仍可使用 REVIT_MCP_HOST=ssh:<alias>(通过 SSH 使用文件通道)和通过 SSH 隧道使用 HTTP;除 /health 外,HTTP 需要 bearer token,并且默认绑定到环回地址。
参见传输设置。
兼容性
支持 Windows 10 和 11 上的 Revit 2022 至 2027。
该插件针对 Revit 2022-2024 使用 .NET Framework 4.8,针对 2025 和 2026 使用 .NET 8,针对 2027 使用 .NET 10。
每个版本都会构建、安装并运行实时读取和操作。
MSI 包含一个适用于 Windows 的服务可执行文件,无需单独安装 Python 或 uv。
PyPI 服务需要 Python 3.11 或更高版本,可在 Windows、macOS 或 Linux 上运行;uv 可以通过 uvx revit-model-mcp 启动它。
有关日期和限制,请参阅验证证据,并参阅已知缺口。
隐私
Model MCP 会将请求的模型数据返回给所选 MCP 客户端。
该安装包默认启用响应路径脱敏。
本项目不使用遥测。
隐私政策涵盖数据收集、更新检查、AI 客户端数据流、存储、保留期限和联系信息。
服务每天检查一次是否有更新的稳定版本;设置 REVIT_MCP_NO_UPDATE_CHECK=1 即可选择退出。
面向管理员
部署指南介绍静默安装 MSI、SCCM、Intune、组策略、离线安装服务以及代理。 策略参考列出每项设置及其优先级。 进行安全审查时,请使用安全白皮书和问卷答复。 另请参阅 MCP 规范、已测试的客户端以及 Model MCP 刻意不做的事情。
代码签名政策
发布版本目前尚未进行代码签名,因此安装后以及每次更新后,Revit 都会询问是否加载该插件。
请使用 SHA256SUMS.txt 和构建来源证明验证下载内容;参见代码签名政策和下载验证。
有关更新模式和安装,请参阅自动更新。
贡献与支持
文档介绍了设置、工具和传输方式。 请从 CONTRIBUTING.md 开始,在 Discussions 中提问,或通过 issue 表单报告 Bug 和请求新功能。 CI 会运行 C# 和 Python 测试套件,并构建受支持的 Revit 配置。 如果 Model MCP 为你节省了时间,可以在 GitHub 上点个 :star:,帮助其他 Revit 用户发现它。
许可证
MIT,由 Dinar Sharafutdinov 维护。 依赖项的许可证请参阅第三方声明。
商标
Autodesk 和 Revit 是 Autodesk, Inc. 和/或其子公司和/或关联公司在美国和/或其他国家或地区的注册商标或商标。Model MCP 是一个独立项目,与 Autodesk 无关联,也未获其认可。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。



