scanbimlabs avatar

ScanBIM MCP

io.scanbimlabs/scanbim-mcp

Connects Claude to Autodesk Platform Services for working with BIM data and 3D models across 50+ formats. You get clash detection capabilities and direct integration with Autodesk Construction Cloud, which means you can query project data, run interference checks, and manipulate geometry without leaving your conversation. Reach for this when you're doing AEC workflows that need programmatic access to design files, coordination tasks, or pulling data from ACC projects. The streamable HTTP transport keeps it lightweight for remote deployments.

tools
19
transport
HTTP
last updated
Apr 12, 2026

Install

From registry metadata
$ npx add-mcp https://scanbim-mcp.itmartin24.workers.dev/mcp --name scanbim-mcp

Run in your terminal. add-mcp asks which agents to add it to (Claude Code, Codex, Cursor and more). Add -g to install it for every project.

Review the command, arguments and environment values before installing. MCP servers run with your local permissions.

Other ways

Claude Code

$ claude mcp add --transport http scanbim-mcp https://scanbim-mcp.itmartin24.workers.dev/mcp

Run in your terminal. Add --scope user to make it available in every project.

Tools

Verified live · 19 tools

Verified live against the running server on Nov 6, 2026.

upload_modelIngest a 3D model from a public URL into APS OSS and kick off a Model Derivative translation job, returning the URN plus a browser viewer link and QR code. Supports 50+ formats: Revit (.rvt/.rfa), Navisworks (.nwd/.nwc), IFC, FBX, OBJ, SolidWorks, point clouds (E57/LAS/RCP), C...3 params

Ingest a 3D model from a public URL into APS OSS and kick off a Model Derivative translation job, returning the URN plus a browser viewer link and QR code. Supports 50+ formats: Revit (.rvt/.rfa), Navisworks (.nwd/.nwc), IFC, FBX, OBJ, SolidWorks, point clouds (E57/LAS/RCP), C...

Parameters* required
file_name*string
Filename including the extension. The extension is used to determine the tier (free/pro/enterprise) and is preserved in the OSS object key (prefixed with a Unix-ms timestamp). Use only ASCII + dash...
file_url*string
Publicly fetchable HTTPS URL to the 3D model file. Must be directly downloadable (no login wall, no JS redirect); the worker does a plain fetch() and streams the bytes into APS OSS. Max 100MB for d...
project_namestring
Optional free-text label stored alongside the model row in D1 for grouping models by project. Does not affect APS storage or URN. Defaults to 'default' when omitted.
detect_clashesRun a first-pass bounding-box clash check between two element categories in a translated model. Element boxes are read from the APS Model Derivative properties endpoint; ScanBIM never estimates or synthesises geometry. If the model returns no element boxes for a category, the...3 params

Run a first-pass bounding-box clash check between two element categories in a translated model. Element boxes are read from the APS Model Derivative properties endpoint; ScanBIM never estimates or synthesises geometry. If the model returns no element boxes for a category, the...

Parameters* required
category_a*string
Revit/IFC category name (case-sensitive, exactly as it appears in the model properties). Common values: 'Ducts', 'Pipes', 'Electrical', 'Structural Framing', 'Structural Columns', 'Mechanical Equip...
category_b*string
Second Revit/IFC category to clash against category_a. Case-sensitive; must match a category present in the translated model's property set.
model_id*string
APS URN returned by upload_model. Base64url-encoded Autodesk object ID starting with 'dXJu' (which decodes to 'urn:adsk.objects:os.object:...'). Unpadded.
get_viewer_linkReturn a shareable browser URL for the embedded APS viewer and a matching QR code for mobile/XR handoff. Does not require the model to be fully translated — the viewer page will poll the manifest. When to use: you need to hand a stakeholder a URL to see the 3D model in a brows...1 params

Return a shareable browser URL for the embedded APS viewer and a matching QR code for mobile/XR handoff. Does not require the model to be fully translated — the viewer page will poll the manifest. When to use: you need to hand a stakeholder a URL to see the 3D model in a brows...

