The Revit Public MCP Server provides different tool sets depending on the server configuration you install. You only need to install one server configuration.
During the Technical Preview, the Write and Experimental tool sets continue to evolve. Available tools and tool behavior may change before General Availability.
The Revit MCP Server Write-Tools Technical Preview and Revit MCP Server Experimental-Tools Technical Preview can modify your Revit model. Review the proposed changes before accepting them. Consider creating a backup of your model before performing write operations.
The following table describes the tools available in each Revit Public MCP Server configuration.
| Tool | Tool name | Description | Available in |
|---|---|---|---|
| Get Fill And Line Patterns | get_fill_and_line_patterns |
Gets all project fill and line patterns, including their IDs and names. | Experimental |
| Override Elements Graphics | override_elements_graphics |
Overrides graphics for elements or categories in specified views, including fill patterns, colors, line weights, and detail level. For Coordination Model links, transparency and surface foreground color are supported. | Experimental |
| Create Section View | create_section_view |
Creates a section view for a specified bounding box and returns the ID of the new view. | Experimental |
| Create Sheet | create_sheet |
Creates a sheet using a specified title block and returns the ID of the new sheet. | Experimental |
| Get All View Templates | get_all_view_templates |
Gets information about project view templates, including their IDs, names, view types, scales, and display settings. | Experimental |
| Get All Sheet Collections | get_sheet_collections |
Gets the sheet collections in the model, including their IDs and names. | Experimental |
| Get Sheets in a Sheet Collection | get_sheets_in_sheet_collection |
Gets the sheets that belong to a specified sheet collection, including their IDs, names, and numbers. | Experimental |
| Get All Sheets | get_sheets |
Gets all sheets in the model, including their IDs, names, and numbers. | Experimental |
| Get Views on Sheets | get_views_on_sheets |
Gets the views and schedules placed on specified sheets, including view IDs, names, types, and placement information. | Experimental |
| Get All Views | get_views |
Gets all views in the model, including their IDs, names, and types, and identifies the active view. | Experimental |
| Rename Sheet | rename_sheet |
Changes the name of a specified sheet. | Experimental |
| Set Sheet Number | set_sheet_number |
Changes the sheet number of a specified sheet. | Experimental |
| Create Plan Views | create_plan_views |
Creates floor plan views for specified levels and returns the IDs of the created views. | Experimental |
| Open View | open_view |
Opens a specified Revit view and makes it the active view. Provide the Revit view ID. Use this tool to navigate to or work in a specific view. | Read, Write, Experimental |
| Create Schedule | create_schedule |
Creates a schedule for elements of a specified category using selected fields. | Experimental |
| Get All Schedules | get_all_schedules |
Gets the IDs and names of all schedules in the model. | Experimental |
| Get Schedulable Fields | get_schedulable_fields |
Gets the fields that can be included in a schedule for a specified category. | Experimental |
| Get Schedule Definition | get_schedule_definition |
Gets the current filters and sorting or grouping settings for an existing schedule. | Experimental |
| Modify Schedule Filters | modify_schedule_filters |
Adds or removes filters from an existing schedule. You are asked to confirm before removing filters. | Experimental |
| Modify Schedule Grouping | modify_schedule_grouping |
Adds or removes grouping from an existing schedule. You are asked to confirm before removing grouping. | Experimental |
| Modify Schedule Sorting | modify_schedule_sorting |
Adds or removes sorting from an existing schedule. You are asked to confirm before removing sorting. | Experimental |
| Get Room Boundaries | get_room_boundaries |
Gets room boundaries as loops of points. Non-linear boundary segments are simplified to straight lines between their endpoints. | Experimental |
| Get Rooms | get_rooms |
Gets information about rooms in the model, including their IDs, names, numbers, areas, and locations. | Experimental |
| Query Model | query_model |
Finds elements using criteria such as category, parameter values, view, or name. Provide the query criteria. The tool returns matching element IDs and analysis information, including element counts and breakdowns that can help refine subsequent queries. | Read, Write, Experimental |
| Get Active Context | get_active_context |
Gets the active document, active view, and currently selected element IDs. | Read, Write, Experimental |
| Export gbXML | export_gbxml |
Exports the document's Energy Model to a gbXML file for use in third-party energy analysis tools. | Experimental |
| Export IFC | export_ifc |
Exports the active Revit document to an IFC file. | Experimental |
| Export Views | export_views |
Exports specified Revit views to image or PDF files and schedule views to CSV. Provide the view IDs, output format, and destination folder. All selected views are exported using the same format. | Read, Write, Experimental |
| Get Element Data | get_element_data |
Gets parameter values and other information for specified Revit elements. Provide one or more element IDs. Results can include names, levels, classes, families, parameters, and bounding boxes. | Read, Write, Experimental |
| Modify Element Parameters | modify_element_parameters |
Modifies parameters for one or more elements. It can also change element types. Changes may produce Revit warnings or errors that require attention. | Write, Experimental |
| Delete Elements | delete_elements |
Deletes specified elements from the model. You are asked to confirm before deleting elements. Deletion may produce Revit warnings or errors that require attention. | Experimental |
| Move Elements | move_elements |
Moves specified elements using a three-dimensional translation. Moving elements may produce Revit warnings or errors that require attention. | Write, Experimental |
| Rotate Elements | rotate_elements |
Rotates specified elements in three-dimensional space around an axis. View-specific elements can only be rotated within their view. | Write, Experimental |
| Select Elements | select_elements |
Selects specified elements in the active Revit model. Provide one or more element IDs. Use this tool to highlight elements found by another tool, such as query_model. |
Read, Write, Experimental |
| Show Elements | show_elements |
Zooms or focuses the active view on specified elements. Provide one or more element IDs. The elements must be visible in the active view. | Read, Write, Experimental |
| Get Annotation Include Categories | get_annotation_include_categories |
Gets the annotation categories present in a view and indicates which categories are included for Isolate Annotations. | Experimental |
| Set Annotation Include Categories | set_annotation_include_categories |
Sets which annotation categories are included for Isolate Annotations. Category names must match the names reported by Revit. | Experimental |
| Tag Elements | tag_elements |
Tags specified elements in specified views. Elements that are already tagged are not tagged again. | Experimental |
| Get Running Revit Instances | get_running_revit_instances |
Lists all currently running Revit instances, including the process ID and the name of the open document. No parameters are required. Use this information to identify the Revit instance or model you want to work with. | Read, Write, Experimental |