Skip to main content
Glama
Model MCP

Model MCP

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
REVIT_MCP_HOSTNoSet to 'local' for local Windows clients using the Revit user's account. For remote clients, configure an SSH tunnel to the workstation's loopback endpoint.
REVIT_MCP_ALLOW_WRITENoSet to '1' to allow write actions. Both this and the workstation allow-write file are required for actions.
REVIT_MCP_REDACT_PATHSNoSet to '1' to hide directories in response path fields. Default is likely '0' (not redacted).

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}

Tools

Functions exposed to the LLM to take actions

NameDescription
revit_jobsA

List recent jobs, or wait up to wait_seconds (0 to 50, default 40) for the result of an action jobId. Results stay on the workstation for 24 hours, across server restarts. skipped means incomplete; skippedCount is the total skipped.

revit_compare_link_datumsB

Compare host grids and levels with one loaded Revit link. Changes nothing. skipped means incomplete; skippedCount is the total skipped.

revit_pingA

Check the connection to Revit without reading the model. Returns data="pong", even when no document is active. skipped means incomplete; skippedCount is the total skipped.

revit_nwc_settings_checkA

Parse a Navisworks exporter XML file on the Revit workstation without exporting. skipped means incomplete; skippedCount is the total skipped.

revit_document_infoA

Read the active model's file name, Revit version, levels (elevations in mm), area schemes, worksets and view count. skipped means incomplete; skippedCount is the total skipped.

revit_documentsA

List every open document in one Revit process, including background documents. Linked documents are listed only when include_linked is set. skipped means incomplete; skippedCount is the total skipped.

revit_ui_stateB

Read the active document, open views, selection and open documents. skipped means incomplete; skippedCount is the total skipped.

revit_api_lookupA

Look up public Revit API types and members. The agent calls this before writing C# for an unfamiliar type. Results describe the running Revit's API version only. XML summaries are optional. skipped means incomplete; skippedCount is the total skipped.

revit_model_snapshotA

Read a schema version 1 project snapshot for batch audits. Closed worksets can make the result incomplete. skipped means incomplete; skippedCount is the total skipped.

revit_model_healthB

Read model quality counts: project metadata, file size, counts, units and the ten most frequent warning groups. Unavailable metrics are null and listed in skipped. output_path also writes an .xlsx health report with up to five snapshots. skipped means incomplete; skippedCount is the total skipped.

revit_links_statusA

Read RVT, CAD and image link status. Each list is capped at 100 entries; summary counts cover all links. skipped means incomplete; skippedCount is the total skipped.

revit_shared_coordinatesA

Read project and survey coordinates: base and survey points, active site, project locations and link offsets (mm, degrees). Lists are capped at 100 with total counts. skipped means incomplete; skippedCount is the total skipped.

revit_parameter_fill_checkA

Count filled, empty and missing parameters per parameter and category, with samples of empty and missing element IDs. Numeric zero counts as filled. skipped means incomplete; skippedCount is the total skipped.

revit_list_catalogB

List catalog names for one section: categories, family-types, levels, area-schemes, views, worksets, phases or parameters. name_contains filters names case-insensitively; limit bounds results (default 200, maximum 2000). Returns total before the limit and hasMore. skipped means incomplete; skippedCount is the total skipped.

revit_aggregate_elementsA

Summarize matching elements by one or two fields, with optional sum and average. Lengths use mm, areas m2, volumes m3. For area totals, group by level and select the area scheme. skipped means incomplete; skippedCount is the total skipped.

revit_query_elementsB

Read a page of matching element rows. Lengths use mm, areas m2, volumes m3; optional geometry is in model mm. roomCenterMm is a point inside the room, a bounding-box centre can lie outside it. hasMore=true means further pages exist. skipped means incomplete; skippedCount is the total skipped.

revit_list_sheetsB

List sheets with title blocks, revisions and placed view IDs, plus unplaced views. skipped means incomplete; skippedCount is the total skipped.

revit_list_viewsB

List non-template views with id, name, type, level, scale and template. skipped means incomplete; skippedCount is the total skipped.

revit_view_infoB

Inspect one view's template, display, categories, worksets, filters and links. skipped means incomplete; skippedCount is the total skipped.

revit_view_summaryB

Read element categories and counts for a selected view. skipped means incomplete; skippedCount is the total skipped.

revit_schedule_dataB

Read displayed schedule header and body cell text, with paging. skipped means incomplete; skippedCount is the total skipped.

revit_capture_elementsA

Render a highlighted PNG that marks 1 to 500 elements, for issue evidence. Supports 3d or plan mode over local or SSH transport. The temporary view is rolled back. skipped means incomplete; skippedCount is the total skipped.

revit_export_viewA

