Revit MCP

io.github.shuotao由 GitHub 账号 shuotao 发布v1.6.0更新于 Oct 25, 2026

MCP Server for Revit integration - AI-Powered Revit Control

已验证STDIO仅桌面开发者工具媒体与设计

概览

AI 生成的概览

本地 MCP 桥接服务,让 AI 客户端通过 239 个 BIM 工具操控 Autodesk Revit,并把调用转发给 Revit 插件。

可以做什么
  • 用自然语言完成 Revit 建模与出图任务,例如为视图中的墙体标注尺寸、检查幕墙标高
  • 套用建筑规范、工程量统计与合规检查等 BIM 标准作业流程
  • 检测碰撞,并在支持 MCP Apps 的宿主中显示可交互的碰撞审查面板
  • 在会话中查询当前 Revit 视图、标高、选择集与文档状态
适用场景
适合在 Windows 上使用 Revit 2022-2026 的 BIM 工程师与建筑师,希望在现有 AI 客户端内完成基于标准的建模、出图与合规工作流。
运行要求
Windows 10 或更高版本并安装 Autodesk Revit 2022-2026;构建 C# 插件需要 .NET Framework 4.8(Revit 2022-2024)或 .NET 8(Revit 2025-2026);npm 的 stdio 桥接需要 Node.js LTS,建议 20.x 或更高。插件须另行构建并部署,Revit 需运行并在功能区启用 MCP 服务,桥接连接本机 8964 端口。
安装前请注意
npm 包只是 Node 桥接,C# 插件必须自行安装并部署到 Revit 插件目录。工具会作用于真实 Revit 项目并可能修改模型数据,接受前应核对变更。同一时间只能有一个 AI 客户端占用 Revit 连接,切换需在 Revit 功能区释放连接。插件在本机端口监听,来自浏览器 Origin 的握手会被拒绝。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Revit MCP,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

Revit MCP - AI-Powered Revit Control

English | 繁體中文

Revit MCP lets AI clients call Autodesk Revit tools through the Model Context Protocol (MCP). The MCP server forwards tool calls to a local Revit add-in, and the add-in executes the corresponding Revit API workflow.

What is this?

Talk to Revit in plain language. Ask your AI client to "dimension every wall on this view" or "check the curtain-wall elevations", and Revit does it — through 239 MCP tools backed by 90 professional BIM SOPs (building code, quantity take-off, compliance checks).

Who it's for: BIM engineers and architects who use Revit and want AI-assisted, standards-based workflows. You'll need Revit (2022–2026) on Windows and to be comfortable installing an add-in.

Quickstart (3 steps)

  1. Install the Revit add-in. Build and deploy the C# add-in — see Manual Setup. This is the half that actually talks to Revit.
  2. Point your AI client at the MCP server. No cloning needed — it runs straight from npm:
    json
    { "mcpServers": { "revit-mcp": { "command": "npx", "args": ["-y", "@shuotao/revit-mcp-server"] } } }
  3. Open Revit, enable the MCP service in the ribbon, and start asking. Full setup: AI Client Configuration.

Questions or want to show what you built? → Discussions

Current Project Counts

ItemCountSource
Runtime MCP tools239registerRevitTools() in MCP-Server/src/tools/index.ts
Domain SOP files94domain/*.md except README.md, plus domain/references/*.md
Claude skills61.claude/skills/*/SKILL.md

When these numbers change, update CLAUDE.md, README.zh-TW.md, this file, docs/DOCUMENT_AUDIENCE_INVENTORY.md, and run:

powershell
.\scripts\verify-qaqc.ps1 -SkipBuild -SkipDeploy

New: Interactive Clash Viewer (MCP Apps)

detect_clashes can now render an interactive clash-review UI inline in the conversation, via the MCP Apps extension (io.modelcontextprotocol/ui). This requires an MCP host that supports the extension. It is purely additive:

  • Interactive rendering only happens in GUI hosts that support MCP Apps (Claude Desktop, the claude.ai web app, VS Code GitHub Copilot). A terminal CLI like Claude Code can't render the panel and always shows the text result — this is expected, not a fault.
  • Hosts without MCP Apps support keep getting detect_clashes's normal text result — nothing changes for them.
  • The stdio connection and the existing Revit add-in are unaffected; no reinstall or reconfiguration is needed.

See docs/MIGRATION_GUIDE.md for the full MCP 2026-07-28 upgrade notes.

Architecture

text
AI Client  Claude Desktop / Claude Code / Gemini CLI / VS Code Copilot / Antigravity        |        | stdio        vMCP Server  Node.js / TypeScript  MCP-Server/build/index.js        |        | WebSocket ws://localhost:8964        vRevit Add-in  C# / Revit API  MCP/Application.cs  MCP/Core/SocketService.cs  MCP/Core/ExternalEventManager.cs        |        vAutodesk Revit

External AI clients do not need an API key inside this repository. Their account and authorization are managed by the AI client itself. Only an embedded Revit chat feature that directly calls an AI API would need an API key.

