Skip to main content
Glama
vascocardosondBIM

mcp-server-for-revit

mcp-server-for-revit

MCP server (Node.js) to interact with Autodesk Revit from AI assistants (Claude, Cursor, etc.).

This repository contains two things that are important to distinguish:

  1. The "original" MCP (Node bridge) — aligned with the mcp-servers-for-revit ecosystem: exposes Revit operations as MCP tools; the server talks to the official Revit plugin via TCP (default port 8080), not via WebSocket in this bridge flow.

  2. The extension of this fork — dual port in the bridge (REVIT_PLUGIN_PORT / REVIT_SKETCH_PORT) and the separate add-in RevitSketchPoC (C# / WPF) in the revit-plugin/RevitSketchPoC/ folder, which listens on another port (default 8081) and handles only the create_house_from_sketch tool (image interpretation + creation of walls/rooms/doors in Revit), with Ollama or Gemini configurable in the plugin.

[!NOTE] For the full flow, you need the original Revit plugin (port 8080) and, if you use the sketch via MCP or UI, the RevitSketchPoC (port 8081). Official plugin instructions: mcp-servers-for-revit. PoC detail: revit-plugin/RevitSketchPoC/README.md.

Security and Git

  • Do not commit .env files, JSON keys, or local copies with secrets. The repository includes a .gitignore for node_modules/, .NET artifacts (bin/ / obj/), .env*, and pluginsettings.local.json.

  • The deploy/pluginsettings.json file of the PoC must keep GeminiApiKey empty in Git; use a local copy or follow the pluginsettings.example.json as a template.

Setup (MCP client)

Claude Code

claude mcp add mcp-server-for-revit -- npx -y mcp-server-for-revit

Claude Desktop — claude_desktop_config.json:

{
    "mcpServers": {
        "mcp-server-for-revit": {
            "command": "npx",
            "args": ["-y", "mcp-server-for-revit"],
            "env": {
                "REVIT_PLUGIN_PORT": "8080",
                "REVIT_SKETCH_PORT": "8081"
            }
        }
    }
}

Restart the client. The tools icon indicates that the MCP is connected.

Two ports, two plugins

Environment variable

Default value

TCP Destination

REVIT_PLUGIN_PORT

8080

Original plugin — all tools except create_house_from_sketch

REVIT_SKETCH_PORT

8081

RevitSketchPoC — only create_house_from_sketch

The create_house_from_sketch tool uses REVIT_SKETCH_PORT (or data.pluginPort in the request). The pluginPort field is not sent to Revit (the bridge removes it). The remaining tools use REVIT_PLUGIN_PORT.

Supported MCP Tools

Tool

Description

get_current_view_info

Active view information

get_current_view_elements

Elements in the active view

get_available_family_types

Available family types

get_selected_elements

Selected elements

get_material_quantities

Material quantities

ai_element_filter

Intelligent model query

analyze_model_statistics

Model statistics

create_point_based_element

Point-based elements

create_line_based_element

Line-based elements

create_surface_based_element

Surface-based elements

create_grid

Grid

create_level

Levels

create_room

Rooms

create_dimensions

Dimensions

create_structural_framing_system

Beam system

delete_element

Delete by ID

operate_element

Operate (select, color, hide, etc.)

color_elements

Color by parameter

tag_all_walls / tag_all_rooms

Tags

export_room_data

Export room data

store_project_data / store_room_data / query_stored_data

Local metadata

send_code_to_revit

Send C# to execute in Revit

create_house_from_sketch

Sketch image → LLM interpretation (Ollama or Gemini in RevitSketchPoC) → walls/rooms/doors

say_hello

Connection test

Development (Node)

npm install
npm run build

Sketch PoC (C# / WPF)

The current and supported implementation is in revit-plugin/RevitSketchPoC/ (UI, MCP TCP router, Ollama/Gemini, Revit transactions). The samples/RevitSketchPoC/ folder may exist as an old reference; follow the plugin README at revit-plugin/RevitSketchPoC/README.md.

Summary flow:

  1. User sends image (ribbon Sketch AI PoC or MCP create_house_from_sketch).

  2. The plugin calls the LLM (Ollama or Gemini according to pluginsettings.json).

  3. Structured response → creation of elements in a Transaction in Revit.

License

MIT

Related MCP Connectors