revit-bridge
Intent bridge between designers and AI for Autodesk Revit: an MCP server that executes code in a running Revit, keeps a library of reusable capability packs, and refuses to run anything the designer has not confirmed.
The package contains no model SDK, no vector store and no web framework. Your MCP host (Claude Desktop, Claude Code, any MCP client) brings the model; the revit-bridge-addin inside Revit executes the code.
Install
Prerequisites: Python 3.11+ with uv (for uvx),
Revit 2026 with the add-in installed and its local TCP listener on (default
127.0.0.1:18080).
Claude Desktop — claude_desktop_config.json:
{
"mcpServers": {
"revit-bridge": {
"command": "uvx",
"args": ["revit-bridge"]
}
}
}
Claude Code - the plugin (skill + MCP server + confirmation hook, recommended):
/plugin marketplace add revitbridge/revit-bridge
/plugin install revit-bridge@revit-bridge
The plugin's .mcp.json starts the server with uvx; its hooks/hooks.json
denies execute_code / run_tool calls that lack spec_confirmed=true
(uv run executes plugin/hooks/spec_gate.py, so uv must be on PATH). The
skill is also installable on its own with
npx skills add revitbridge/revit-bridge.
MCP server only, without the skill and hook:
claude mcp add revit-bridge -- uvx revit-bridge
Any MCP client — run uvx revit-bridge as a stdio server. Pass connection
settings through environment variables (see Configure), for example in the
env block of the host's server entry.
From a checkout: uv sync then uv run revit-bridge.
Use
-
Start Revit, open a project and make sure the add-in is listening.
-
Check the connection:
uvx revit-bridge check
Prints host, port, whether a token is set and
"status": "connected"; the exit code is 0 when Revit answered, 1 otherwise. -
In your host, work in three steps:
list_tools— see the capability packs (create_wall,query_levels, …).get_tool_choiceswith a tool name — Revit returns the real levels, family types or elements for that tool's dynamic parameters.run_toolwith the chosen values andspec_confirmed=true.
execute_codetakes arbitrary C# for tasks no pack covers. The code runs inside Revit withdocumentin scope and a transaction already open; end it withreturn <object>;.solidify_toolsaves code that worked as a new pack.
Confirmation gate. execute_code and run_tool default to
spec_confirmed=false and return refused_unconfirmed_spec until the host has
shown the designer every parameter with its source and received confirmation.
Hosts that run their own confirmation flow can set
REVIT_BRIDGE_ALLOW_UNCONFIRMED=1.
Resources: revit://stats, revit://tools/{name}, revit://connection-status.
Configure
| Variable | Default | Meaning |
|---|---|---|
REVIT_BRIDGE_HOST |
127.0.0.1 |
Host where the add-in listens |
REVIT_BRIDGE_PORT |
18080 |
TCP port of the add-in |
REVIT_BRIDGE_TOKEN |
(unset) | Pre-shared token, sent with every request when the add-in has one configured |
REVIT_BRIDGE_TIMEOUT |
60 |
Seconds to wait for a command to finish |
REVIT_BRIDGE_ALLOW_UNCONFIRMED |
(unset) | 1 lifts the spec_confirmed gate (host-internal flows only) |
REVIT_BRIDGE_CAPABILITIES_DIR |
packaged packs | Directory of capability YAML files; new solidify_tool packs are written here |
Development:
uv sync
uv run pytest
uv build
uvx --from . revit-bridge check
License: MIT. Issues and discussion: https://github.com/revitbridge/revit-bridge/issues.
Release files for revit-bridge 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| revit_bridge-0.1.0.tar.gz | 43.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| revit_bridge-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 93.9 kB
Release files / revit_bridge-0.1.0.tar.gz
| Download URL | revit_bridge-0.1.0.tar.gz |
|---|---|
| Size | 43.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
55f0e59ba106f5b8bbe9bcfd5daae55688326cc44b611d88187a3803935217ee
|
|
BLAKE2b-256 checksum How to use checksums |
35d5cf088f125b7f24c45efcd6f3322fe955398fe6a89ae1741b8fa0ccdbc454
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 18, 2026.
Transparency logRelease files / revit_bridge-0.1.0-py3-none-any.whl
| Download URL | revit_bridge-0.1.0-py3-none-any.whl |
|---|---|
| Size | 49.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
29b878ae8c3c5a42759236b20a2a29688623a761cb3d666f73e16592d102ba95
|
|
BLAKE2b-256 checksum How to use checksums |
3611c3d14ccd434b106fc4b62ce4498f42c2719a90177a72233858f06007ec44
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 18, 2026.
Transparency log