Requirements

ItemRequirement
OSWindows 10 or later
RevitAutodesk Revit 2022, 2023, 2024, 2025, 2026
.NET.NET Framework 4.8 for Revit 2022-2024; .NET 8 for Revit 2025-2026
Node.jsLTS, preferably 20.x or later

One-Click Setup

Recommended for new users:

powershell
.\scripts\setup.ps1

For AI agents or non-interactive setup:

powershell
powershell -ExecutionPolicy Bypass -File scripts/setup.ps1 -NonInteractive -RevitVersions "2024,2025"

The setup script checks prerequisites, installs dependencies, builds the MCP server, builds and deploys the Revit add-in, and helps configure common AI clients.

Install from MCP Registry

The MCP server is published on the MCP Registry as io.github.shuotao/revit-mcp-server (npm package @shuotao/revit-mcp-server). Run it directly with:

bash
npx -y @shuotao/revit-mcp-server

Note: this npm package is only the Node stdio bridge. The C# Revit add-in (MCP/) must still be installed separately — follow Manual Setup below for your Revit version.

Manual Setup

1. Build the MCP Server

powershell
cd MCP-Servernpm installnpm run build

AI clients launch:

text
node MCP-Server/build/index.js

2. Build the Revit Add-in

Choose the configuration that matches your Revit version:

powershell
cd MCPdotnet build -c Release.R22 RevitMCP.csproj   # Revit 2022dotnet build -c Release.R23 RevitMCP.csproj   # Revit 2023dotnet build -c Release.R24 RevitMCP.csproj   # Revit 2024dotnet build -c Release.R25 RevitMCP.csproj   # Revit 2025dotnet build -c Release.R26 RevitMCP.csproj   # Revit 2026

Expected output:

text
MCP/bin/Release.R{YY}/RevitMCP.dll

Example for Revit 2024:

text
MCP/bin/Release.R24/RevitMCP.dll

3. Deploy the Add-in

Recommended:

powershell
# Pick the Revit version explicitly. With several installed and no -Version, the script asks;# in -NonInteractive mode it fails rather than guessing (it never silently picks the highest)..\scripts\install-addon.ps1 -Version 2024
# Deploy to every installed version that has a matching build.\scripts\install-addon.ps1 -All

The script copies every DLL in the build output (13 for R22-R24, 8 for R25-R26 — both are correct), checks the build generation matches the target Revit before copying, verifies each file by SHA256 afterwards, and rotates old backups.

For manual deployment, place the .addin file and DLL under the matching Revit Addins directory, and keep the relative assembly path in RevitMCP.addin:

xml
<Assembly>RevitMCP\RevitMCP.dll</Assembly>

Do not create version-specific .addin files, and do not hardcode absolute DLL paths.

AI Client Configuration

Project-level .mcp.json:

json
{  "mcpServers": {    "revit-mcp": {      "type": "stdio",      "command": "node",      "args": ["./MCP-Server/build/index.js"],      "env": {}    }  }}

VS Code config in .vscode/mcp.json:

json
{  "servers": {    "revit-mcp": {      "type": "stdio",      "command": "node",      "args": ["${workspaceFolder}/MCP-Server/build/index.js"],      "env": {}    }  }}

Other AI clients use the same concept: launch MCP-Server/build/index.js with node.

Config template per client:

AI ClientConfig locationTemplate
Claude Codeproject root .mcp.jsonbuilt in, works out of the box
Claude Desktop%APPDATA%\Claude\claude_desktop_config.jsonMCP-Server/claude_desktop_config.json
Gemini CLI~/.gemini/settings.jsonMCP-Server/gemini_mcp_config.json
VS Code Copilot.vscode/mcp.jsonbuilt in
AntigravityUI settingsAntigravity_MCP_Complete_Guide.md

Replace <YOUR_PROJECT_PATH> in the templates with the actual project path on your machine.

Switching Between AI Clients

The Revit-side WebSocket service holds an exclusive lock: only one AI client can be connected at a time. A second client that tries to connect is cleanly rejected (HTTP 409), not swapped in — the first connection stays stable. Multiple AI clients are therefore used by switching, not concurrently:

Before that lock check even runs, any handshake carrying a browser Origin header is rejected outright with HTTP 403. This closes a separate risk: a malicious page open in your browser could otherwise drive the add-in without your knowledge, since WebSocket handshakes aren't covered by the browser's same-origin policy. It has no settings opt-out and does not affect the MCP bridge, which never sends an Origin header.

  1. In the Revit ribbon, click the "切換/釋放連線" (Switch/Release Connection) button to release the current connection.
  2. Start or reconnect the other AI client; once its MCP server connects to localhost:8964, it takes the lock.
  3. The "MCP 設定" dialog shows which client currently holds the connection (e.g. claude-code, claude-ai).
  4. If the connection misbehaves, use the same ribbon button, or restart the MCP service from the Revit ribbon to reset it.