Save a picture of the selected view as a PNG file in a folder the user names on the AI app computer. output_path names the new file; without it, a temporary folder is used. Existing files are refused. The active view and model stay unchanged. skipped means incomplete; skippedCount is the total skipped.

revit_view_elementsA

Read one page of elements in a selected view, with IDs, category, family, type, level and measurements (mm, m2, m3). skipped means incomplete; skippedCount is the total skipped.

revit_element_detailsA

Read parameters and geometry of an element by Revit ID, with its type parameters and related warnings. Geometry is in model mm; roomCenterMm is a point inside the room. skipped means incomplete; skippedCount is the total skipped.

revit_view_warningsA

Read warnings involving elements present in a selected view. A warning may also involve elements outside the view. skipped means incomplete; skippedCount is the total skipped.

revit_list_warningsA

Group model warnings by description text. warning_text with include_elements=true returns the elements of one group. skipped means incomplete; skippedCount is the total skipped.

revit_list_relationsB

Read model object membership or dependencies. relation is level-rooms, area-scheme-elements or view-template-dependents (with source_name), or group-elements or nested-family (with source_id). skipped means incomplete; skippedCount is the total skipped.

revit_list_instancesA

List Revit processes with documentName, documentPath, revitVersion, processId and pluginResponding. Busy or unresponsive processes stay listed with pluginResponding=false. HTTP mode reports only its connected process.

revit_family_auditA

Audit an open family or named project families without saving or loading changes. Project mode takes exact family names or ["*"]; family mode takes none. detail="summary" returns parameter counts and up to 20 unused parameter names; detail="full" returns all parameter metadata with group IDs and groupName labels. The wildcard audits the first 200 editable families sorted by name; data.skipped lists each remaining name and reason, with skippedCount. skipped means incomplete; skippedCount is the total skipped.

revit_set_read_onlyA

Set the workstation read-only lock for all Revit versions of this Windows user. Locking needs no token. Unlocking requires a user request and explicit confirmation. The first call returns confirmationText and a token; the second call with confirm_token unlocks. Workstation policy cannot be changed.

revit_open_documentA

Open a local, UNC or RSN model. Central models open detached by default. Cloud paths are unsupported. May commit; revit_jobs polls; retry repeats.

revit_activate_documentB

Activate an already open document by title or path reference.

revit_activate_viewB

Activate a non-template view. Zoom to fit, preserve zoom, or frame element IDs.

revit_close_viewsC

Close open UI views in the active document.

revit_new_documentC

Create a project or family from a template on the Revit workstation.

revit_close_documentB

Close a background document. Needs confirm_token from a first call, which changes nothing.

revit_save_documentB

Save a document. Needs confirm_token from a first call, which changes nothing.

revit_sync_documentB

Synchronize a workshared document with central. Needs confirm_token from a first call, which changes nothing.

revit_set_view_visibilityB

Change category, workset and filter visibility in one view; dry_run previews. Categories accept the Revit UI name, the BuiltInCategory name (OST_StructuralColumns), the English name or an ID.

revit_remove_linksA

Delete selected link types and their instances; dry_run previews. Cannot be undone in Revit. Needs confirm_token from a first call, which changes nothing.

revit_save_toolC

Compile C# and schema without execution, then save a revision after the token handshake. Returns full source, hash and confirm_token. Uses a two-step AI app token handshake.

revit_list_toolsB

List saved tools and schemas without source.

revit_get_toolC

Return approved source and schema without execution.

revit_run_toolA

Run saved C#. First run per Revit session needs confirm_token, even read/dry_run. Action commits need a token. Read/dry_run roll back. transaction=group permits script-owned transactions and edit scopes in one Undo group. Uses execute_code gates; store runs require machine ExecuteCode=confirm, including read mode and dry runs. Timeouts may follow commit. Uses a two-step AI app token handshake.

revit_delete_toolC

Delete all revisions with confirm_token after a first confirmation challenge. No Undo. Uses a two-step AI app token handshake.

revit_execute_codeA

Run a C# body or public static Script.Execute(ScriptContext ctx) on the Revit thread. revit_api_lookup supplies API metadata. Auto owns a Transaction; group lets scripts own Transactions and edit scopes inside one Undo group. Close all scopes before returning; transaction="none" is refused. Needs confirm_token except dry_run, which rolls back. May commit; revit_jobs polls; retry repeats.

revit_undo_lastA

Undo the last MCP action through Revit's own undo command. Runs only when the target document is active, no command is pending and Revit's last undo entry is the one this session recorded; otherwise the result carries a refusal reason.

revit_align_link_datumsB

Align host grids and levels to a loaded link, with optional creation and rollback preview. Does not create a monitor relationship.

revit_cancel_jobA

