Revit MCP について
Revit MCPは、Node.js/TypeScript製のMCPサーバーとローカルのC#アドインを介して、AIクライアントをAutodesk Revitに接続します。Revitを使うBIMエンジニアや建築家向けに、BIMワークフローや標準に基づく手順を提供します。
主な機能
- 01Revitワークフロー用の239ツール
- 02ローカルC#アドインによるRevit API操作
- 03規制や数量拾いに関するBIM手順
- 04Revit 2022~2026に対応
- 05対応するMCP Appsホストでのインタラクティブな干渉確認
活用シーン
- 01ビュー内の壁に寸法を追加
- 02カーテンウォールの立面を確認
- 03BIMの適合性と数量を検査
- 04対応するGUIホストで干渉を確認
MCP 対応
MCPサーバーはクライアントからのツール呼び出しをローカルのRevitアドインに転送し、アドインが該当するRevit APIワークフローを実行します。クライアントとサーバー間はstdio、アドインとはローカルのWebSocketで接続します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
167掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| pipeId | number | はい | パイプ継手の要素 ID |
| familyName | string | はい | 取り付けるキャップ/フランジのファミリ名 |
詳細
Revit MCP - AIによるRevitの操作
英語 | 繁體中文
Revit MCPを使うと、AIクライアントからModel Context Protocol(MCP)経由でAutodesk Revitのツールを呼び出せます。MCP サーバーはツール呼び出しをローカルのRevitアドインに転送し、アドインが対応するRevit APIワークフローを実行します。
- デモ動画:Revit MCP - AIによるBIMワークフローのデモ
- ナレッジサイト:https://shuotao.github.io/REVIT_MCP_study/
- デフォルトのWebSocketポート:
8964
これは何ですか?
自然な言葉でRevitに指示できます。AIクライアントに「このビューのすべての壁に寸法を記入して」や「カーテンウォールの立面図を確認して」と頼むと、Revitが実行します。239個のMCPツールと、90個の専門的なBIM標準作業手順書(SOP)(建築基準、数量積算、コンプライアンスチェック)を活用します。
対象ユーザー: Revitを使い、AIを活用した標準準拠のワークフローを求めるBIMエンジニアや建築家です。Windows上でRevit(2022~2026)を使用でき、アドインをインストールできることが必要です。
クイックスタート(3ステップ)
- Revitアドインをインストールします。 C#アドインをビルドしてデプロイします。手動セットアップを参照してください。Revitと実際に通信するのはこちらの部分です。
- AIクライアントをMCP サーバーに接続します。 リポジトリをクローンする必要はありません。npmから直接実行できます。
{ "mcpServers": { "revit-mcp": { "command": "npx", "args": ["-y", "@shuotao/revit-mcp-server"] } } } - Revitを開き、リボンでMCPサービスを有効にして、指示を始めます。 詳細なセットアップ:AIクライアントの設定。
ご質問や、作成したものを紹介したい場合はこちら → ディスカッション
現在のプロジェクト数
| 項目 | 数 | ソース |
|---|---|---|
| 実行時MCPツール | 239 | MCP-Server/src/tools/index.tsのregisterRevitTools() |
| ドメインSOPファイル | 94 | README.mdを除くdomain/*.mdとdomain/references/*.md |
| Claudeスキル | 61 | .claude/skills/*/SKILL.md |
これらの数が変わった場合は、CLAUDE.md、README.zh-TW.md、このファイル、docs/DOCUMENT_AUDIENCE_INVENTORY.mdを更新し、次を実行してください。
.\scripts\verify-qaqc.ps1 -SkipBuild -SkipDeploy
新機能:インタラクティブな干渉ビューアー(MCP Apps)
detect_clashesは、MCP Apps拡張機能(io.modelcontextprotocol/ui)を使って、会話内にインタラクティブな干渉レビューUIを表示できるようになりました。これには、この拡張機能に対応したMCPホストが必要です。この機能は既存機能への追加のみです。
- インタラクティブな表示は、MCP Appsに対応したGUIホスト(Claude Desktop、claude.aiウェブアプリ、VS Code GitHub Copilot)でのみ行われます。Claude CodeのようなターミナルCLIではパネルを表示できず、常にテキスト結果が表示されます。これは想定どおりの動作であり、不具合ではありません。
- MCP Appsに対応していないホストでは、従来どおり
detect_clashesの通常のテキスト結果が表示されます。動作に変更はありません。 - stdio接続と既存のRevitアドインへの影響はありません。再インストールや再設定は不要です。
MCP 2026-07-28へのアップグレードに関する詳細は、docs/MIGRATION_GUIDE.mdを参照してください。
アーキテクチャ
AI Client
Claude Desktop / Claude Code / Gemini CLI / VS Code Copilot / Antigravity
|
| stdio
v
MCP Server
Node.js / TypeScript
MCP-Server/build/index.js
|
| WebSocket ws://localhost:8964
v
Revit Add-in
C# / Revit API
MCP/Application.cs
MCP/Core/SocketService.cs
MCP/Core/ExternalEventManager.cs
|
v
Autodesk Revit
外部AIクライアントは、このリポジトリ内にAPIキーを用意する必要はありません。アカウントと認証はAIクライアント自体が管理します。AI APIを直接呼び出す埋め込み型Revitチャット機能のみ、APIキーが必要です。
要件
| 項目 | 要件 |
|---|---|
| OS | Windows 10以降 |
| Revit | Autodesk Revit 2022、2023、2024、2025、2026 |
| .NET | Revit 2022~2024では.NET Framework 4.8、Revit 2025~2026では.NET 8 |
| Node.js | LTS版、できれば20.x以降 |
ワンクリックセットアップ
初めて使う方におすすめです。
.\scripts\setup.ps1
AIエージェントまたは非対話型のセットアップの場合:
powershell -ExecutionPolicy Bypass -File scripts/setup.ps1 -NonInteractive -RevitVersions "2024,2025"
セットアップスクリプトは、前提条件の確認、依存関係のインストール、MCP サーバーのビルド、Revitアドインのビルドとデプロイを行い、一般的なAIクライアントの設定をサポートします。
MCP Registry からインストール
MCP サーバーは MCP Registry に io.github.shuotao/revit-mcp-server(npm パッケージ @shuotao/revit-mcp-server)として公開されています。次のコマンドで直接実行できます。
npx -y @shuotao/revit-mcp-server
注:この npm パッケージは Node の stdio ブリッジのみです。C# Revit アドイン(MCP/)は別途インストールする必要があります。お使いの Revit バージョンに合わせて、以下の手動セットアップに従ってください。
手動セットアップ
1. MCP サーバーをビルドする
cd MCP-Server
npm install
npm run build
AI クライアントは次のコマンドを起動します。
node MCP-Server/build/index.js
2. Revit アドインをビルドする
お使いの Revit バージョンに合った構成を選択してください。
cd MCP
dotnet build -c Release.R22 RevitMCP.csproj # Revit 2022
dotnet build -c Release.R23 RevitMCP.csproj # Revit 2023
dotnet build -c Release.R24 RevitMCP.csproj # Revit 2024
dotnet build -c Release.R25 RevitMCP.csproj # Revit 2025
dotnet build -c Release.R26 RevitMCP.csproj # Revit 2026
出力例:
MCP/bin/Release.R{YY}/RevitMCP.dll
Revit 2024 の例:
MCP/bin/Release.R24/RevitMCP.dll
3. アドインをデプロイする
推奨:
# 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
このスクリプトは、ビルド出力内のすべての DLL(R22~R24 は 13 個、R25~R26 は 8 個。いずれも正しい数です)をコピーし、コピー前にビルド世代が対象の Revit と一致することを確認します。その後、各ファイルの SHA256 を検証し、古いバックアップをローテーションします。
手動でデプロイする場合は、.addin ファイルと DLL を対応する Revit Addins ディレクトリに配置し、RevitMCP.addin 内の相対アセンブリパスを維持してください。
<Assembly>RevitMCP\RevitMCP.dll</Assembly>
バージョン固有の .addin ファイルを作成したり、DLL の絶対パスをハードコードしたりしないでください。
AI クライアントの設定
プロジェクトレベルの .mcp.json:
{
"mcpServers": {
"revit-mcp": {
"type": "stdio",
"command": "node",
"args": ["./MCP-Server/build/index.js"],
"env": {}
}
}
}
.vscode/mcp.json 内の VS Code 設定:
{
"servers": {
"revit-mcp": {
"type": "stdio",
"command": "node",
"args": ["${workspaceFolder}/MCP-Server/build/index.js"],
"env": {}
}
}
}
その他の AI クライアントでも同じ仕組みを使用します。node で MCP-Server/build/index.js を起動してください。
クライアントごとの設定テンプレート:
| AI クライアント | 設定場所 | テンプレート |
|---|---|---|
| Claude Code | プロジェクトルートの .mcp.json | 組み込み済み。そのまま使用できます |
| Claude Desktop | %APPDATA%\Claude\claude_desktop_config.json | MCP-Server/claude_desktop_config.json |
| Gemini CLI | ~/.gemini/settings.json | MCP-Server/gemini_mcp_config.json |
| VS Code Copilot | .vscode/mcp.json | 組み込み済み |
| Antigravity | UI 設定 | Antigravity_MCP_Complete_Guide.md |
テンプレート内の <YOUR_PROJECT_PATH> を、お使いのマシン上の実際のプロジェクトパスに置き換えてください。
AI クライアントの切り替え
Revit 側の WebSocket サービスは排他的なロックを保持するため、同時に接続できる AI クライアントは 1 つだけです。2 つ目のクライアントが接続を試みると、置き換えられるのではなく、適切に拒否されます(HTTP 409)。最初の接続は維持されます。そのため、複数の AI クライアントは同時ではなく、切り替えて使用します。
このロックの確認が実行される前に、ブラウザーの Origin ヘッダーを含むハンドシェイクはすべて HTTP 403 で拒否されます。これにより、ブラウザーで開いた悪意のあるページが、ユーザーに知られないままアドインを操作できてしまう別のリスクを防ぎます。WebSocket のハンドシェイクはブラウザーの同一オリジンポリシーの対象ではないためです。この拒否を無効にする設定はなく、Origin ヘッダーを送信しない MCP ブリッジには影響しません。
- Revit リボンで**「切換/釋放連線」(接続の切り替え/解放)**ボタンをクリックし、現在の接続を解放します。
- 別の AI クライアントを起動するか再接続します。その MCP サーバーが
localhost:8964に接続すると、ロックを取得します。 - **「MCP 設定」**ダイアログに、現在接続を保持しているクライアント(例:
claude-code、claude-ai)が表示されます。 - 接続に問題がある場合は、同じリボンボタンを使用するか、Revit リボンから MCP サービスを再起動してリセットしてください。
起動の流れ
- Revit を起動します。
- Revit プロジェクトを開くか、新規作成します。
- Revit リボンから MCP サービスを有効にします。
- Revit アドインが
localhost:8964で待ち受けていることを確認します。 - AI クライアントを起動または再起動し、MCP サーバーを読み込みます。
- AI クライアントから Revit MCP ツールを呼び出します。
localhost:8964 に接続できない場合、Revit が起動していない、MCP サービスがオフになっている、ポートが使用中である、または AI クライアントと Revit アドインで異なるポート設定を使用している可能性があります。
プロジェクト構成
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 向けドキュメントと人間向けドキュメント
| 種類 | 場所 | ルール |
|---|---|---|
| AI 専用 | CLAUDE.md、.claude/commands/、.claude/skills/ | 文字化けを避けるため、英語を優先します |
| 人間向け | README.md、README.zh-TW.md、docs/、scripts/README.md | 読者の言語に合わせます |
| 共有 | domain/*.md、log/README.md | Domain ファイルは中国語で読める状態を保ち、英語のみの内容にしてはいけません |
| 履歴 | docs/_archive/**、古いログ | 原則としてそのまま保持します |
docs/DOCUMENT_AUDIENCE_INVENTORY.md を参照してください。
Domain、Skill、Tool の責務
domain/*.md:BIM の SOP、規制ロジック、計算方法を記載します。人間と AI が共有します。.claude/skills/*/SKILL.md:AI のワークフローを調整します。MCP-Server/src/tools/*.ts:MCP ツールの定義と入力スキーマを記載します。MCP/Core/Commands/*.cs:Revit API の実装です。
Domain ファイルと Skill で方法が異なる場合は、Domain ファイルを優先します。
QA/QC
ドキュメント、ツール、Domain、Skill、ビルド、デプロイに変更を加えた後、次を実行してください。
.\scripts\verify-qaqc.ps1 -SkipBuild -SkipDeploy
デプロイ前に、完全なチェックを実行してください。
.\scripts\verify-qaqc.ps1 -Version 2024
QA/QC では次の項目をチェックします。
- 使用禁止のレガシーファイルとパス
- 必須のファイル構成
- README/CLAUDE/docs の件数の整合性
- Domain テーブルの順方向および逆方向の網羅性
- ローカル Markdown リンク切れ
- Domain のフロントマター
- ドキュメントの対象読者分類
- 正式ドキュメントの文字化けリスク
トラブルシューティング
AI が Revit ツールを見つけられない
次を確認してください。
MCP-Serverでnpm run buildを実行済みであること。- AI クライアントの MCP 設定が、正しい
MCP-Server/build/index.jsを参照していること。 - AI クライアントを再起動したか、MCP サーバーを再読み込みしたこと。
MCP Server が Revit に接続できない
次を確認してください。
- Revit が起動していること。
- Revit のリボンで MCP サービスが有効になっていること。
localhost:8964が使用されていないこと。- HTTP.sys/PID 4 がポートを占有している場合は、次を試してください。
powershell -ExecutionPolicy Bypass -File scripts\release-port.ps1
Revit に MCP Tools パネルが表示されない
.addin ファイルと DLL が、対応する %APPDATA%\Autodesk\Revit\Addins\{version} ディレクトリにデプロイされていることを確認してから、Revit を再起動してください。
重要なルール
MCP/RevitMCP.csprojは 1 つだけにしてください。MCP/RevitMCP.addinは 1 つだけにしてください。- バージョン固有の
.csprojまたは.addinファイルを作成しないでください。 - ネストされた
MCP/MCP/ディレクトリを作成しないでください。 .addinの<Assembly>を絶対パスに変更しないでください。- Domain ファイルを英語のみの内容にしないでください。
- 手書きの WebSocket JSON で MCP サーバーを迂回しないでください。
- 現在のターンにおける Revit のビュー、レベル、選択、またはドキュメントの状態については、AI がライブ状態を照会する必要があります。
ドキュメントの案内
| ドキュメント | 目的 |
|---|---|
| CLAUDE.md | AI エージェント向けの基本規約とプロジェクトマップ |
| AGENTS.md | CLAUDE.md へのリダイレクト |
| GEMINI.md | CLAUDE.md へのリダイレクト |
| README.zh-TW.md | 繁体字中国語の README |
| CONTRIBUTING.md | コントリビューションガイド |
| CHANGELOG.md | リリース履歴 |
| domain/README.md | Domain SOP カタログ |
| domain/lessons.md | プロジェクトの教訓 |
| .claude/skills/ | AI スキル |
| .claude/commands/ | AI スラッシュコマンド |
| scripts/README.md | スクリプトのドキュメント |
| docs/DOCUMENT_AUDIENCE_INVENTORY.md | ドキュメントの対象読者一覧 |
| docs/DOCS_STRUCTURE.md | docs ディレクトリのガイド |
| log/README.md | ログ追記ルール |
ライセンス
MIT ライセンス
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。