Parameters* required
model_id*string
APS URN (base64url-encoded Autodesk object ID, starts with 'dXJu', unpadded) or the model_id returned from upload_model.
list_modelsList every object currently stored in the scanbim-models OSS bucket, with URN, size in MB, and a viewer URL for each. Returns the raw OSS inventory, not the D1 models table, so freshly uploaded items appear immediately. When to use: you need to enumerate previously uploaded mo...2 params

List every object currently stored in the scanbim-models OSS bucket, with URN, size in MB, and a viewer URL for each. Returns the raw OSS inventory, not the D1 models table, so freshly uploaded items appear immediately. When to use: you need to enumerate previously uploaded mo...

Parameters* required
formatstring
Reserved for future filtering by file extension (e.g. 'rvt', 'ifc'). Currently informational only; the OSS listing is not filtered by this value.
project_namestring
Reserved for future filtering by the D1 project_name column. Currently informational only; the OSS listing is not filtered by this value.
get_model_metadataFetch the APS Model Derivative manifest and metadata for a URN, including translation progress, derivative outputs, and a viewer URL. Use this to confirm a model has finished translating (manifest.status == 'success') before calling detect_clashes or opening the viewer. When t...1 params

Fetch the APS Model Derivative manifest and metadata for a URN, including translation progress, derivative outputs, and a viewer URL. Use this to confirm a model has finished translating (manifest.status == 'success') before calling detect_clashes or opening the viewer. When t...

Parameters* required
model_id*string
APS URN (base64url-encoded Autodesk object ID, starts with 'dXJu', unpadded) as returned by upload_model.
get_supported_formatsReturn the full matrix of supported input formats organized by subscription tier (free / pro / enterprise). Use to tell a user whether their file type is accepted before calling upload_model, or to surface pricing tier info. When to use: you need to validate a file extension o...

Return the full matrix of supported input formats organized by subscription tier (free / pro / enterprise). Use to tell a user whether their file type is accepted before calling upload_model, or to surface pricing tier info. When to use: you need to validate a file extension o...

No parameters. Call it with no arguments.

acc_list_projectsList every Autodesk Construction Cloud (ACC) / BIM 360 project the configured APS 2-legged app has access to, flattened across all hubs, with hub_id, hub_name, project_id, project_name, and project type. When to use: you need a project_id to pass into acc_create_issue, acc_lis...

List every Autodesk Construction Cloud (ACC) / BIM 360 project the configured APS 2-legged app has access to, flattened across all hubs, with hub_id, hub_name, project_id, project_name, and project type. When to use: you need a project_id to pass into acc_create_issue, acc_lis...

No parameters. Call it with no arguments.

acc_create_issueCreate a real issue (punchlist/QC item) in ACC Build's Issues module via the APS Construction Issues v1 API. Returns the ACC-generated issue_id which can be linked back to a model URN or a detected clash. When to use: detect_clashes flagged a critical clash, or a field user re...7 params

Create a real issue (punchlist/QC item) in ACC Build's Issues module via the APS Construction Issues v1 API. Returns the ACC-generated issue_id which can be linked back to a model URN or a detected clash. When to use: detect_clashes flagged a critical clash, or a field user re...

Parameters* required
assigned_tostring
ACC user ID (UUID) or email of the assignee. Pass null or omit to leave unassigned.
description*string
Long-form issue body. Plain text; supports newlines. Include clash coordinates, trade impact, and suggested fix.
due_datestring
ISO 8601 calendar date (YYYY-MM-DD). Time component is ignored by ACC.
linked_model_idstring
Optional APS URN linking this issue back to the source model. Stored for ScanBIM cross-referencing; not forwarded to ACC's linkedDocuments field.
prioritystring
ACC issue priority. Defaults to 'medium' if omitted.one of critical · high · medium · low
project_id*string
ACC project ID in either 'b.<uuid>' or plain '<uuid>' form (the worker strips the 'b.' prefix before calling the Issues endpoint). Obtainable via acc_list_projects.
title*string
Short human-readable issue title, 1-255 chars. Shows up as the headline in ACC Issues UI.
acc_create_rfiCreate a Request For Information in ACC Build's RFIs module via the APS Construction RFIs v1 API, in 'draft' status. Returns the ACC rfi_id. When to use: a trade or subcontractor needs formal information from the design team (unclear detail, conflicting spec, missing dimension...7 params

