Revit model integration via APS — elements, parameters, schedules, clashes, IFC export.
Inferred from the transports this listing declares (streamable-http). A client not listed here hasn’t been ruled out — it just isn’t something Forge can confirm.
Verification confirms publisher identity (repo ownership), not code safety. The security scan covers known CVEs and suspicious install scripts.
Read from a real MCP initialize → tools/list handshake against the declared endpoint. No tool was ever invoked — tools/list is the read-only introspection call the protocol defines for this. It reflects what the server advertised at that moment; a hosted endpoint is not pinned to any version and can change without notice.
https://revit-mcp.itmartin24.workers.dev/mcp8 tools · 178msrevit_uploadprivilegedWhen to use: Ingest a Revit (.rvt / .rfa / .rte / .rft) file into Autodesk Platform Services by downloading it from a publicly reachable URL, uploading it to an OSS bucket, and starting an SVF2 translation so downstream revit_* tools can read elements, parameters, sheets, and views.
When NOT to use…When to use: Ingest a Revit (.rvt / .rfa / .rte / .rft) file into Autodesk Platform Services by downloading it from a publicly reachable URL, uploading it to an OSS bucket, and starting an SVF2 translation so downstream revit_* tools can read elements, parameters, sheets, and views. When NOT to use…
| Parameter | Type | Description |
|---|---|---|
| file_url* | string | Public HTTPS URL the worker can fetch the Revit file from. Must return 200 with the raw .rvt bytes (no auth gate, no HTML redirect). Max 100MB for direct uploa… |
| file_name* | string | Original file name including the Revit extension (.rvt, .rfa, .rte, .rft). Used as the OSS object key; non-alphanumeric characters are sanitized to underscores. |
| project_name | string | Optional human-readable project label echoed back in the response for bookkeeping. No effect on APS processing. |
revit_get_elementsWhen to use: After a Revit model has finished translating, fetch the first ~100 elements belonging to a Revit category (e.g. Walls, Doors, Windows, Structural Columns) with their objectid, name, externalId, and property bag.
When NOT to use: Do not call before translation completes (manifest.status…When to use: After a Revit model has finished translating, fetch the first ~100 elements belonging to a Revit category (e.g. Walls, Doors, Windows, Structural Columns) with their objectid, name, externalId, and property bag. When NOT to use: Do not call before translation completes (manifest.status…
| Parameter | Type | Description |
|---|---|---|
| model_id* | string | Base64url-encoded URN of the translated Revit model (returned from revit_upload as model_id/urn). Always begins with 'dXJu' (base64 of 'urn:'). |
| category* | string | Revit category name to filter on (case-insensitive substring match). Use canonical Revit category names like Walls, Doors, Windows, Structural Columns, Ducts,… |
revit_get_parametersWhen to use: Enumerate the Revit parameters (type + instance) that appear on elements in a given category, or on one specific element by objectid. Returns unique values per parameter and how many elements carry it — ideal for schema discovery before building a schedule.
When NOT to use: Do not use…When to use: Enumerate the Revit parameters (type + instance) that appear on elements in a given category, or on one specific element by objectid. Returns unique values per parameter and how many elements carry it — ideal for schema discovery before building a schedule. When NOT to use: Do not use…
| Parameter | Type | Description |
|---|---|---|
| model_id* | string | Base64url-encoded URN of the translated Revit model (returned from revit_upload). Always begins with 'dXJu'. |
| category* | string | Revit category to filter on (case-insensitive substring match). Ignored when element_id is supplied. |
| element_id | string | Optional APS Model Derivative objectid of a single element to inspect. When provided, overrides category filtering and returns parameters only for that element. |
revit_run_scheduleWhen to use: Build a tabular, spreadsheet-style schedule (rows = elements matching a keyword, columns = up to 15 shared parameters) from a translated Revit model — useful for Door Schedules, Wall Schedules, Room Schedules, and QA/QC exports.
When NOT to use: Do not use when you only need raw elemen…When to use: Build a tabular, spreadsheet-style schedule (rows = elements matching a keyword, columns = up to 15 shared parameters) from a translated Revit model — useful for Door Schedules, Wall Schedules, Room Schedules, and QA/QC exports. When NOT to use: Do not use when you only need raw elemen…
| Parameter | Type | Description |
|---|---|---|
| model_id* | string | Base64url-encoded URN of the translated Revit model. Always begins with 'dXJu'. |
| schedule_name* | string | Category name or keyword used to select rows (case-insensitive substring match on Category/name). Common examples: Walls, Doors, Windows, Rooms, Furniture, Mec… |
revit_clash_detectWhen to use: Perform a lightweight clash analysis between two Revit categories (e.g. Mechanical Equipment vs Structural Framing) using bounding-box overlap where available, falling back to shared-Level proximity, then annotate with any matching VDC rules stored in the D1 database.
When NOT to use:…When to use: Perform a lightweight clash analysis between two Revit categories (e.g. Mechanical Equipment vs Structural Framing) using bounding-box overlap where available, falling back to shared-Level proximity, then annotate with any matching VDC rules stored in the D1 database. When NOT to use:…
| Parameter | Type | Description |
|---|---|---|
| model_id* | string | Base64url-encoded URN of the translated Revit model. Always begins with 'dXJu'. |
| category_a* | string | First Revit category for the pairwise clash check (case-insensitive substring match). Typical MEP/structural examples: Mechanical Equipment, Ducts, Pipes, Cabl… |
| category_b* | string | Second Revit category to compare against category_a. Often a structural/architectural discipline when category_a is MEP. |
revit_export_ifcWhen to use: Kick off a Model Derivative translation of a previously uploaded Revit URN into IFC (IFC2x3 Coordination View 2.0 by default) so the model can be exchanged with non-Autodesk tools (Solibri, BIMcollab, Tekla, openBIM workflows).
When NOT to use: Do not use for SVF/SVF2 web viewing (that…When to use: Kick off a Model Derivative translation of a previously uploaded Revit URN into IFC (IFC2x3 Coordination View 2.0 by default) so the model can be exchanged with non-Autodesk tools (Solibri, BIMcollab, Tekla, openBIM workflows). When NOT to use: Do not use for SVF/SVF2 web viewing (that…
| Parameter | Type | Description |
|---|---|---|
| model_id* | string | Base64url-encoded URN of the translated Revit model to export to IFC. Always begins with 'dXJu'. |
| include_properties | boolean | Whether to include Revit property sets in the IFC output. true -> IFC2x3 Coordination View 2.0 (with psets); false -> minimal IFC2x3 geometry. |
revit_get_sheetsWhen to use: Enumerate the drawing sheets (title blocks with sheet number + sheet name like 'A-101: First Floor Plan') published from a translated Revit model, so an agent can pick which sheet to render, review, or cross-reference.
When NOT to use: Do not use to list model views like floor plans or…When to use: Enumerate the drawing sheets (title blocks with sheet number + sheet name like 'A-101: First Floor Plan') published from a translated Revit model, so an agent can pick which sheet to render, review, or cross-reference. When NOT to use: Do not use to list model views like floor plans or…
| Parameter | Type | Description |
|---|---|---|
| model_id* | string | Base64url-encoded URN of the translated Revit model whose sheets you want to list. Always begins with 'dXJu'. |
revit_get_viewsWhen to use: Return every view (both 2D — floor plans, ceiling plans, elevations, sections, sheets — and 3D — default {3D}, perspective views, isometric views) in the translated Revit model, including each view's GUID, name, role, and whether it is the master view.
When NOT to use: Do not use when…When to use: Return every view (both 2D — floor plans, ceiling plans, elevations, sections, sheets — and 3D — default {3D}, perspective views, isometric views) in the translated Revit model, including each view's GUID, name, role, and whether it is the master view. When NOT to use: Do not use when…
| Parameter | Type | Description |
|---|---|---|
| model_id* | string | Base64url-encoded URN of the translated Revit model whose views you want to list. Always begins with 'dXJu'. |
8 of 8 tools published a description.
Tool names and descriptions are written by the publisher and shown verbatim as inert text. They are the strings an MCP client passes to a model, so Forge scans them for prompt-injection patterns — any finding appears with the security scan above. “Privileged” is a keyword match on the tool name, not an audit of what the tool does: a benign-sounding name can still do anything.
Revit model integration via APS — elements, parameters, schedules, clashes, IFC export.
Linked names open Forge’s index of every entry observed exposing that tool. Browse all indexed tools.
This entry publishes no npm package, so Forge has no dependency tree for it. That is a gap in coverage — not a statement that it has no dependencies.