CAT
/MCP
SkillsMCPMarketplacesDigestToolsAdvertise

This week in Claude

Every Monday: Claude Code, Agent SDK, MCP, and the Anthropic platform moves worth your time.

Skills by Category
Frontend DevelopmentBackend & APIsTesting & QASecurityDevOps & CI/CDGit & Pull RequestsDocumentationCode Review & QualityAI & Agent BuildingSkill Development
MCP Servers by Category
Sales & MarketingWeb & Browser AutomationDatabasesAI & LLM ToolsCloud & InfrastructureCommunication & MessagingDeveloper ToolsDesign & CreativeDocuments & KnowledgeSearch & Web Crawling
Marketplaces by Category
AI Agents & OrchestrationLLM IntegrationDevelopment ToolsFrontend & UIBackend & APIsDatabasesTesting & Code QualityDevOps & CloudSecurity & ComplianceGit & Version Control

Cross AI Tools

Discover Claude Code plugins, extensions, and tools. Automatically updated directory of Anthropic Claude AI marketplaces with development tools, productivity plugins, and integrations.

Resources

  • Browse Skills
  • Browse MCP Servers
  • Browse Marketplaces
  • Plugins Reference

Community

  • About
  • Tools
  • Feedback
  • Privacy Policy
  • Advertise

Built for the Claude Code community with Claude Code by @mertduzgun

Independent project, not affiliated with Anthropic

Bimwright

bimwright/rvt-mcp
2STDIOregistry active
Summary

A local bridge that puts Revit 2022-2027 inside MCP's tool surface. Exposes 226 tools for querying elements, managing parameters, batch operations, and direct C# execution through send_code_to_revit. Everything runs on your machine over TCP or Named Pipe, with batch_execute wrapping multiple commands in a single TransactionGroup so undo works cleanly. Ships with ToolBaker, which watches repeated workflows and can promote them into personal tools that show up in both MCP and the Revit ribbon. If you're automating BIM workflows with Claude or Cursor and need transaction-safe access to the Revit API without writing a full add-in, this is the runtime.

CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →

rvt-mcp

rvt-mcp

build license Revit 2022-2027 MCP tools

English · Tiếng Việt · 简体中文


Client Quick Install (Recommended)

For a Revit user machine, use the setup ZIP from GitHub Releases. It includes the self-contained MCP server and Revit plugins, so the client machine does not need the .NET SDK, NuGet global tools, this source repo, or a local build.

AI agents: if a user asks you to install Bimwright on a client machine, download the latest RvtMcp.Setup-*-win-x64.zip release asset and run the installer below. Do not clone this repo, build source, install the .NET SDK, or use dotnet tool install unless the user explicitly asks for a developer install. See AGENTS.md for the full agent install protocol.