Startup Flow

  1. Start Revit.
  2. Open or create a Revit project.
  3. Enable the MCP service from the Revit ribbon.
  4. Confirm the Revit add-in is listening on localhost:8964.
  5. Start or restart the AI client so it loads the MCP server.
  6. Call Revit MCP tools from the AI client.

If localhost:8964 is unreachable, Revit may not be running, the MCP service may be off, the port may be occupied, or the AI client and Revit add-in may be using different port settings.

Project Structure

text
REVIT_MCP/  MCP/                         Revit Add-in (C#)    Application.cs             Revit add-in entry point    RevitMCP.csproj            Single multi-version project    RevitMCP.addin             Single add-in manifest    Core/      SocketService.cs         Revit-side WebSocket server      ExternalEventManager.cs  UI-thread execution bridge      RevitCompatibility.cs    Revit 2022-2026 compatibility helpers      CommandExecutor.cs       Main command dispatcher      Commands/*.cs            Command modules  MCP-Server/                  MCP Server (Node.js / TypeScript)    src/index.ts               stdio MCP server entry    src/socket.ts              WebSocket client to Revit    src/tools/*.ts             MCP tool definitions  domain/                      Shared BIM SOPs; do not convert to English-only  .claude/                     AI commands and skills  docs/                        Human-facing docs and public knowledge site  scripts/                     Setup, deployment, QA/QC scripts  log/                         Append-only session and commit logs

AI Docs and Human Docs

TypeLocationRule
AI-onlyCLAUDE.md, .claude/commands/, .claude/skills/English-first to avoid mojibake
Human-facingREADME.md, README.zh-TW.md, docs/, scripts/README.mdMatch the reader's language
Shareddomain/*.md, log/README.mdDomain files must remain Chinese-readable and must not become English-only
Historicaldocs/_archive/**, old logsPreserve by default

See docs/DOCUMENT_AUDIENCE_INVENTORY.md.

Domain, Skill, and Tool Responsibilities

  • domain/*.md: BIM SOPs, regulatory logic, and calculation methods. Shared by humans and AI.
  • .claude/skills/*/SKILL.md: AI workflow orchestration.
  • MCP-Server/src/tools/*.ts: MCP tool definitions and input schemas.
  • MCP/Core/Commands/*.cs: Revit API implementation.

If a Domain file and a Skill disagree on method, the Domain file wins.

QA/QC

After documentation, tool, Domain, Skill, build, or deployment changes, run:

powershell
.\scripts\verify-qaqc.ps1 -SkipBuild -SkipDeploy

Before deployment, run a full check:

powershell
.\scripts\verify-qaqc.ps1 -Version 2024

QA/QC checks:

  • forbidden legacy files and paths
  • required file structure
  • README / CLAUDE / docs count alignment
  • Domain table forward and reverse coverage
  • local Markdown link rot
  • Domain frontmatter
  • document audience classification
  • mojibake risk in canonical docs

Troubleshooting

AI cannot find Revit tools

Check:

  1. npm run build has been run in MCP-Server.
  2. The AI client's MCP config points to the correct MCP-Server/build/index.js.
  3. The AI client has been restarted or has reloaded MCP servers.

MCP Server cannot connect to Revit

Check:

  1. Revit is running.
  2. The MCP service is enabled in the Revit ribbon.
  3. localhost:8964 is not occupied.
  4. If HTTP.sys / PID 4 is holding the port, try:
powershell
powershell -ExecutionPolicy Bypass -File scripts\release-port.ps1

Revit does not show the MCP Tools panel

Confirm the .addin file and DLL were deployed under the matching %APPDATA%\Autodesk\Revit\Addins\{version} directory, then restart Revit.

Important Rules

  • Keep one MCP/RevitMCP.csproj.
  • Keep one MCP/RevitMCP.addin.
  • Do not create version-specific .csproj or .addin files.
  • Do not create nested MCP/MCP/ directories.
  • Do not change .addin <Assembly> to an absolute path.
  • Do not convert Domain files to English-only.
  • Do not bypass the MCP server with hand-written WebSocket JSON.
  • For live Revit view, level, selection, or document state, AI must query live state in the current turn.

Document Navigation

DocumentPurpose
CLAUDE.mdMain AI agent constitution and project map
AGENTS.mdRedirect to CLAUDE.md
GEMINI.mdRedirect to CLAUDE.md
README.zh-TW.mdTraditional Chinese README
CONTRIBUTING.mdContribution guide
CHANGELOG.mdRelease history
domain/README.mdDomain SOP catalog
domain/lessons.mdProject lessons
.claude/skills/AI skills
.claude/commands/AI slash commands
scripts/README.mdScript documentation
docs/DOCUMENT_AUDIENCE_INVENTORY.mdDocument audience inventory
docs/DOCS_STRUCTURE.mdDocs directory guide
log/README.mdLog append rules

License

MIT License

来源:README.md,提交 93365e7

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v1.6.0最新Sep 16, 2026

评分

已满足适用检查项的 40%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分

    请在仓库或注册中心条目中声明许可证。