When the Revit MCP Server Reports Only One Tool, Use Python Instead

When you run the Revit MCP Technical Preview, a bug may prevent Claude from accessing all the tools that should be available.

‣

The Problem Starts — Claude Reports Only One Tool is Available

Making a Request That Uses an Unavailable Tool Example 1: Listing Revit Data

icon

List the air terminals in the Revit model

I can't list the air terminals yet. The only Revit tool available is the one that sees your running instance with 261104 VAV System Retail open, and it can't read the elements in the model.

I can write a Dynamo script that lists every air terminal and exports the list to Excel, so you can run it in Revit yourself.

‣

Telling Claude to Generate a Python Script Instead

‣

Copy the Python Script

‣

Open Dynamo and Create a New Workspace

‣

Create a Python Script node and Paste in the Copied Script

‣

Run the Python Script

‣

Read the Node Outputs

‣

Claude Returns This Report

Making a Request That Uses an Unavailable Tool Example 2: Changing Revit Element Types

icon

Change the return air terminals in the Revit model to 24 x 24 Face 12 x 8 Connection.

‣

Claude Generates a Python Script To Complete the Action

‣

Copy the Python Script

‣

Open Dynamo and Create a New Workspace

‣

Create a Python Script node and Paste in the Copied Script

‣

Run the Python Script

‣

Read the Node Outputs

Making a Request That Uses an Unavailable Tool Example 3: Test Driving a Python Script Before Making Changes to Your Model

When requests would generate many complex changes to your Revit model, Claude may write a Python Script with a testing and preview feature built into the code.

Claude will report this behavior in the output messages displayed in the Watch node.

The typical workflow is:

  • Claude generates the Python script.
  • When you run it with default values, it reports the results that would occur, but it does not implement the changes. This lets you confirm the results are what you expect before making the actual changes.
  • The Watch node reports which input values need to change to execute the changes. Typically something like:
    • Add a Boolean (true/false) node to Input[0] of the Python Script node.
    • Set the Boolean to TRUE to make the changes.