Create a Request For Information in ACC Build's RFIs module via the APS Construction RFIs v1 API, in 'draft' status. Returns the ACC rfi_id. When to use: a trade or subcontractor needs formal information from the design team (unclear detail, conflicting spec, missing dimension...

Parameters* required
assigned_tostring
ACC user ID (UUID) or email of the responder. Pass null or omit to leave unassigned.
linked_clash_idstring
Optional clash ID from detect_clashes output used to link this RFI back to the triggering clash. Stored for ScanBIM cross-referencing; not forwarded to ACC.
linked_model_idstring
Optional APS URN of the model the RFI references. Stored for ScanBIM cross-referencing; not forwarded to ACC.
prioritystring
RFI priority. Defaults to 'medium'.one of critical · high · medium · low
project_id*string
ACC project ID in 'b.<uuid>' or '<uuid>' form (the 'b.' prefix is stripped automatically). Obtainable via acc_list_projects.
question*string
Full question body sent to the design team. Plain text with newlines allowed.
subject*string
Short RFI subject line, 1-255 chars. Appears as the RFI headline in ACC.
acc_list_issuesList up to 50 issues from an ACC project, optionally filtered by status and priority. Returns a normalized array of {id, title, status, priority, due_date}. When to use: you need a dashboard view of open issues, to find a specific issue by metadata, or to check the status of p...4 params

List up to 50 issues from an ACC project, optionally filtered by status and priority. Returns a normalized array of {id, title, status, priority, due_date}. When to use: you need a dashboard view of open issues, to find a specific issue by metadata, or to check the status of p...

Parameters* required
assigned_tostring
Reserved for future filtering by assignee user ID or email. Currently not forwarded to the ACC API.
prioritystring
Filter by priority: 'critical' | 'high' | 'medium' | 'low'. Omit for all priorities.
project_id*string
ACC project ID in 'b.<uuid>' or '<uuid>' form (the 'b.' prefix is stripped automatically). Obtainable via acc_list_projects.
statusstring
Filter by ACC issue status. Accepted values: 'open', 'closed', 'in_review', 'draft'. Omit for all statuses.
acc_list_rfisList up to 50 RFIs from an ACC project, optionally filtered by status. Returns a normalized array of {id, subject, status}. When to use: you need a quick rollup of outstanding or answered RFIs on a project, or to find a specific RFI id. When NOT to use: you want the full respo...2 params

List up to 50 RFIs from an ACC project, optionally filtered by status. Returns a normalized array of {id, subject, status}. When to use: you need a quick rollup of outstanding or answered RFIs on a project, or to find a specific RFI id. When NOT to use: you want the full respo...

Parameters* required
project_id*string
ACC project ID in 'b.<uuid>' or '<uuid>' form (the 'b.' prefix is stripped automatically).
statusstring
Filter by RFI status. Common values: 'draft', 'open', 'answered', 'closed', 'void'. Omit for all.
acc_search_documentsFull-text search the ACC Docs module on a project for drawings, specs, submittals, and other documents matching a query string. Calls the APS Data Management v1 search endpoint scoped to a project. When to use: an agent needs to locate a spec section, a sheet, or a submittal b...3 params

Full-text search the ACC Docs module on a project for drawings, specs, submittals, and other documents matching a query string. Calls the APS Data Management v1 search endpoint scoped to a project. When to use: an agent needs to locate a spec section, a sheet, or a submittal b...

Parameters* required
document_typestring
Optional document type filter forwarded as filter[type]. Common values: 'drawing', 'spec', 'submittal', 'rfi', 'photo'.
project_id*string
ACC project ID in 'b.<uuid>' or '<uuid>' form (the 'b.' prefix is stripped and re-prepended automatically for the Data Management API).
query*string
Free-text search string. Matched against document names and attributes. URL-encoded automatically by the worker.
acc_project_summaryFetch a single ACC/BIM 360 project's full attributes (name, type, dates, address, hub) from the APS Data Management project endpoint. If hub_id is omitted, the first hub the app can see is used. When to use: you need name, type, or scope details for a single project before act...2 params

