MCP Server: Talk to Your Model
The raps mcp commandβΆοΈCommandInstruction executed by a CLI tool.View in glossary starts a Model Context Protocolπ§ MCPProtocol for AI assistant tool integration.View in glossary (MCP) server, enabling AI assistants to interact with Autodesk Platform ServicesβοΈAPSAutodesk Platform Services - cloud APIs for CAD/BIM automation.View in glossary through natural language.

New in v3.0.0 β The MCP server is a major feature addition. Expanded in v4.1.0 β Now with admin bulk operations, issues, RFIs, and ACCποΈACCAutodesk's construction management platform.View in glossary extended features. Improved in v4.1.1 β Server starts without credentials and provides interactive setup guidance. Enhanced in v4.4.0 β Now with 51 tools including folder permissions, operation lifecycle, and full CRUD for ACC modules. Expanded in v4.5.0 β Now with 72 tools: custom APIπAPIInterface for software components to communicate.View in glossary calls, portfolio reports, templates, webhooksπͺWebhooksEvent notifications sent to your application.View in glossary, Design Automationπ€Design AutomationRun Autodesk desktop apps in the cloud.View in glossary, Reality Capture, and more. Expanded in v4.11.0 β Now with 101 tools: projectπProjectContainer for folders and files within a hub.View in glossary CRUD (update, archive), user management (remove, update), template convert, and comprehensive coverage of all APS APIs. Expanded in v5.1.0 β Now with 111 tools for broader APS and orchestration coverage. Expanded in v5.6.0 β Now with 114 tools including skill management, pipelineβοΈPipelineAutomated sequence of build/test/deploy steps.View in glossary operations, and swarm orchestration.
From βChat with PDFβ to βChat with Toolsβ
We are moving past the era of βChat with PDF.β The next frontier is Chat with Tools.
If you have ever tried to paste a 500MB JSONπJSONStandard data interchange format.View in glossary metadata extract from a Revitπ RevitAutodesk's BIM software for architecture and construction.View in glossary model into ChatGPT, you know the pain: βMessage too long.β RAG (Retrieval-Augmented Generation) helps, but it is static. It canβt query the current state of a model or trigger an action.
Enter the Model Context Protocol (MCP).
What is MCP?
The Model Context Protocol is an open standard that allows AI assistants to use external tools. Instead of dumping data into the context window, the LLM has access to a live toolkit.
With RAPSπΌRAPSRust CLI for Autodesk Platform Services.View in glossary MCP server, you can ask your AI assistant to:
- Find specific BIMποΈBIMIntelligent 3D model-based design for buildings.View in glossary elements by properties (βall βBasic Wallβ instances over 100mΒ²β)
- Create and manage buckets dynamically
- Upload files and start translations
- Browse BIM 360π΅BIM 360Legacy Autodesk construction platform (predecessor to ACC).View in glossary/ACC projects in real-time
- Check translationβοΈTranslation JobBackground process converting CAD files to viewable formats.View in glossary status and retrieve results
- Query live model metadata without size limits
- Bulk manage users across multiple ACC/BIM 360 projects
- Track and manage issues in construction projects
- Query RFIs, assets, submittals, and checklists
- Navigate folders and items with full permission control
This bridges the gap between the rigid, complex data structures of BIM and the natural language interface of AI.
Quick Start
# Start the MCP server
raps mcp
The server runs in stdio mode, listening for MCP requests from AI assistants.
No credentials required to start. The server starts even without APS credentials configured. When you ask your AI assistant about authentication status, it will provide stepπ§STEPISO standard for 3D CAD data exchange.View in glossary-by-step setup instructions. This means you can add RAPS to your AI assistant first, then get guided through the setup process interactively.
Configuration
Claude Desktop
Add to your Claude configurationβοΈConfigurationSettings controlling application behavior.View in glossary file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Linux: ~/.config/claude/claude_desktop_config.json
Minimal setup (get guided later):
{
"mcpServers": {
"raps": {
"command": "raps",
"args": ["mcp"]
}
}
}
After adding this, restart Claude and ask βWhatβs my auth status?β β RAPS will guide you through credential setup.
Full setup (with credentials):
{
"mcpServers": {
"raps": {
"command": "raps",
"args": ["mcp"],
"env": {
"APS_CLIENT_ID": "your_client_id",
"APS_CLIENT_SECRET": "your_client_secret"
}
}
}
}
Cursor IDE
Add to .cursor/mcp.json in your project:
{
"mcpServers": {
"raps": {
"command": "raps",
"args": ["mcp"]
}
}
}
Note: Cursor uses environment variables from your shellπ₯οΈTerminalApplication for running command-line programs.View in glossary, so ensure
APS_CLIENT_IDandAPS_CLIENT_SECRETare set.
Available Tools
The RAPS MCP server exposes 114 tools organized by functionality:
Authentication
| Tool | Description |
|---|---|
auth_test | Test 2-legged OAuthπ€2-legged authServer-to-server authentication without user context.View in glossary credentials |
auth_status | Check auth state with setup guidance and tool availability |
auth_login | Get instructions for 3-legged OAuthπ€3-legged authUser-authorized authentication with browser login.View in glossary login |
auth_logout | Clear stored 3-legged tokens |
OSS Buckets
| Tool | Description |
|---|---|
bucket_list | List all accessible buckets |
bucket_create | Create a new bucketπͺ£BucketContainer for storing objects in OSS.View in glossary |
bucket_get | Get bucket details |
bucket_delete | Delete an empty bucket |
OSS Objects
| Tool | Description |
|---|---|
object_list | List objects in a bucket |
object_upload | Upload a file to a bucket |
object_upload_batch | Upload multiple files in parallel |
object_download | Download an object from a bucket |
object_info | Get object metadata and details |
object_copy | Copy an object to another bucket or key |
object_delete | Delete an object |
object_delete_batch | Delete multiple objects in a batch |
object_signed_url | Generate pre-signed download URL |
object_urn | Get Base64-encoded URNπURNUnique identifier for objects in APS.View in glossary |
Model Derivative
| Tool | Description |
|---|---|
translate_start | Start a translation job |
translate_status | Check translation status |
Data Management
| Tool | Description |
|---|---|
hub_list | List BIM 360/ACC hubs |
hub_info | Get hubπ’HubTop-level container in Data Management (company/account).View in glossary details |
project_list | List projects in a hub |
project_info | Get project details |
project_users_list | List users in a project |
folder_list | List contents of a folder |
folder_contents | Get full folder contents with metadata |
folder_create | Create a new folder |
item_info | Get item details |
item_create | Create a new item in a folder |
item_delete | Delete an item |
item_rename | Rename an existing item |
item_versions | List item versions |
Project Management
| Tool | Description |
|---|---|
project_update | Update project details |
project_archive | Archive a project |
project_user_remove | Remove a user from a project |
project_user_update | Update a userβs role in a project |
Admin Bulk Operations
| Tool | Description |
|---|---|
admin_project_list | List projects in an account with filtering |
admin_user_list | List users in an account |
admin_user_add | Bulk add users to multiple projects |
admin_user_remove | Bulk remove users from projects |
admin_user_update_role | Bulk update user roles across projects |
admin_folder_rights | Bulk update folder permissions across projects |
project_create | Create a new project in an account |
project_user_add | Add a user to a specific project |
project_users_import | Import users to a project from CSVπCSVTabular data format for spreadsheets.View in glossary |
admin_operation_list | List all bulk operations with status |
admin_operation_status | Get detailed status of a bulk operation |
admin_operation_resume | Resume a paused bulk operation |
admin_operation_cancel | Cancel a running bulk operation |
Issues
| Tool | Description |
|---|---|
issue_list | List issues in a project |
issue_get | Get details of a specific issue |
issue_create | Create a new issue |
issue_update | Update an existing issue |
RFIs
| Tool | Description |
|---|---|
rfi_list | List RFIs in a project |
rfi_get | Get details of a specific RFI |
rfi_create | Create a new RFI |
rfi_update | Update an existing RFI |
ACC Extended
| Tool | Description |
|---|---|
acc_assets_list | List assets in a project |
asset_get | Get details of a specific asset |
asset_create | Create a new asset |
asset_update | Update an existing asset |
asset_delete | Delete an asset |
acc_submittals_list | List submittals in a project |
submittal_create | Create a new submittal |
submittal_update | Update an existing submittal |
acc_checklists_list | List checklists in a project |
checklist_create | Create a new checklist |
checklist_update | Update an existing checklist |
Issue Comments
| Tool | Description |
|---|---|
issue_comments_list | List comments on an issue |
issue_comment_add | Add a comment to an issue |
issue_comment_delete | Delete a comment from an issue |
Checklist Templates
| Tool | Description |
|---|---|
checklist_templates_list | List available checklist templates |
Custom API
| Tool | Description |
|---|---|
api_request | Execute arbitrary HTTPπHTTPProtocol for web communication.View in glossary requests to any APS endpoint |
Portfolio Reports
| Tool | Description |
|---|---|
report_rfi_summary | Aggregate RFI summary across portfolio projects |
report_issues_summary | Aggregate issues summary across portfolio projects |
Template Management
| Tool | Description |
|---|---|
template_list | List templates in an account |
template_info | Get template details |
template_create | Create a new project template |
template_update | Update an existing template |
template_archive | Archive a template |
template_convert | Convert a project to a template |
Webhooks
| Tool | Description |
|---|---|
webhook_list | List webhook subscriptions |
webhook_create | Create a new webhook |
webhook_get | Get webhook details |
webhook_update | Update an existing webhook |
webhook_delete | Delete a webhook |
webhook_events | List available webhook event types |
Design Automation
| Tool | Description |
|---|---|
da_engines_list | List available DA engines |
da_appbundles_list | List registered app bundles |
da_activities_list | List registered activities |
da_workitem_create | Create a new work itemβ‘Work ItemSingle execution of a Design Automation Activity.View in glossary |
da_workitem_status | Check work item status |
da_workitems_list | List work items |
Reality Capture
| Tool | Description |
|---|---|
reality_list | List photoscenes |
reality_create | Create a new photoscene |
reality_process | Start photoscene processing |
reality_status | Check photoscene status |
reality_result | Get photoscene results |
reality_delete | Delete a photoscene |
reality_formats | List supported output formats |
How It Works: Live Tool Execution
Instead of dumping data into the context window, the LLM has access to a toolkit. When you ask a question, the flow looks like this:
- You: βFind all βBasic Wallβ instances in the βHospital.rvtπRVTRevit's native file format.View in glossaryβ file that are over 100mΒ².β
- LLM: Thinking⦠I need to inspect the model metadata.
- LLM (Action): Calls
raps model:query --file Hospital.rvt --category Walls - RAPS: Returns a filtered JSON snippet.
- LLM (Response): βI found 12 walls matching your criteria. Here are their IDsβ¦β
You donβt need to write SQL or complex filter queries. You just ask. The AI translates your natural language into the appropriate RAPS commands.
Example Conversations
First-time setup (no credentials)
You: Whatβs my authentication status?
AI: Let me check your authentication status.
Setup Required
No APS credentials are configured yet. Hereβs how to get started:
- Go to https://aps.autodesk.com and create a free account
- Create a new application to get your Client ID and SecretπSecretEncrypted sensitive configuration value.View in glossary
- Add credentials to your MCP configuration:
{ "mcpServers": { "raps": { "command": "raps", "args": ["mcp"], "env": { "APS_CLIENT_ID": "your_client_id", "APS_CLIENT_SECRET": "your_client_secret" } } } }After adding credentials, restart your AI assistant to apply the changes.
Checking authentication status (with credentials)
You: Whatβs my current authentication status?
AI: Let me check your authentication status.
Authentication Status:
- 2-legged OAuthπOAuthIndustry-standard authorization protocol used by APS.View in glossary: β Valid
- 3-legged OAuth: Not logged in
Tool Availability:
- β OSSπ¦OSSAPS cloud storage for files and models.View in glossary (bucket_, object_) - available
- β Derivativeπ€DerivativeAny output generated from model translation.View in glossary (translate_*) - available
- β Data ManagementπData ManagementAPS service for accessing files in ACC, BIM 360, and Fusion.View in glossary (hub_, project_) - requires 3-legged auth
To access BIM 360/ACC data, you need to log in with your Autodesk account. Run
raps auth loginin your terminal.
Creating a bucket
You: Create a new persistent bucket in the US region called βmy-project-filesβ
AI: Iβll create that bucket for you.
β Created bucket βmy-project-filesβ with persistent retention in US region.
Checking buckets
You: What buckets do I have access to?
AI: Let me check your accessible buckets.
You have 3 buckets:
- my-project-files (persistent, US)
- temp-uploads (transient, US)
- eu-data (persistent, EMEA)
Advanced model querying
You: Find all steel beams in the hospital model that are longer than 10 meters and show me their material properties
AI: Let me query the model metadata for you.
Found 47 steel beams over 10 meters:
- W12x45 beams: 12 instances (Grade 50 steel)
- W14x30 beams: 23 instances (Grade 36 steel)
- W16x67 beams: 12 instances (Grade 50 steel)
All beams have fire rating of 2 hours. Would you like the complete material specifications?
Translation workflow
You: Start translating the file βbuilding.rvtβ in bucket βmy-project-filesβ to SVF2πSVF2Current APS viewing format (improved performance).View in glossary format
AI: Iβll start the translation. First, let me get the URN for that file.
β Translation started. The file is being converted to SVF2 format. You can check the status by asking me about it.
Bulk user management
You: Add john.smith@company.com to all projects that start with β2026-β as a Project Admin
AI: Iβll add that user to the matching projects. Let me first find all projects with the β2026-β prefix.
Found 8 projects matching β2026-*β:
- 2026-Hospital-Phase1
- 2026-Hospital-Phase2
- 2026-Office-Tower β¦ and 5 more
β Started bulk add operation. User will be added to all 8 projects as Project Admin. Operation ID: op_abc123. You can ask me for status updates.
Managing issues
You: Create an issue for the Hospital project about the missing fire door schedule
AI: Iβll create that issue for you.
β Created issue #47: βMissing fire door scheduleβ
- Project: 2026-Hospital-Phase1
- Type: Design
- Status: Open
- Assignee: Unassigned
Would you like me to assign it to someone?
Querying RFIs
You: Show me all open RFIs in the Office Tower project
AI: Let me query the RFIs for that project.
Found 3 open RFIs:
- RFI-012: βClarification on structural beam dimensionsβ (Due: Jan 20)
- RFI-015: βMEP coordination at Level 5β (Due: Jan 22)
- RFI-018: βCurtain wall detail at entranceβ (Due: Jan 25)
Would you like details on any of these?
Architecture
The MCP server reuses all existing RAPS API clients:
βββββββββββββββββββ ββββββββββββββββββββ
β AI Assistant ββββββΆβ RAPS MCP Server β
β (Claude, etc.) βββββββ raps mcp β
βββββββββββββββββββ ββββββββββ¬ββββββββββ
β
βββββββββββββ¬ββββββββββββ¬ββββ΄ββββ¬ββββββββββββ¬ββββββββββββ
β β β β β β
ββββββΌβββββ ββββββΌβββββ ββββββΌββββ βββΌβββ βββββββΌββββββ ββββββΌβββββ
β Auth β β OSS β β Deriv β β DM β β Admin β β ACC β
β Client β β Client β β Client β β β β Clients β β Clients β
ββββββ¬βββββ ββββββ¬βββββ ββββββ¬ββββ ββββ¬ββ βββββββ¬ββββββ ββββββ¬βββββ
β β β β β β
βββββββββββββ΄ββββββββββββ΄βββββ¬ββββ΄ββββββββββ΄βββββββββββββ
β
ββββββββΌβββββββ
β APS APIs β
βββββββββββββββ
The Admin and ACC clients are created on-demand for each request to support bulk operations and project-specific APIs.
Limitations
- No file uploads: MCP currently doesnβt support binary file transfer. Use CLIπ»CLIText-based interface for running commands.View in glossary for uploads.
- 3-legged auth requires CLI: While MCP tools can check auth status and provide guidance, the actual 3-legged login must be done via
raps auth loginin a terminal with browser access. - Stdio transport: Server must be started by the AI client, not as a daemon.
Debugging
Enable verbose logging:
RUST_LOG=debug raps mcp
Check server connectivity:
echo '{"jsonrpc":"2.0","method":"initialize","params":{},"id":1}' | raps mcp
Next Steps
- Examples β Common workflows
- Pipelines β Batch automationπ€AutomationReplacing manual processes with software.View in glossary