Revit API MCP について
Revit API MCP は、LLM が Revit API のドキュメントにアクセスできるようにする MCP サーバーで、Revit の開発者を主な対象としています。rvtdocs.com と revitapidocs.com のドキュメントを検索し、任意で The Building Coder ブログのセマンティック検索も利用できます。API の誤った推測を減らすことを目的としています。
主な機能
- 01Revit API のクラス、メソッド、プロパティの検索
- 02URL または名前によるドキュメントページの取得
- 03The Building Coder ブログのセマンティック検索
- 04ドキュメント関連の 4 つのツール
活用シーン
- 01Revit API のクラスやメソッドの使い方の確認
- 02API エンティティの完全なドキュメントの取得
- 03ブログや学習資料からの API 利用例の検索
MCP 対応
MCP クライアントに対して search-docs、retrieve-doc、retrieve-docs、search-library の 4 つのツールを公開する MCP サーバーです。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Revit API MCP サーバー
概要
Revit API はあまりに膨大な範囲をカバーしているため、AI はしばしばクラス、メソッド、プロパティ、さらには名前空間全体をハルシネーションしてしまいます。さらに、有用ではあるものの非公式または一般的でない API の使い方はあまりにニッチなため、AI はそれをまったく知りません。これを抑えるために、この MCP サーバーは LLM に Revit API のドキュメントやその他の関連コンテンツへのアクセスを提供します(Rvt_Docs_Tbc_Embedder を参照してください)。内部的には rvtdocs.com と revitapidocs.com の両方を使用し、有効にすれば Building Coder Blog も使用します。
MCP クライアントに Revit API ドキュメントがあるものについてどう書かれているかを尋ねるだけで、複数のツールを組み合わせて API ドキュメントを自力で探索します。
機能
- Revit API の検索: Revit API ドキュメント内でクラス、メソッド、プロパティ(または任意の API エンティティ)を検索します。
- ドキュメントへのアクセス: API エンティティのドキュメントページの内容を、URL またはエンティティ名のいずれかを介して取得します。
- TBC ブログの検索/アクセス: The Building Coder ブログの埋め込みのベクトル空間に対してセマンティック検索を実行します。
機能(予定)
- コード例: Revit API の使用例を取得し、アクセス可能にします。RevitSdkSamples を参照してください。あるいは、ricuan-io、Nice3point、chuongmep、kilkellym、そしてもちろん jeremytammik らのリポジトリのように、リポジトリ全体を対象にすることも考えられます。
- その他のリソース: ベクトルストアに他のコンテンツを追加します。候補としては、tbc 関連の PDF、さまざまなブログ記事、Autodesk University のリソースなどがあります。
- キャッシュ(可能性は低い): API ドキュメントサイトへのトラフィックを減らすためにレスポンスをキャッシュします。
ツール
このリポジトリは、Revit API ドキュメントを扱うための 4 つの MCP ツールを提供します。
-
search-docs- Revit API ドキュメントを検索し、クエリに一致するエンティティを見つけます。エンティティ名、説明、名前空間、型、およびさらなる探索のための URL スラッグを返します(ただしドキュメント自体は返しません)。 -
retrieve-doc- URL スラッグを使用して、単一の Revit API ドキュメントページを取得します。検索操作で URL スラッグを取得した後に使用してください。 -
retrieve-docs- 検索クエリに基づいて、複数の Revit API エンティティの完全なドキュメントコンテンツを取得します。検索結果だけでなく、完全なドキュメントコンテンツが必要な場合に便利です。 -
search-library- ブログ記事、コード例、PDF、実践的なガイドなど、Revit API 学習リソースの包括的なライブラリを検索します。セマンティック検索のために OpenAI のベクトルストアを利用しています。
セットアップ
Releases からお使いの OS 用の実行ファイルをダウンロードしてください。あるいは、deno task compile を使用してソースからクローンしてビルドすることもできます。この実行ファイルを、ファイルシステム上の適切な場所に追加してください。Windows では <username>/bin/ が良い慣例ですが、どこに置いてもかまいません。
ターミナルで path\to\executable -h を実行すると、ヘルプメニューが表示されます。参考までに、この実行ファイルは、ヘルプメニューと、mcp 設定に追加するコマンドのテスト以外では、ターミナルで実行しても役に立ちません。
省略版ヘルプメニュー
MCP サーバーを使用するには、お使いの MCP クライアントと OS に応じた mcp 設定に実行ファイルを追加してください。
{
"mcpServers": {
"revit-api-docs (macos-arm64)": {
"command": "path/to/Rvt_Docs_MCP-macos-arm64"
},
"revit-api-docs (macos-x64)": {
"command": "path/to/Rvt_Docs_MCP-macos-x64"
},
"revit-api-docs (windows)": {
"command": "path\\to\\Rvt_Docs_MCP-windows.exe"
},
"revit-api-docs (with search-library enabled)": {
"command": "path\\to\\Rvt_Docs_MCP-windows.exe",
"args": ["-v", "vs_xxx", "-k", "sk-proj-xxx"]
}
}
}
search-library を有効にするには、まず Rvt_Docs_Tbc_Embedder に記載されている手順に従う必要があります。その後、上記のように実行ファイルを -k(OpenAI API キー)および -v(OpenAI ベクトルストア ID)フラグ付きで実行してください。これが正しく実行されることを確認するには、ターミナルでコマンドを単独で実行してください。出力は情報量がありますが、前述のとおり、それ以外の用途では意味がありません。
開発とコントリビューション
このプロジェクトはすべてオープンです。ぜひコントリビュートしてください。正直に言うと、これまで他人が使うコードを公開したことがないため、ライセンスやプルリクエストの仕組みをよく理解していません。ですので温かく見守っていただけると助かります。どんなことでも助けていただけると嬉しいです。
ライセンスに関するもうひとつの注意点。私は rvtdocs.com と revitapidocs.com の両方の検索 API を使用しています(ネットワークコンソールから取り出しました)。この合法性については懸念していますが、これらのライセンスを見つけることができませんでした。悪意を持って何かを行うつもりはないので、これが間違っている場合は教えてください。
このプロジェクトはランタイムとして Deno を使用しています。MCP サーバーは deno task dev で簡単に実行できます。このコマンドは、localhost で mcp inspector を実行し、HMR でリポジトリを監視するように設定しています。inspector が実行するため HMR は少し遅いので、その点だけ注意してください。
ソースコードはできるだけ分かりやすくしてあるつもりですし、新しいツールの追加も歓迎します。唯一の条件は、追加のセットアップが必要な場合(たとえば Rvt_Docs_Tbc_Embedder など)、そのツールを使えるようにするための簡単なパイプラインを用意することです。
Deno を使った簡単なクロスプラットフォームのコンパイルが Github workflows で設定されています。ビルドをトリガーするには新しい git タグを作成してください。その後、git push --follow-tags でプッシュします。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。