Fetch a single ACC/BIM 360 project's full attributes (name, type, dates, address, hub) from the APS Data Management project endpoint. If hub_id is omitted, the first hub the app can see is used. When to use: you need name, type, or scope details for a single project before act...

Parameters* required
hub_idstring
Optional ACC hub_id (format 'b.<account-uuid>'). If omitted, the worker picks the first hub returned by /project/v1/hubs.
project_id*string
Full ACC project_id including the 'b.' prefix, exactly as returned by acc_list_projects. Unlike the Issues/RFIs tools, this tool passes the ID through unchanged to the Data Management project endpo...
xr_launch_vr_sessionCreate a shareable WebXR VR walkthrough session URL (and Meta Quest oculus:// deep link + QR code) for a translated model. The session_id is generated server-side; rendering happens in the user's Quest browser. When to use: you need to walk a client or field team through a mod...5 params

Create a shareable WebXR VR walkthrough session URL (and Meta Quest oculus:// deep link + QR code) for a translated model. The session_id is generated server-side; rendering happens in the user's Quest browser. When to use: you need to walk a client or field team through a mod...

Parameters* required
enable_measurementsboolean
Enable in-VR tape-measure tool. Defaults to true.
enable_voice_annotationsboolean
Enable voice-note recording anchored to model elements. Defaults to false.
max_participantsnumber
Maximum concurrent participants in multi-user mode. Integer 1-20. Defaults to 5.
model_id*string
APS URN (base64url-encoded, starts with 'dXJu', unpadded) of the model to load in VR.
session_namestring
Human-readable session label shown in the session list. Defaults to 'VR Session' if omitted.
xr_launch_ar_sessionCreate a shareable WebXR AR passthrough session URL and QR code. On phone or tablet with WebXR AR support, the model is overlaid on the camera feed at the requested scale. When to use: a field user needs to walk the jobsite with a phone and see the model overlaid in-place at 1...3 params

Create a shareable WebXR AR passthrough session URL and QR code. On phone or tablet with WebXR AR support, the model is overlaid on the camera feed at the requested scale. When to use: a field user needs to walk the jobsite with a phone and see the model overlaid in-place at 1...

Parameters* required
model_id*string
APS URN (base64url-encoded, starts with 'dXJu', unpadded) of the model to load in AR.
scalestring
Model placement scale. '1:1' for in-situ real-world scale, 'tabletop' for ~1:50 desk-top display, 'custom' to allow pinch-to-scale. Defaults to '1:1'.one of 1:1 · tabletop · custom
session_namestring
Human-readable session label shown in the session list.
xr_list_sessionsList the last 20 VR/AR sessions launched via xr_launch_vr_session and xr_launch_ar_session, sorted by creation time desc. Sourced from the D1 usage_log table; returns an empty array if D1 is unavailable or no sessions have been recorded. When to use: you want to audit who laun...2 params

List the last 20 VR/AR sessions launched via xr_launch_vr_session and xr_launch_ar_session, sorted by creation time desc. Sourced from the D1 usage_log table; returns an empty array if D1 is unavailable or no sessions have been recorded. When to use: you want to audit who laun...

Parameters* required
model_idstring
Reserved for future filtering by model URN. Currently not applied; all recent xr_* sessions are returned.
session_typestring
Reserved for future filtering by session type. Currently not applied; both VR and AR sessions are returned.one of vr · ar · all
twinmotion_renderQueue a photorealistic Twinmotion-style still render of a translated model with time-of-day, weather, season, and resolution controls. Returns a render_id and preview_url; the actual render pipeline is a ScanBIM roadmap item (Week 5 buildout), so today this tool responds synch...6 params

Queue a photorealistic Twinmotion-style still render of a translated model with time-of-day, weather, season, and resolution controls. Returns a render_id and preview_url; the actual render pipeline is a ScanBIM roadmap item (Week 5 buildout), so today this tool responds synch...

Parameters* required
camera_presetstring
Named camera viewpoint (e.g. 'hero-exterior', 'lobby-entry'). Free-form string passed through to the render pipeline.
model_id*string
APS URN (base64url-encoded, starts with 'dXJu', unpadded) of the model to render.
resolutionstring
Output image resolution. Defaults to '4k'.one of 1080p · 4k · 8k
seasonstring
Vegetation and ground-cover preset. Defaults to 'summer'.one of spring · summer · autumn · winter
time_of_daystring
Sun angle preset driving lighting, shadows, and sky. Defaults to 'noon'.one of dawn · morning · noon · afternoon · dusk · night
weatherstring
Sky and atmospheric preset. Defaults to 'clear'.one of clear · partly_cloudy · overcast · rain · snow
twinmotion_walkthroughQueue a cinematic Twinmotion-style fly-through video of a translated model. Returns a video_id and download_url; the render pipeline is a ScanBIM roadmap item so today this tool responds synchronously with a stub job descriptor. When to use: you want a short marketing or pre-c...3 params

Queue a cinematic Twinmotion-style fly-through video of a translated model. Returns a video_id and download_url; the render pipeline is a ScanBIM roadmap item so today this tool responds synchronously with a stub job descriptor. When to use: you want a short marketing or pre-c...

Parameters* required
duration_secondsnumber
Video duration in seconds. Integer 10-600; defaults to 60 when omitted.
model_id*string
APS URN (base64url-encoded, starts with 'dXJu', unpadded) of the model to animate.
stylestring
Animation and color-grade preset. 'cinematic' = orbits + tilts, 'technical' = orthographic pans, 'presentation' = slow lobby-to-penthouse.one of cinematic · technical · presentation
lumion_renderQueue a Lumion-style architectural visualization still render with landscaping, people, vehicles, and atmospheric effects. Returns a render_id and preview_url; the render pipeline is a ScanBIM roadmap item so today this tool responds synchronously with a stub job descriptor. W...5 params

Queue a Lumion-style architectural visualization still render with landscaping, people, vehicles, and atmospheric effects. Returns a render_id and preview_url; the render pipeline is a ScanBIM roadmap item so today this tool responds synchronously with a stub job descriptor. W...

Parameters* required
add_landscapingboolean
Populate trees, shrubs, and ground cover appropriate to region. Defaults to true.
add_peopleboolean
Populate animated/static human entourage. Defaults to true.
add_vehiclesboolean
Populate cars, trucks, and other vehicles in parking/streets. Defaults to false.
model_id*string
APS URN (base64url-encoded, starts with 'dXJu', unpadded) of the model to render.
stylestring
Overall visual preset. 'photorealistic' = full PBR, 'artistic' = painterly, 'sketch' = line-drawing overlay, 'aerial' = drone perspective.one of photorealistic · artistic · sketch · aerial

Sponsors

Details

Category
Design & Creative
Transport
HTTP
Registry
MCP registry, active
Tools verified
Nov 6, 2026

More from scanbimlabs

Related Design & Creative MCP servers

View all
1kirrrr-2423 avatarShapeWords MCPkirrrr-2423/shapewords-mcpGenerate ShapeWords word clouds as SVG, PNG, or JSON from text or weighted words.0stars
2rosh-studio avatarRosh Mcprosh-studio/rosh-mcpCreate interactive web apps, games, and 3D scenes using Rosh — a plain-English language0stars
3times-up avatarTime's up Skybridge example Apptech.skybridge.times-up/time-s-upSkybridge Example App showcasing a Time's up game with the LLM0stars
4salexashenko avatarMcpsalexashenko/dreamtapDreamtap provides sources of inspiration to your AI to make it more creative.0stars
5dayuanjiang avatarNext AI Draw.iodayuanjiang/next-ai-draw-iodraw.io diagrams your AI agent draws on a live browser canvas that you can also edit by hand36.9Kstars
6dembrandt avatarDembrandtdembrandt/dembrandtDesign tokens from any live site: colours, type, spacing, components, drift against a baseline.4Kstars