ACC MCP
{
"answer": "ACC MCP is a server that lets Claude manage an ISO 19650 / TCVN 14177 Common Data Environment on Autodesk Construction Cloud. Here's what you can do:\n\n- Authentication — Check auth status, sign in/out via 3-legged OAuth/PKCE, and see the signed-in user with visible hubs (acc_auth_status, acc_login, acc_logout, acc_whoami).\n- Hubs & Projects — List ACC/BIM 360 hubs and projects (with filters/pagination), get project details including product activation status, and create new ACC projects (optionally cloned from templates) with location, timezone, currency, and job number (acc_list_hubs, acc_list_projects, acc_get_project, acc_create_project).\n- Project Members — List, add, update, and remove members; bulk-import up to 200 at once; list companies; manage product access, roles, and admin status (acc_list_project_users, acc_add_project_user, acc_update_project_user, acc_remove_project_user, acc_import_project_users, acc_list_companies).\n- CDE Folder Management — Get top folders, list contents, create single folders or nested ISO 19650 CDE trees (WIP/Shared/Published/Archived) idempotently, rename, move, soft-delete/restore, and search recursively (acc_get_top_folders, acc_list_folder, acc_create_folder, acc_create_folder_structure, acc_rename_folder, acc_move_folder, acc_delete_folder, acc_restore_folder, acc_search_folder).\n- Folder Permissions — Get, set, and remove permissions for users/roles/companies with standard levels (view, view_download, create, upload, edit, manage) or custom action lists (acc_get_folder_permissions, acc_set_folder_permissions, acc_remove_folder_permissions).\n- File Operations — Get file info and version history, upload (chunked S3, version-preserving), rename, download or get signed links, and copy files between folders (acc_get_item, acc_list_item_versions, acc_upload_file, acc_rename_file, acc_download_file, acc_copy_file).\n- Status & Metadata — List/create custom attribute definitions, batch-read document metadata (revision, status, custom attributes), set custom attribute values on versions, and read the project's file-naming standard (acc_list_custom_attributes, acc_create_custom_attribute, acc_get_docs_metadata, acc_set_custom_attributes, acc_get_naming_standard).\n- ISO 19650 Naming Compliance — List naming conventions, validate container IDs field-by-field with suggestions, compose correct names from field values, generate CDE folder structure templates, and audit folder trees for naming compliance (acc_naming_configs, acc_validate_names, acc_compose_name, acc_cde_structure_template, acc_audit_folder_naming).\n- Document Reviews — List approval workflows, list/monitor reviews (open/closed/void/failed), get detailed review progress, and initiate document reviews on existing workflows (acc_list_review_workflows, acc_list_reviews, acc_get_review, acc_create_review)."
}
Allows managing an ISO 19650 / TCVN 14177 Common Data Environment on Autodesk Construction Cloud, including projects, CDE folder trees, permissions, files, document status, and naming compliance.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ACC MCPSet up the ISO 19650 folder structure for the new project"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
ACC MCP
MCP server that lets Claude manage an ISO 19650 / TCVN 14177 Common Data Environment on Autodesk Construction Cloud — projects, CDE folder trees, permissions, files, document status and naming compliance.
Contents
Related MCP server: AutoCAD MCP Server
CDE working rules
These rules are built into the server (they are part of the MCP instructions, and the
destructive tools refuse to run without an explicit confirmed_by_user=true). They apply
to every action on the CDE unless the user says otherwise.
Các nguyên tắc này đã được nhúng vào server và áp dụng mặc định cho mọi thao tác trên CDE.
Never delete a file or a folder. Nothing is removed from a CDE — superseded containers are moved to the Archived area.
acc_delete_folderrefuses unless the user explicitly asked for the deletion. Không bao giờ xóa file hay thư mục.Files are only overwritten. Upload with the same name so ACC adds a new version and the lineage is preserved. Uploading under a different name creates a separate document and orphans its history. File chỉ được ghi đè (upload cùng tên = version mới).
Rename only on a specific request — for both files and folders. A file name is the information-container ID and normally never changes. Use
acc_rename_file(renames in place, keeps the history); never re-upload under a new name. Chỉ đổi tên khi được yêu cầu cụ thể. Folder renaming does not work through the ACC API (the API updates the internalnamebut not thedisplayNameshown in ACC Docs) — ask the user to rename the folder in the ACC Docs UI, and never emulate it by deleting and re-creating the folder.Change document state through metadata, not through the name: Status (suitability), Revision, Classification, Description —
acc_set_custom_attributes. Status / Revision / Classification are native ACC attributes of the file naming standard; create a custom attribute only where ACC has no equivalent. Đổi trạng thái tài liệu bằng metadata, không đổi tên file.Only issued/shared containers belong on the CDE. Keep work in progress (P0x.0y) outside it until it is actually shared. Chỉ đưa lên CDE bản đã thực sự chia sẻ/phát hành.
Requirements
Item | Required |
OS | Windows 10/11 (macOS and Linux work; paths below are Windows) |
Host app | Claude Desktop, or Codex CLI |
Python | 3.10 or newer |
uv | 0.5 or newer — |
Autodesk | An APS account with a Developer Hub, and an ACC hub where you are a project member |
Git | Any recent version |
Step 1 — Install
1.1 Create the APS app
Sign in at https://aps.autodesk.com with the Autodesk account you use for ACC.
If prompted that you have no hub: Get an APS plan → View options → pick the Free plan.
Create a Developer Hub if you do not have one: https://manage.autodesk.com → Products and Services → Hubs → Create hub → type APS developer hub → Create and Activate.
Back at aps.autodesk.com → profile menu → My applications → select your Developer Hub → Create application.
Application type — pick one:
Traditional Web App — has a Client Secret; fill in
APS_CLIENT_SECRET.Desktop, Mobile, Single-Page App — no secret; leave
APS_CLIENT_SECRETempty (PKCE public client).Server-to-Server — will not work; it has no 3-legged login.
Callback URL: enter exactly
http://localhost:8087/callback.API Access: tick Data Management API, Autodesk Construction Cloud API, BIM 360 API.
Save changes, then copy the Client ID (and Client Secret via Show).
1.2 Enable the Custom Integration in ACC
Required for every hub you want to reach, including in 3-legged mode.
Sign in at acc.autodesk.com as an Account Admin of the hub → Account Admin.
Left menu → Custom Integrations (some hubs: Settings → Custom Integrations) → Add custom integration.
Paste the Client ID, give it a display name, tick both Account Administration and Document Management → Add.
Make sure your Autodesk account is a member of at least one Docs project in that hub.
For hubs where you are not Account Admin, send the Client ID to that hub's Account Admin.
1.3 Clone and install
git clone https://github.com/nhantruong96/acc-mcp.git
cd acc-mcp
uv sync
uv run python -m acc_mcp --selfcheckExpected last line: selfcheck OK, with tools registered 45.
Re-run uv sync after every git pull.
Or run the script, which also creates .env and prints the Claude Desktop values:
powershell -ExecutionPolicy Bypass -File scripts\install.ps1Extras:
uv sync --extra templates # adds openpyxl, needed only by scripts\gen_acc_naming_template.py1.4 Configure .env
copy .env.example .envFill in APS_CLIENT_ID (and APS_CLIENT_SECRET if you chose Traditional Web App). Never commit .env; it is in .gitignore.
Variable | Default | Meaning |
| (required) | Client ID of the APS app |
| (empty) | Fill in only for a Traditional Web App |
|
| Must match the APS app exactly |
|
|
|
|
|
|
|
| Default naming convention id |
|
| Extra naming-convention JSON files |
|
| Token and download storage |
| (empty) | Alternate |
| (empty) | 2-legged impersonation only |
Instead of .env, you can put the same variables in the env block of the Claude Desktop config in Step 2.
Step 2 — Register with Claude Desktop
Open the config file:
Microsoft Store build:
%LOCALAPPDATA%\Packages\Claude_pzs8sxrjxfjjc\LocalCache\Roaming\Claude\claude_desktop_config.jsonClassic installer:
%APPDATA%\Claude\claude_desktop_config.jsonOr in the app: Settings → Developer → Edit Config.
Add the
accblock insidemcpServers, keeping any other servers:
{
"mcpServers": {
"acc": {
"command": "C:\\path\\to\\acc-mcp\\.venv\\Scripts\\python.exe",
"args": ["-m", "acc_mcp"],
"env": {
"APS_CLIENT_ID": "PASTE_CLIENT_ID_HERE",
"APS_CLIENT_SECRET": "PASTE_SECRET_OR_LEAVE_EMPTY",
"APS_CALLBACK_URL": "http://localhost:8087/callback",
"APS_REGION": "US",
"ACC_AUTH_MODE": "3lo",
"ACC_MCP_NAMING_CONFIG": "iso19650-uk"
}
}
}
}Save, fully quit Claude Desktop (right-click the tray icon → Quit), then reopen it.
Settings → Developer must show acc as running.
Step 3 — First run
In a new conversation, ask in plain language:
"Check the ACC authentication status" →
acc_auth_status— expectapp_configured: true,auth_mode: 3lo."Sign me in to Autodesk" →
acc_login— a browser opens; sign in and click Allow."Which hubs and projects can I see?" →
acc_whoami→acc_list_hubs→acc_list_projects.
Set up a CDE for one project, in this order:
"Create an ACC project named
[name], type[Street/Bridge/…], job number[no.], timezone Asia/Bangkok" →acc_create_project."Check whether the project products are active yet" →
acc_get_project— wait fordocs: active."Add
[email]to Docs and make me project admin" →acc_add_project_user."In Project Files, build the CDE tree with disciplines
[…]and milestones[…]" →acc_cde_structure_template→acc_create_folder_structure."Design team uploads to WIP; client gets view/download on PUBLISHED; ARCHIVED is manage-only" →
acc_set_folder_permissions."Audit the naming of everything under SHARED" →
acc_audit_folder_naming."Set status S4 on the files just approved" →
acc_set_custom_attributes.
Conventions:
Container ID fields, in order:
Project-Originator-Volume-Level-Type-Role-Number, separator-.Status codes
S0–S5,A1…; revision codes alphanumeric, 3–8 characters (e.g.P01,C01).Data Management ids carry a
b.prefix; every tool accepts the id with or without it.Region defaults to
US; passregionper call or setAPS_REGIONfor EMEA hubs.Sessions last ~15 days of inactivity, then run
acc_loginagain.Two actions must be done in the ACC web UI: turning on File naming standard (Docs → Files → Settings), and clicking approve/reject in Reviews.
Generate an ACC naming-standard workbook to import:
uv sync --extra templates
uv run python scripts\gen_acc_naming_template.py iso19650-uk out.xlsx --name "Project naming standard"Then in ACC Docs → Settings → File naming standard → Import → pick out.xlsx.
Using with Codex
Install the server as in Step 1 — Install.
Open
%USERPROFILE%\.codex\config.toml.Add:
[mcp_servers.acc]
command = "C:\\path\\to\\acc-mcp\\.venv\\Scripts\\python.exe"
args = ["-m", "acc_mcp"]
[mcp_servers.acc.env]
APS_CLIENT_ID = "PASTE_CLIENT_ID_HERE"
APS_CLIENT_SECRET = "PASTE_SECRET_OR_LEAVE_EMPTY"
APS_CALLBACK_URL = "http://localhost:8087/callback"
APS_REGION = "US"
ACC_AUTH_MODE = "3lo"
ACC_MCP_NAMING_CONFIG = "iso19650-uk"Restart the Codex CLI.
Run
/mcpin Codex to confirmaccis listed.
Testing with a standalone client
uv run python -m acc_mcp --selfcheck
uv run acc-mcp --version
uv run acc-mcp --list-tools
npx @modelcontextprotocol/inspector uv run acc-mcpAdding a new tool
Open the matching module in
src/acc_mcp/tools/(or create one).Define the function and decorate it:
from ..app import mcp
from .common import api_get
@mcp.tool()
async def acc_my_tool(project_id: str) -> dict:
"""One-line summary shown to the model. Then the argument details."""
return await api_get(f"/project/v1/projects/{project_id}")If you created a new module, add it to
src/acc_mcp/tools/__init__.py.Never use
print()— stdout is the JSON-RPC channel.Verify:
uv run python -m acc_mcp --selfcheck
uv run acc-mcp --list-toolsFully quit and reopen Claude Desktop.
Tool list
Group | Tools |
Authentication |
|
Hubs & projects |
|
Members |
|
CDE folders |
|
Permissions |
|
Files |
|
Status & metadata |
|
ISO 19650 naming |
|
Reviews |
|
Add a project-specific naming convention: copy src/acc_mcp/naming_configs/iso19650-uk.json to %USERPROFILE%\.acc-mcp\naming\[project-code].json, edit the code tables, then pass config_id="[project-code]" or set ACC_MCP_NAMING_CONFIG.
Troubleshooting
Symptom | Fix |
|
|
| Wrong Client ID; app not attached to a Developer Hub (Step 1.1); or app-type mismatch — Traditional Web App needs the secret, Desktop/Mobile/SPA needs it empty. |
| App not added to the hub's Custom Integrations (Step 1.2), and Document Management not ticked. Or your account is not a member of any Docs project in that hub. |
403 on an operation | Your Autodesk account lacks the right: Account Admin to create projects, CONTROL/Manage for folder permissions, Project Admin to edit members. |
404 on Admin calls (list/create project) | Wrong region — try |
| Port taken. Change the port in |
Login reports a timeout | Ask Claude to run |
| Unused for ~15 days — run |
Server missing in Claude Desktop | Bad JSON (comma, |
New project stuck at | Normal for a few minutes. |
Cannot move a file between folders | Not supported by the API — use |
Naming standard changes do not apply | The API is read-only for naming standards. Import the workbook in ACC Docs, then confirm with |
Reviews cannot be approved from Claude | Approve/reject only exists in the ACC UI. |
Repository layout
src/acc_mcp/
server.py entry point (--version, --selfcheck, --list-tools)
__main__.py python -m acc_mcp
app.py FastMCP instance
config.py environment variables, endpoints, scopes
auth.py 3-legged OAuth + PKCE, token storage
http.py APS HTTP client
ids.py 'b.' prefix handling
naming.py ISO 19650 name validation / composition
naming_configs/ bundled naming conventions (iso19650-uk.json)
tools/ the 45 MCP tools, grouped by area
scripts/
install.ps1 uv sync + selfcheck
gen_acc_naming_template.py naming config JSON -> ACC import .xlsx
naming_templates/
Default_ISO_19650_master.xlsx Autodesk master workbook used as the mould
pyproject.toml dependencies and console script
uv.lock committed on purpose so `uv sync` is reproducible
.env.example template for .env (never commit .env)License
MIT — see LICENSE.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityDmaintenanceAI-powered MCP server that enables Claude and other LLMs to interact directly with construction documents, drawings, and specifications through advanced RAG and hybrid search capabilities.Last updated7MIT
- Flicense-qualityCmaintenanceAn MCP server that bridges Claude with AutoCAD, enabling to generate architectural floor plans, draw geometry, and export DXF files just by describing what you need in natural language.Last updated
- Flicense-qualityBmaintenanceDrive Autodesk Revit, AutoCAD & Civil 3D from Claude over MCP — 190+ real actions, runs locally.Last updated
- Flicense-qualityBmaintenanceA remote Model Context Protocol server that lets Claude on claude.ai browse your Autodesk Construction Cloud (ACC) hubs/projects/files and hand you a link that opens the actual model in a hosted Autodesk Viewer page.Last updated
Related MCP Connectors
MCP server giving Claude AI access to 22+ NYC public-record databases for real estate due diligence
Augments MCP Server - A comprehensive framework documentation provider for Claude Code
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/nhantruong96/acc-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server