mcpField
M
Model MCP

Model MCP

本地服务
github.com/sharafutdinovdi媒体与设计71 周前更新

关于 Model MCP

Model MCP 将 MCP 客户端连接到正在运行的 Autodesk Revit 项目,用于检查和编辑模型。它提供多类 Revit 工具,并以命名撤销记录、变更预览及只读或审批控制管理操作。

主要功能

  1. 01读取并检查 Revit 模型
  2. 02查询、选择和显示构件
  3. 03编辑构件、族、视图和图纸
  4. 04批量处理模型文件
  5. 05预览变更并撤销操作

适用场景

  1. 01检查模型健康状况和警告
  2. 02查找并高亮房间或构件
  3. 03执行并撤销受控模型编辑
  4. 04收集多个模型的快照

MCP 相关

该 MCP 服务向 MCP 客户端提供 Revit 模型检查、编辑、导出和批处理工具。它通过 Windows 加载项连接 Revit,并支持 stdio,包括经 SSH 访问远程工作站。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"sharafutdinovdi-revit-model": {
"command": "uvx",
"args": [
"revit-model-mcp"
],
"env": {
"REVIT_MCP_HOST": "<REVIT_MCP_HOST>",
"REVIT_MCP_REDACT_PATHS": "<REVIT_MCP_REDACT_PATHS>",
"REVIT_MCP_READ_ONLY": "<REVIT_MCP_READ_ONLY>",
"REVIT_MCP_TOOLSETS": "<REVIT_MCP_TOOLSETS>",
"REVIT_MCP_TOKEN": "<REVIT_MCP_TOKEN>"
}
}
}
}
启动命令uvx revit-model-mcp
需要配置的环境变量
REVIT_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+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypirevit-model-mcp1.0.0

工具

77

收录的工具列表 · 更新于 2 周前

参数类型必填说明
job_idany否
wait_sinteger否等待秒数,范围为 0 到 50。
documentany否目标活动文档标题或文件名中不区分大小写的子字符串。读取操作要求恰好有一个匹配的实例;省略 document 时要求恰好有一个正在运行的实例。在发布前,零个或多个匹配项都会导致失败。省略 document 时,revit_list_instances 返回所有匹配的实例,或所有正在运行的实例。
process_idany否精确的正 Revit 进程 ID。优先级高于 document;如果两者均已提供,则必须一致。
cancel_job_idany否
timeout_secondsinteger否等待结果的正整数秒数,从任务接收后开始计时(省略时为 120);HTTP 会将此值用作响应时间预算。超时会引发错误,增加此值不会覆盖插件的执行限制。
pickup_timeout_secondsinteger否等待插件接收本地或 SSH 作业的正整数秒数(省略时为 300);通过 HTTP 时忽略。接收超时会引发错误,但待处理作业之后仍可能执行。

详细介绍

Model MCP:BIM 自动驾驶。通过 Claude Desktop、Claude Code 或任何可启动 stdio 服务的 MCP 客户端,询问、检查并修改实时 Revit 项目。动画展示了在输入提示词“逐层搭建模型”后,建筑模型在 Revit 三维视图中逐层升起。

适用于 Autodesk® Revit® 的 Model MCP 可将 Claude Desktop、Claude Code 或任何可启动 stdio 服务的 MCP 客户端连接到实时 Revit 项目。 用自然语言询问模型、检查模型并对其进行修改。 在 Revit 中,每次更改都会作为一个命名撤销条目记录,只需切换一个开关即可启用只读模式。

CI 最新版本 PyPI Revit 2022-2027 OpenSSF Scorecard MIT

左侧是 Claude Desktop 对话,右侧是 Revit 2026:Claude 读取已打开的模型,找到面积最大的房间,打开其平面图并选中房间,将其隔离,放置一把椅子并移动它,最后进行清理

Claude Desktop 在 Mac 上运行,并连接到 Windows 工作站上的 Revit 2026。 此录屏中启用了操作功能。

录屏中发生的操作
  1. “Revit 中当前打开的是什么模型?”客户端读取文档、楼层和房间数量。
  2. “哪个楼层的房间总面积最大?找出最大的房间并展示给我。”客户端按楼层汇总房间面积,并查询面积最大的房间。 revit_show 会打开匹配的平面图并选中该房间。
  3. “隔离该房间,在房间中心放置一把 Chair-Breuer,并沿 X 轴移动 800 mm。”先运行 revit_isolate,然后在房间的 roomCenterMm 位置运行 revit_place_family,接着运行 revit_move。每次修改都是独立的 Revit 事务。
  4. 之后只需再说一句即可完成清理:重置视图,删除椅子。
## 快速开始

你需要两个部分: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 3D 视图中逐步建起,先是柱子,然后是墙、楼板和屋顶
“按施工顺序展示建筑的建造过程。”
摄像机环绕时,建筑元素飞入 Revit 3D 视图中的各自位置
“将建筑逐块拼装起来。”
送风和回风以蓝色和橙色流经风管网络
“展示送风和回风在建筑中的流动。”
Revit 3D 视图中的元素根据模型警告着色,同时视图不断转动
“按警告为模型着色。”

检查模型

读取模型、查找问题,并在 Revit 中显示。 不会更改文档中的任何内容。 导出的图片是由 revit_export_view 保存的 PNG 文件;下方图片就是其中一张,未经修改。

由 revit_export_view 从 Revit 示例项目导出的视图
用于检查模型的工具
任务工具
检查连接和打开的文档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 无关联,也未获其认可。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。