Request cancellation of an action jobId. Process-models stops before the next model and marks unstarted models cancelled; a single running Revit operation finishes, and completed changes stay committed.

revit_selectA

Select element IDs for inspection in Revit; an empty list clears the selection.

revit_showA

Display elements in Revit, optionally selecting them; opens a level plan or 3D view when needed.

revit_isolateA

Temporarily isolate element IDs in the active view; an empty list resets.

revit_moveA

Move elements by dx_mm, dy_mm and dz_mm on model axes. dry_run rolls back and returns the verification block. Group members, pinned, hosted and constrained elements are reported in skipped.inGroup, skipped.pinned, skipped.hosted and skipped.constrained and are not changed; the call is refused if every element is a group member.

revit_override_graphicsB

Colour elements in selected model views; reset restores overrides saved in this Revit session.

revit_rotateA

Rotate elements about a vertical axis through center_mm, or through their combined bounding box center. dry_run rolls back. Group members, pinned, hosted and constrained elements are reported in skipped.inGroup, skipped.pinned, skipped.hosted and skipped.constrained and are not changed; the call is refused if every element is a group member.

revit_copyA

Create 1 to 100 successive copies at multiples of the model-axis offset in mm. dry_run rolls back. Group members are reported in skipped.inGroup; the call is refused if every element is a group member.

revit_mirrorA

Mirror across a model X or Y parallel line through point_mm; copy keeps originals. dry_run rolls back. Group members, pinned, hosted and constrained elements are reported in skipped.inGroup, skipped.pinned, skipped.hosted and skipped.constrained and are not changed; the call is refused if every element is a group member.

revit_change_typeA

Change each element to one compatible type; family resolves duplicate type names. dry_run rolls back. Group members are reported in skipped.inGroup; the call is refused if every element is a group member.

revit_update_parametersA

Update a parameter on elements matching the same filters as revit_query_elements. Group members are reported in skipped.inGroup instead of failing the call; dry_run predicts this.

revit_place_familyA

Place a loaded unhosted family on a named level. family is a name or Family: Type; a null type_name uses the embedded or first type. XY is in mm, rotation in degrees.

revit_load_familyA

Load workstation .rfa files in one undo entry. Existing families are skipped unless overwrite is true.

revit_place_familiesC

Load optional families and place instances in one transaction and undo entry.

revit_create_wallB

Create a straight wall on a named level. XY endpoints and height are in mm; a null wall_type uses the first basic type.

revit_create_mep_runA

Create connected duct, pipe, cable tray or conduit segments from model mm points. A missing Z uses the level elevation plus the kind's default offset. Unplaceable elbows are reported as unjoined pairs.

revit_link_cadB

Link or import a DWG into a plan view on the Revit workstation. Returns CAD layers and extents in mm.

revit_walls_from_cadB

Bridge openings, pair parallel CAD lines and join basic walls in one undo entry. Dimensions are mm. Joins Revit rejects are left out and reported as unjoinedEnds with unjoinedReasons; dry_run reports the same join numbers.

revit_create_viewB

Create a plan, section, 3D or drafting view. Unbounded 3D views show the whole model, shaded, fine detail. Box coordinates are model mm.

revit_duplicate_viewC

Duplicate a view, optionally with detailing or as a dependent view.

revit_apply_view_templateC

Apply a matching view template to one or more views.

revit_create_sheetC

Create a sheet with the first loaded or a named title block.

revit_place_views_on_sheetB

Place views and schedules on a sheet. Coordinates are sheet mm.

revit_tag_elementsA

Tag elements in a view, chosen by category names or by element IDs (exactly one of the two). Returns created tag IDs in createdElementIds; already tagged elements are skipped unless skip_tagged is false, and untaggable inputs are listed in skipped. tag_type matches a tag type name, a family name or "Family: Type"; the default tag type is used otherwise. Room tags need a plan view. dry_run rolls back and returns the tags that would be created.

revit_create_scheduleA

Create a schedule for one category with the named fields in the given order, using Revit UI names such as Mark, Level or Count. filters keep rows by field, operator and value; sort orders and, with header or footer, groups rows. Lengths in mm, areas in m2, volumes in m3. itemized=false collapses identical rows. Returns viewId and the resolved fields; unknown names are listed in skipped. dry_run rolls back.

revit_set_parameterA

Set one instance or type parameter. parameter_id selects by BuiltInParameter name, shared GUID or ParameterElement ID; otherwise parameter takes a localized UI name, BuiltInParameter name or English alias, and ambiguous matches are refused. Value is a string, integer or number by storage type; lengths in mm, areas in m2. Group members fail with a clear message. dry_run rolls back and returns the verification block.

revit_deleteA