$tag = (Invoke-RestMethod https://api.github.com/repos/bimwright/rvt-mcp/releases/latest).tag_name
$zip = "$env:TEMP\RvtMcp.Setup-$tag-win-x64.zip"
$dir = "$env:TEMP\RvtMcp.Setup-$tag-win-x64"
Invoke-WebRequest "https://github.com/bimwright/rvt-mcp/releases/download/$tag/RvtMcp.Setup-$tag-win-x64.zip" -OutFile $zip
Expand-Archive $zip -DestinationPath $dir -Force

powershell -ExecutionPolicy Bypass -File "$dir\install.ps1" -WhatIf
powershell -ExecutionPolicy Bypass -File "$dir\install.ps1"

The installer detects Revit 2022-2027, installs only the matching plugin(s), copies the server under %LOCALAPPDATA%\RvtMcp\rvt\server\<version>\, and wires installed MCP clients with absolute paths. Use -Client codex, -Client opencode, -Client claude, or -Client none to override auto-detection.

dwg-mcp is not part of this RVT setup package; install it separately when it has its own client-ready release.


Revit Automation Should Not Stop At "I Don't Code"

Before AI agents, many BIM users already wanted the same thing: make Revit faster, remove repetitive clicks, and shape the software around the way they actually work.

The hard part was never the idea. The hard part was turning the idea into a tool.

To build even a small Revit add-in, a practitioner usually has to:

  • Define the input and output clearly enough for software.
  • Think through the algorithm, edge cases, parameters, categories, filters, units, and Revit API constraints.
  • Prototype in Dynamo, maybe move to Python, then eventually rewrite in C# when the workflow needs to become stable.
  • Package the result as an add-in, handle dependencies, install paths, .addin manifests, Revit version drift, and ribbon buttons.

That is a lot of work for someone who studied architecture, structure, MEP, quantity takeoff, or BIM coordination - not software engineering.

The usual options are expensive in different ways:

  • Spend months learning enough coding to maintain your own tools.
  • Pay someone to build custom add-ins.
  • Buy fixed add-ins and adapt your workflow to the vendor's assumptions.
  • Stay with manual work because the automation path is too much friction.

rvt-mcp exists to compress that loop.

It gives AI agents a safe local bridge into Revit, then lets repeated workflows evolve into personal tools through ToolBaker. The goal is not one universal add-in for everyone. Revit serves too many disciplines, offices, standards, and habits for that. The goal is a system where each practitioner can grow a toolkit that matches their own work.

Personal automation should be personal.


What rvt-mcp Is

rvt-mcp is a local MCP gateway for Autodesk Revit 2022-2027.

It has two parts:

  • RvtMcp.Server: a .NET 8 MCP server launched by Claude, Cursor, Codex, OpenCode, Cline, VS Code Copilot, or another stdio MCP client.
  • RvtMcp.Plugin: a Revit add-in shell for each supported Revit year, running inside Revit and executing commands on the Revit UI thread.

The agent talks MCP. The server talks to the plugin over localhost TCP or Named Pipe. The plugin talks to the Revit API.

Your model stays on your machine.


Why It Matters

AI agents make it possible for BIM users to describe intent instead of writing code by hand. But intent alone is not enough. Revit automation still needs a runtime that understands transactions, parameters, units, selection, model state, version drift, safety, and rollback.

rvt-mcp is that runtime.

It is designed around four ideas:

  • Local first. No cloud bridge is required. Revit, the plugin, MCP server, logs, and ToolBaker storage all live on the user's machine.
  • Reversible by default. Mutating workflows can run through batch_execute, wrapping multiple commands in one Revit TransactionGroup so one undo step rolls the batch back.
  • Progressively exposed. Toolsets and --read-only mode control what the agent can see and do. Weak or narrow agents do not need destructive tools.
  • Personal over generic. Adaptive ToolBaker can observe repeated local workflows, propose a personal tool, and make accepted tools available through MCP and the Revit ribbon.

This is not a black-box demo and not courseware. It is public Apache-2.0 code. Claims should be checked by building, testing, running, and reading the source.


The ToolBaker Loop

Most Revit automation dies between "good idea" and "usable add-in".

ToolBaker is the path from agent-assisted workflow to personal tool:

  1. Use the existing MCP tools to query, create, lint, inspect, or batch operations in Revit.
  2. When advanced automation is needed, call send_code_to_revit directly from the default tool surface.
  3. If adaptive bake is enabled, repeated local usage is recorded locally under %LOCALAPPDATA%\RvtMcp\.
  4. Repeated patterns become suggestions, visible through list_bake_suggestions.
  5. You explicitly accept a suggestion with accept_bake_suggestion, including the tool name, schema, and output choice.
  6. Accepted tools become callable through list_baked_tools / run_baked_tool and available from the Revit ribbon runtime cache.

Adaptive bake is off by default. It is for users who want their own local usage data to shape their own tools.


Architecture

+---------------------------+
| AI Client                 |
| Claude / Cursor / Codex   |
+---------------------------+
              |
              | stdio MCP
              v
+---------------------------+
| RvtMcp.Server      |
| .NET 8 / C#               |
+---------------------------+
              |
              | TCP (R22-R24)
              | Named Pipe (R25-R27)
              v
+---------------------------+
| Plugin Shell              |
| thin add-in per Revit yr  |
+---------------------------+
              |
              | shared command core
              | from `src/shared/`
              v
+---------------------------+
| ExternalEvent Marshal     |
| execution -> Revit UI     |
+---------------------------+
              |
              v
+---------------------------+
| Revit API                 |
+---------------------------+
              |
              v
+---------------------------+
| Model / Transaction /     |
| Undo                      |
+---------------------------+

rvt-mcp is a full C# MCP stack. The MCP server, per-version Revit plugin shells, transport bridge, command handlers, DTO mapping, and ToolBaker pipeline are all written in C# using the official MCP C# SDK.

There is no Node.js sidecar on the Revit machine.

The version split is explicit at the edge: one thin plugin shell per Revit year, all compiling the same src/shared/ source glob. See ARCHITECTURE.md for the threading, transport, DTO, and ToolBaker details.


Current State

rvt-mcp is usable but still young.

  • Compile gate covers Revit R22-R27 plugin shells.
  • Unit tests cover pure .NET logic, tool-surface snapshots, ToolBaker storage/policy paths, config, logging, privacy, and batching behavior.
  • Core runtime coverage exists for R23-R26.
  • Accepted ToolBaker list/run/ribbon path has smoke evidence on R22, R26, and R27.
  • Fresh-machine install testing is tracked in docs/testing/fresh-install-checklist.md.

Treat it like serious open-source infrastructure: test it on your own environment before trusting it on production models.


Project Structure

rvt-mcp/
├── src/
│   ├── RvtMcp.sln         # Solution (server + 6 plugin shells)
│   ├── server/                   # RvtMcp.Server - stdio MCP server
│   ├── shared/                   # Source glob shared by every plugin shell
│   │   ├── Handlers/             # One file per Revit command handler
│   │   ├── Commands/             # Revit ribbon commands
│   │   ├── ToolBaker/            # Baked-tool registry/runtime/policy
│   │   ├── Transport/            # TCP + Named Pipe abstraction
│   │   ├── Infrastructure/       # Dispatcher, schema validation, ExternalEvent marshal
│   │   └── Security/             # Auth token, redaction, secret masking
│   ├── plugin-r22/               # Revit 2022 shell - .NET 4.8, TCP
│   ├── plugin-r23/               # Revit 2023 shell - .NET 4.8, TCP
│   ├── plugin-r24/               # Revit 2024 shell - .NET 4.8, TCP
│   ├── plugin-r25/               # Revit 2025 shell - .NET 8, Named Pipe
│   ├── plugin-r26/               # Revit 2026 shell - .NET 8, Named Pipe
│   └── plugin-r27/               # Revit 2027 shell - .NET 10, Named Pipe
├── tests/                        # xUnit, tool snapshots, policy/privacy tests
├── benchmarks/                   # Weak-model accuracy harness
├── scripts/                      # install, uninstall, plugin ZIP staging
├── docs/                         # Architecture, roadmap, ToolBaker, testing notes
├── server.json                   # MCP registry manifest
├── smithery.yaml                 # Smithery directory manifest
├── AGENTS.md                     # Agent-led install guide for MCP clients
└── ARCHITECTURE.md               # Deep dive on runtime architecture

Six plugin shells compile from the same src/shared/ glob. Year-specific #if fences handle Revit API drift such as ElementId.IntegerValue moving to .Value in newer versions.


Install

Migration from Bimwright.Rvt.* (v0.3.0 and earlier)

v0.4.0 renames the codebase from Bimwright.Rvt.* to RvtMcp.*. The GitHub repo (bimwright/rvt-mcp) and brand are unchanged; only file names, package IDs, and folder paths change.

If you have v0.3.0 or earlier installed:

  1. Close all running Revit instances.

  2. Run the migration script:

    pwsh scripts/uninstall-old.ps1
    

    This removes:

    • %APPDATA%\Autodesk\Revit\Addins\<year>\Bimwright\ (plugin DLLs)
    • %APPDATA%\Autodesk\Revit\Addins\<year>\Bimwright.R<year>.addin (manifests)
    • %LOCALAPPDATA%\Bimwright\rvt\server\ (server install root)

    It preserves %LOCALAPPDATA%\Bimwright\baked\, journal\, firm-profiles\, and *.log files — these contain user data and are migrated to %LOCALAPPDATA%\RvtMcp\ on first launch of v0.4.0.

  3. Install v0.5.0:

    dotnet tool update -g Bimwright.Rvt.Server --version 0.3.0   # ensure clean uninstall first
    dotnet tool uninstall -g Bimwright.Rvt.Server
    dotnet tool install -g RvtMcp.Server --version 0.5.0
    
  4. Re-wire your MCP client. Old MCP entries bimwright-rvt-r22..bimwright-rvt-r27 are auto-removed by install.ps1. The new entry is rvt-mcp (single, auto-detects Revit version).

The old NuGet package Bimwright.Rvt.Server is deprecated at 0.3.0 with a redirect note pointing to RvtMcp.Server.

Client setup ZIP

Download RvtMcp.Setup-v<version>-win-x64.zip from GitHub Releases, extract it, then run:

powershell -ExecutionPolicy Bypass -File .\install.ps1 -WhatIf   # preview files and config edits
powershell -ExecutionPolicy Bypass -File .\install.ps1           # install server, plugins, and detected client config entries

Useful installer options:

powershell -ExecutionPolicy Bypass -File .\install.ps1 -Client codex      # wire only Codex
powershell -ExecutionPolicy Bypass -File .\install.ps1 -Client opencode   # wire only OpenCode
powershell -ExecutionPolicy Bypass -File .\install.ps1 -Client claude     # wire Claude Code/Desktop configs if present
powershell -ExecutionPolicy Bypass -File .\install.ps1 -Client none       # install files without MCP client config edits
powershell -ExecutionPolicy Bypass -File .\install.ps1 -Years 2024        # force a Revit year if registry detection is unavailable

The setup ZIP contains a self-contained rvt-mcp.exe, so the client machine does not need .NET 8 SDK, dotnet tool install, or this repository. Config entries use the absolute installed path, so %USERPROFILE%\.dotnet\tools and PATH are not involved. The installer deploys plugins for every detected Revit year, then writes one auto-detect MCP entry named rvt-mcp.

Verify

  1. Open Revit 2022-2027 and a model.
  2. Use the BIMwright ribbon panel to start/toggle the MCP plugin.
  3. In the MCP client, run tools/list.
  4. Call get_current_view_info.

Expected response shape:

{ "viewName": "Level 1", "viewType": "FloorPlan", "levelName": "Level 1", "scale": 100 }

Do not claim an install is complete until the MCP client can list tools and call Revit successfully.

Uninstall

To remove plugin, self-contained server, legacy .NET global tool if present, host-config entries, discovery files, logs, and ToolBaker cache in one pass:

powershell -ExecutionPolicy Bypass -File .\uninstall.ps1 -WhatIf
powershell -ExecutionPolicy Bypass -File .\uninstall.ps1 -Yes

The setup ZIP also includes uninstall-all.ps1 as an alias for the same full sweep.

Developer / legacy install

Developers can still install the server as a NuGet .NET tool and use the plugin-only bundle:

dotnet tool install -g RvtMcp.Server
powershell -ExecutionPolicy Bypass -File .\install.ps1 -SourceDir . -Client none

This path is for development and backward compatibility. Client machines should use the setup ZIP instead.


Supported MCP Clients

ClientStatusNotes
Claude Code CLIdocumentedproject .mcp.json or global ~/.claude.json
Claude Desktopdocumented%APPDATA%\Claude\claude_desktop_config.json
OpenCodescriptedinstall.ps1 -Client opencode
Codexscriptedinstall.ps1 -Client codex
Cursordocumentedproject or user mcp.json
Cline (VS Code)documentedCline MCP settings JSON
VS Code Copilotdocumentednative servers schema with type: stdio
Gemini CLIdocumentedgemini mcp add ... or settings JSON
AntigravitydocumentedGemini/Antigravity MCP config JSON

Toolsets

The full surface is 226 tools across 23 toolsets (--toolsets all). By default every toolset is on except modify and delete. Adaptive bake, when enabled, adds accepted baked tools on top; --read-only strips every write-capable toolset.

Default-on toolsets: query, create, view, schedule, families, mep, graphics, export, toolbaker, meta, lint, sheets, materials, geometry, annotation, rooms, links, parameters, organization, workflows, structural.

Opt-in toolsets (off by default): modify, delete. Enable explicitly or via --toolsets all.

Enable specific sets with --toolsets query,create,modify,meta, or --toolsets all for everything. Add --read-only to strip write-capable toolsets regardless of what was requested.

ToolsetToolsDefault
queryget current view, selected elements, available family types, material quantities, model stats, AI element filteron
creategrid, level, room, line-based, point-based, surface-based element, group from elementson
viewcreate view, sheet layout, place view on sheet, capture image, set crop/scale, activate view, show elementon
metashow_message, switch_target, batch_execute, usage stats, set project info, purge unused familieson
lintview-naming pattern analysis, correction suggestions, firm-profile detect, model warnings summaryon
schedulelist/inspect, fields/formulas/data/elements, create + add/update field, filter+sorton
modifyoperate_element, color_elements, parameter/type/workset editsoff
deletedelete_elementoff
annotationelement/category tagging, text notes, dimensions, filled regions, detail lines, callouts, keynotes, untagged/undimensioned checks, empty-tag cleanupon
exportexport_room_dataon
mepdetect_system_elementson
toolbakeraccepted-tool list/run, send-code, adaptive suggestion lifecycleon
sheetssheet creation, duplication, placeholder sheets, list sheets, titleblock parameters, place schedule, revisions, sheet renumberingon
materialslist/create/duplicate materials, material appearance/identity/structural/thermal properties, material takeoff, element assignmenton
geometryelement bounding box, element geometry, distance measurement, clash detection, raycasting, volume/area analysis, centroid, complexityon
roomsrooms, areas, spaces, boundaries, openings, room separators, finishes, auto-room creation, area taggingon
linksRevit/CAD link listing, CAD import/link, Revit link load/unload/reload, link elements, coordinates, project base pointon
parametersproject/shared parameter creation, binding/unbinding, list/export shared params, set value by GUIDon
organizationsaved selections (save/load/list/delete), select elements, view templates (list/apply/create-from-view/duplicate/delete)on
workflowsclash review, data roundtrip, model audit, naming normalization, room documentation, sheet set, takeoff report, view cleanupon
structuralstructural columns/beams/walls/foundations, rebar set + stirrup, structural loads, framing tags, connection analysison

All Tools

ToolsetToolDescription
queryget_current_view_infoActive view metadata: type, level, scale, detail level.
queryget_selected_elementsCurrently selected elements with id, name, category, type.
queryget_available_family_typesFamily types in the project, filterable by category.
queryai_element_filterFilter by category and parameter/operator, values in mm.
queryanalyze_model_statisticsElement counts grouped by category.
queryget_material_quantitiesArea and volume totals for a category.
queryget_element_detailsElement metadata, location, bounding box, workset, phase, group, and assembly ids.
queryget_element_parametersInstance parameters with storage type, display value, raw value, and data/spec ids.
queryget_type_parametersType parameters from type ids or from element ids.
querylist_project_parametersProject/shared parameter bindings, binding kind, and categories.
queryget_element_relationshipsHost, group, assembly, owner view, design option, nesting, and dependents.
querylist_groupsGroup instances with type, attached/detail metadata, and optional member ids.
queryget_group_membersMembers of a group instance with category, type, owner view, and pinned state.
querylist_assembliesAssembly instances with type, naming category, member count, and optional member ids.
queryget_assembly_membersMembers of an assembly instance with category, type, group, and workset ids.
querylist_worksetsWorksets, active workset, edit/open state, and optional element counts.
createcreate_line_based_elementWall or other line-based element.
createcreate_point_based_elementDoor, window, furniture or other point element.
createcreate_surface_based_elementFloor or ceiling from a polyline.
createcreate_levelLevel at elevation in mm.
createcreate_gridGrid line between two points in mm.
createcreate_roomRoom at a point, bound by walls.
createcreate_group_from_elementsCreate a model/detail group from two or more elements.
modifyoperate_elementSelect, hide, unhide, isolate, or set-color on IDs.
modifycolor_elementsColor-code a category by parameter value.
modifyset_element_parameter_valuesSet an instance parameter across multiple elements.
modifyset_type_parameter_valuesSet a type parameter across explicit or element-resolved types.
modifychange_element_typeChange elements to a target compatible type.
modifyassign_elements_to_worksetAssign elements to a user workset in a workshared model.
deletedelete_elementDelete by ID list. Keep off unless explicitly needed.
viewcreate_viewFloor plan or 3D view.
viewplace_view_on_sheetDrop a view onto a new or existing sheet.
viewanalyze_sheet_layoutTitle block, viewport positions, and scales in mm.
exportexport_room_dataRooms with name, number, area, perimeter, level, volume.
annotationtag_all_wallsWall-type tags at midpoint; skips already tagged.
annotationtag_all_roomsRoom tags at location point; skips already tagged.
mepdetect_system_elementsTraverse connectors from a seed and return system members.
toolbakersend_code_to_revitCompile and run ad-hoc C# inside Revit from the default tool surface.
toolbakerlist_baked_toolsList accepted personal baked tools.
toolbakerrun_baked_toolInvoke an accepted baked tool by name.
toolbakerlist_bake_suggestionsAdaptive bake only: list local suggestions.
toolbakeraccept_bake_suggestionAdaptive bake only: accept and apply a local suggestion.
toolbakerdismiss_bake_suggestionAdaptive bake only: snooze or dismiss a local suggestion.
metashow_messageTaskDialog inside Revit for connection tests or notifications.
metaswitch_targetSwitch active Revit connection when multiple versions run.
metabatch_executeRun commands atomically in one TransactionGroup.
metaanalyze_usage_patternsLocal usage stats: tool calls, sessions, errors.
lintanalyze_view_naming_patternsInfer dominant view-naming pattern and outliers.
lintsuggest_view_name_correctionsPropose corrected names for view outliers.
lintdetect_firm_profileFingerprint project naming against firm profiles.

Supported Revit Versions

RevitTarget FrameworkTransportNotes
2022.NET 4.8TCPAccepted ToolBaker path smoke-tested
2023.NET 4.8TCPCore runtime coverage
2024.NET 4.8TCPCore runtime coverage
2025.NET 8 (net8.0-windows7.0)Named PipeCore runtime coverage
2026.NET 8 (net8.0-windows7.0)Named PipeCore runtime coverage; accepted ToolBaker path smoke-tested
2027.NET 10 (net10.0-windows7.0)Named PipeAccepted ToolBaker path smoke-tested

Runtime behavior can still differ across Revit years because the Revit API changes. Custom baked C# tools should be treated as version-sensitive unless tested across the target years.


Security And Privacy

Short version: your model stays on your machine.

  • Loopback by default. TCP transport listens on 127.0.0.1; Named Pipe is local-machine scoped.
  • Per-session token handshake. Discovery files under %LOCALAPPDATA%\RvtMcp\ carry connection information and auth token.
  • Schema validation. Malformed tool calls are rejected before command handlers run.
  • Path masking. Errors returned to the model are sanitized to avoid leaking absolute paths.
  • ToolBaker controls. send_code_to_revit is available by default. Adaptive bake remains opt-in and only controls suggestion/logging features; --read-only or --disable-toolbaker removes the ToolBaker surface.
  • Local storage. Usage events, bake database, logs, and accepted-tool metadata stay under local Bimwright storage.

See SECURITY.md for disclosure and threat-model details.


Configuration

Three layers, later wins: JSON file, then env vars, then CLI args.

SettingCLIEnvJSON key
Target Revit year--target 2023BIMWRIGHT_TARGETtarget
Toolsets--toolsets query,createBIMWRIGHT_TOOLSETStoolsets
Read-only--read-onlyBIMWRIGHT_READ_ONLY=1readOnly
Allow LAN bindplugin-side onlyBIMWRIGHT_ALLOW_LAN_BIND=1allowLanBind
Allow ToolBaker tools--enable-toolbaker / --disable-toolbakerBIMWRIGHT_ENABLE_TOOLBAKERenableToolbaker
Enable adaptive bake suggestions--enable-adaptive-bake / --disable-adaptive-bakeBIMWRIGHT_ENABLE_ADAPTIVE_BAKE=1enableAdaptiveBake
Cache send-code bodies--cache-send-code-bodies / --no-cache-send-code-bodiesBIMWRIGHT_CACHE_SEND_CODE_BODIES=1cacheSendCodeBodies

JSON file path: %LOCALAPPDATA%\RvtMcp\bimwright.config.json.


Development

dotnet test tests/RvtMcp.Tests/RvtMcp.Tests.csproj
dotnet build src/server/RvtMcp.Server.csproj -c Release
dotnet build src/plugin-r26/RvtMcp.Plugin.R26.csproj -c Release

Plugin projects auto-deploy after normal Build, copying into %APPDATA%\Autodesk\Revit\Addins\<year>\RvtMcp\. Close Revit before building plugin projects because Revit locks loaded DLLs.

To stage plugin ZIPs for release:

pwsh scripts/stage-plugin-zip.ps1 -Config Release

See CONTRIBUTING.md for test strategy, tool-surface snapshot rules, and contribution notes.


Documentation

  • AGENTS.md - install and wiring guide for AI coding agents.
  • ARCHITECTURE.md - process model, transport, threading, and DTO strategy.
  • docs/bake.md - adaptive bake, privacy, accepted tools, and compatibility behavior.
  • docs/roadmap.md - current hardening plan and deferred work.
  • docs/testing/fresh-install-checklist.md - public install verification checklist.
  • benchmarks/README.md - weak-model benchmark procedure.

The bimwright family

Hand-forged MCP gateways for the AEC toolchain — one architecture, predictable / auditable / reversible:

  • rvt-mcp — Autodesk® Revit®
  • dwg-mcp — Autodesk® AutoCAD®
  • nwd-mcp — Autodesk® Navisworks®
  • ipt-mcp — Autodesk® Inventor®
  • bim-wiki — Vietnamese-first BIM knowledge base

License

Apache-2.0. See LICENSE.

Revit and Autodesk are registered trademarks of Autodesk, Inc. bimwright is an independent open-source project and is not affiliated with, sponsored by, or endorsed by Autodesk, Inc.


A bimwright project - built for practitioners who would rather automate the work than sell the mystique.

Featured
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
Registryactive
PackageBimwright.Rvt.Server
TransportSTDIO
UpdatedApr 27, 2026
View on GitHub