MCP Server: Talk to Your Model
The raps serve 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.
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 serve
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": ["serve"]
}
}
}
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": ["serve"],
"env": {
"APS_CLIENT_ID": "your_client_id",
"APS_CLIENT_SECRET": "your_client_secret"
}
}
}
}
Cursor IDE
Add to .cursor/mcp.json in your project📁ProjectContainer for folders and files within a hub.View in glossary:
{
"mcpServers": {
"raps": {
"command": "raps",
"args": ["serve"]
}
}
}
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 51 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_delete | Delete an object |
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 |
project_list | List projects in a hub🏢HubTop-level container in Data Management (company/account).View in glossary |
folder_list | List contents of a folder |
folder_create | Create a new folder |
item_info | Get item details |
item_versions | List item versions |
Admin Bulk Operations
| Tool | Description |
|---|---|
admin_project_list | List projects in an account with filtering |
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 |
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_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 |
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": ["serve"], "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🔌APIInterface for software components to communicate.View in glossary clients:
┌─────────────────┐ ┌──────────────────┐
│ AI Assistant │────▶│ RAPS MCP Server │
│ (Claude, etc.) │◀────│ raps serve │
└─────────────────┘ └────────┬─────────┘
│
┌───────────┬───────────┬───┴───┬───────────┬───────────┐
│ │ │ │ │ │
┌────▼────┐ ┌────▼────┐ ┌────▼───┐ ┌─▼──┐ ┌─────▼─────┐ ┌────▼────┐
│ 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 serve
Check server connectivity:
echo '{"jsonrpc":"2.0","method":"initialize","params":{},"id":1}' | raps serve
Next Steps
- Examples — Common workflows
- Pipelines — Batch automation🤖AutomationReplacing manual processes with software.View in glossary