Delete elements and their Revit dependencies; the count includes dependents. dry_run returns the count. Above 500 elements including dependents a confirm_token from a first call is needed; revit_run_actions refuses such deletions.

revit_exportA

Save PDF, DWG, IFC or schedule CSV files to a folder the user names with output_dir on the Revit workstation; dry_run returns planned file names. Replacing existing files (overwrite=true) uses a two-step confirm_token handshake with the AI app. The AI app is expected to show the action to you; Model MCP does not show its own dialog. May commit; revit_jobs polls; retry repeats.

revit_export_nwcB

Save an NWC file to a folder the user names through path on the Revit workstation; needs the Navisworks exporter. settings_xml applies exporter XML values, explicit arguments take precedence. Replacing an existing file (overwrite=true) uses a two-step confirm_token handshake with the AI app. The AI app is expected to show the action to you; Model MCP does not show its own dialog. May commit; revit_jobs polls; retry repeats.

revit_run_actionsA

Execute up to 50 actions with one undo step; the whole batch rolls back on its first failure. dry_run rolls back and returns the verification block.

revit_process_modelsB

Open each model in the interactive session, run steps and C# code, export, save as requested, and close. In-place saves and code need a confirm_token from the preview response. dry_run replaces only code.transaction="none" with "auto" and reports the override in warnings. May commit; revit_jobs polls; retry repeats.

revit_edit_familiesB

Edit an open family in place, or named project families (exact names or ["*"]), one load cycle each. A dry run rolls back all changes. May commit; revit_jobs polls; retry repeats.

revit_batch_startC

Start a persistent, read-only run over local, UNC or RSN models. open_timeout_minutes is the per-model open deadline (default 30, 45 when upgrading in memory).

revit_batch_statusB

Read durable run and model status after the initiating client exits.

revit_batch_cancelB

Persist cancellation and prevent unstarted models from running.

revit_batch_fetchB

Download completed snapshots to new local files without overwriting.

revit_model_auditA

Audit one model with local YAML or JSON rules, or pack:model-health by default. Reads only. Save immutable history on the server machine and compare with previous, a result path, or none. Unsupported evidence is not_assessed. The run is bounded to ten minutes. skipped means incomplete; skippedCount is the total skipped.

revit_audit_reportA

Write new XLSX and self-contained HTML reports from a local audit JSON file. Paths resolve on the server machine. Existing files are refused.

revit_build_reportA

Build a local Excel report from snapshots without contacting Revit.

revit_issue_registerA

Write a new local .xlsx issue register with element snapshots and review documents. Takes 1 to 60 issues; captures at most 25 snapshots (by severity) within a 210-second budget, and failed snapshots become cell notes. Snapshots need local or SSH transport. Existing output files are refused. skipped means incomplete; skippedCount is the total skipped.

Prompts

Interactive templates invoked by user choice

NameDescription
model_overviewReview one open model: health, warnings, links, coordinates and families, as a findings table.
pre_issue_checkCheck an open model before issuing it: health, warnings, links, coordinates, parameter fill and families.
warnings_triageGroup and prioritize model warnings with affected element IDs.
parameter_fill_reportReport how completely the requested parameters are filled for the requested categories.
daily_qaRun the daily read-only model QA routine and report counts and trends.
sheet_setPlan and create sheets from CSV or markdown rows after explicit approval.
batch_auditCollect snapshots from many models in the background and build a comparison report.

Resources

Contextual data attached and managed by the client

NameDescription
coordinator_guideGuide for reviewing a Revit model: tool order, result fields and reporting conventions.

TDQS

B3.1/5.0

Scored across 89 tools

Disambiguation3/5

Many tools are individually distinct, but there are substantial overlapping clusters: revit_run_tool/revit_execute_code/revit_run_actions, revit_place_family/revit_place_families, revit_update_parameters/revit_set_parameter, and several query/read/audit tools. Detailed descriptions help, but an agent still needs careful selection among similar capabilities.

Naming Consistency4/5

All tools use a consistent revit_ snake_case prefix, and most follow a clear verb_noun or noun-action pattern. A few names such as revit_document_info, revit_ui_state, and revit_jobs are less verb-oriented, but the overall convention remains readable and predictable.

Tool Count1/5

With 89 tools, this server is far beyond a practical toolset for agent selection, even for a broad Revit automation domain. The surface is comprehensive but heavily overloaded, with many niche and overlapping operations that increase cognitive load and misselection risk.

Completeness4/5

The surface covers model and element CRUD, views and sheets, documents and worksharing, families, exports, auditing, batch runs, and C# escape hatches. Some direct creation operations such as levels, grids, rooms, dimensions, or text notes are not exposed as first-class tools, but they can be worked around through code execution.

Maintenance

ActivityActive
ResponsivenessLimited data