# ACC MCP (remote · acc-mcp.itmartin24.workers.dev)

Autodesk Construction Cloud via APS — projects, issues, RFIs, documents, submittals.

- Trust score: 67/100 (medium)
- Change this week: +7
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- remote · `acc-mcp.itmartin24.workers.dev`: 67/100 (this document), [markdown](https://verifymcp.io/servers/io-scanbimlabs-acc-mcp/acc-mcp.md), [page](https://verifymcp.io/servers/io-scanbimlabs-acc-mcp/acc-mcp)

## Channel facts

- Endpoint: `https://acc-mcp.itmartin24.workers.dev/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.0.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Endpoint Security**: 77/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation is enforced on tool calls, but the challenge carries no valid RFC 9728 metadata, so a client cannot discover where to get a token.
  - HTTPS check failed: the endpoint is reachable over plaintext HTTP.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 57/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 3452 tokens (~383/item across 9 items; 9 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Capabilities**: 20/100
  - Spec-recency check failed: implements MCP spec 2024-11-05; the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add --transport http io-scanbimlabs-acc-mcp https://acc-mcp.itmartin24.workers.dev/mcp
```

### Codex

```toml
[mcp_servers.io-scanbimlabs-acc-mcp]
url = "https://acc-mcp.itmartin24.workers.dev/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "io-scanbimlabs-acc-mcp": {
      "type": "remote",
      "url": "https://acc-mcp.itmartin24.workers.dev/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add io-scanbimlabs-acc-mcp --url https://acc-mcp.itmartin24.workers.dev/mcp --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  io-scanbimlabs-acc-mcp:
    url: "https://acc-mcp.itmartin24.workers.dev/mcp"
```

### Other

```json
{
  "mcpServers": {
    "io-scanbimlabs-acc-mcp": {
      "type": "http",
      "url": "https://acc-mcp.itmartin24.workers.dev/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-02 (score 67, +1)

No change was recorded against any check on this day. Stability & Change Management went from 20 to 23. That category is still filling its 30-day observation window: 6 days of observed history at the previous scan, 7 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-31 (score 66, +4)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 62, 0)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-29 (score 62, +1)

No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-28 (score 61, +1)

No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-27 (score 60, 0)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-26 (score 60)

First indexed and scored.

## MCP tools (9)

### `acc_list_projects` (~282 tokens)

Enumerate every ACC and BIM 360 project the authenticated APS app can see by walking all accessible hubs and their project lists.

When to use: The agent needs to discover project IDs before calling any other tool (e.g. the user says 'show me my projects' or 'find issues in the Tower project' and no project_id is known yet). Also useful to confirm hub membership for a project.

When NOT to use: Do not call this repeatedly in a loop — cache the result; if the user already supplied a project_id starting with 'b.', skip discovery.

APS scopes: data:read account:read. No write scope needed.

Rate limits: APS default ~50 req/min per app per endpoint; BIM 360 hubs endpoints are pageable (limit 200). This tool fans out 1 hubs call + N project calls (one per hub) so call it sparingly on tenants with many hubs.

Errors: 401 (APS token expired — refresh and retry once); 403 (app not provisioned in the BIM 360/ACC account — ask user to have an account admin add the APS client_id); 404 (rare, indicates hub deleted mid-call); 429 (rate limit — back off 60s); 5xx (ACC upstream — retry with jitter).

Side effects: None. Read-only and idempotent.

### `acc_create_issue` (~478 tokens)

Create a new ACC issue (field observation, coordination clash, safety, quality, etc.) in the target project via the APS Construction Issues API.

When to use: The user wants to log a new issue — e.g. 'open a high-priority issue about the leaking valve on level 3' or a downstream agent detected a defect during a model review and needs to record it for the project team.

When NOT to use: Do not use to modify an existing issue (use acc_update_issue) and do not use for RFIs (use acc_create_rfi).

APS scopes: data:read data:write account:read.

Rate limits: ACC Issues API limited to ~100 req/min per app; APS default ~50 req/min per endpoint — batch creations with backoff.

Errors: 401 (APS token expired — refresh); 403 (user lacks 'Create Issues' permission on the project or scope insufficient — surface to user); 404 (project_id not found — verify the 'b.' prefix and that the project belongs to a hub the app can see via acc_list_projects); 422 (validation — required field like title/description missing or priority enum invalid); 429 (rate limit — retry after 60s); 5xx (ACC upstream — retry with jitter, do not double-create).

Side effects: Creates a persistent issue record visible to all project members. NOT idempotent — a retry on a 5xx may create duplicates; dedupe by title before retrying.

Input parameters:

- `assigned_to` (string): Optional APS user ID (oxygen ID / ACC user UUID) of the assignee. Leave null for unassigned.
- `description` (string, required): Detailed issue description / body. Plain text, up to ~10,000 chars. Required.
- `due_date` (string): Optional due date in ISO 8601 date format (YYYY-MM-DD).
- `priority` (string): Issue priority. Defaults to 'medium' if omitted.
- `project_id` (string, required): ACC project ID. MUST use the 'b.' prefix literal (e.g. 'b.a1b2c3d4-...'). The worker strips the prefix internally for the Issues endpoint. Obtain via acc_list_projects.
- `title` (string, required): Short issue title, 1–255 chars. Required.

### `acc_update_issue` (~376 tokens)

Patch an existing ACC issue — change status, priority, assignee, or description via the APS Construction Issues API.

When to use: The user asks to close/reopen/escalate an issue, reassign it, or edit its body. Typical agent flow: acc_list_issues → pick an id → acc_update_issue.

When NOT to use: Do not use to create issues (acc_create_issue) or to add comments (not supported by this server).

APS scopes: data:read data:write account:read.

Rate limits: ACC Issues API ~100 req/min per app; APS default ~50 req/min per endpoint.

Errors: 401 (APS token expired — refresh); 403 (user lacks edit permission or status transition not allowed by project workflow); 404 (project_id or issue_id not found — verify 'b.' prefix on project_id and that issue_id belongs to that project); 422 (validation — invalid status/priority enum or illegal state transition); 429 (rate limit — back off 60s); 5xx (ACC upstream — retry with jitter).

Side effects: Mutates the issue record. Idempotent when the same body is resent (PATCH semantics) — safe to retry.

Input parameters:

- `assigned_to` (string): APS user ID of the new assignee. Omit to leave unchanged.
- `description` (string): Replacement description body. Plain text.
- `issue_id` (string, required): UUID of the issue to update, as returned by acc_list_issues or acc_create_issue.
- `priority` (string): New priority.
- `project_id` (string, required): ACC project ID. MUST use the 'b.' prefix literal. Obtain via acc_list_projects.
- `status` (string): New status. Project workflow may forbid certain transitions (e.g. draft → closed).

### `acc_list_issues` (~359 tokens)

List and filter issues from a single ACC project (limit 50 per call) via the APS Construction Issues API.

When to use: The user or upstream agent needs to review open issues, count issues by status/priority, or look up an issue_id before calling acc_update_issue. E.g. 'show me all critical open issues on the Tower project'.

When NOT to use: Do not use to fetch RFIs (use acc_list_rfis) or to search documents.

APS scopes: data:read account:read. No write scope required.

Rate limits: ACC Issues API ~100 req/min per app; results pageable (limit 50 here, max 200 upstream). For large projects, call once and filter client-side instead of looping.

Errors: 401 (APS token expired — refresh); 403 (user lacks 'View Issues' permission on project or scope insufficient); 404 (project_id not found — verify 'b.' prefix and hub membership via acc_list_projects); 422 (invalid filter value — check status/priority spelling); 429 (rate limit — back off 60s); 5xx (ACC upstream — retry with jitter).

Side effects: None. Read-only and idempotent.

Input parameters:

- `assigned_to` (string): Optional assignee APS user ID filter. Accepted but not currently forwarded as a URL filter by this server — filter client-side if needed.
- `priority` (string): Optional priority filter. Typical values: critical, high, medium, low.
- `project_id` (string, required): ACC project ID. MUST use 'b.' prefix literal. Obtain via acc_list_projects.
- `status` (string): Optional status filter. Typical values: open, in_review, closed, draft.

### `acc_create_rfi` (~402 tokens)

Create a new Request For Information (RFI) in an ACC project via the APS Construction RFIs API. RFI is created in 'draft' status — the project workflow owner typically transitions it to 'submitted'.

When to use: The user needs a formal question-of-record to the design or GC team — e.g. 'raise an RFI asking for clarification on the Level 2 beam schedule'. RFIs are the auditable channel for clarifications; issues are for field observations.

When NOT to use: Do not use for informal observations (use acc_create_issue) or to answer an existing RFI (not supported here).

APS scopes: data:read data:write account:read.

Rate limits: APS default ~50 req/min per endpoint per app. RFIs share the Construction API umbrella with issues (~100 req/min combined).

Errors: 401 (APS token expired — refresh); 403 (user lacks RFI create permission on project); 404 (project_id not found — verify 'b.' prefix and hub membership); 422 (validation — subject/question missing or priority enum invalid); 429 (rate limit — back off 60s); 5xx (ACC upstream — retry with jitter, check for duplicate before retrying).

Side effects: Creates a persistent RFI record. NOT idempotent — retry on 5xx risks duplicates; dedupe by subject before retrying.

Input parameters:

- `assigned_to` (string): Optional APS user ID of the person the RFI is directed to.
- `priority` (string): RFI priority. Defaults to 'medium' if omitted.
- `project_id` (string, required): ACC project ID. MUST use 'b.' prefix literal. Obtain via acc_list_projects.
- `question` (string, required): Full RFI question body. Plain text, up to ~10,000 chars. Required.
- `subject` (string, required): Short RFI subject/title, 1–255 chars. Required.

### `acc_list_rfis` (~282 tokens)

List and filter RFIs from a single ACC project (limit 50 per call) via the APS Construction RFIs API.

When to use: The user wants to review open RFIs, count outstanding ones, or look up an RFI ID. E.g. 'how many RFIs are still open on the Tower project?'

When NOT to use: Do not use for issues (use acc_list_issues) or document search (use acc_search_documents).

APS scopes: data:read account:read. No write scope required.

Rate limits: APS default ~50 req/min per endpoint; ACC Construction API shared ~100 req/min cap. Pageable (limit 50 here; upstream max 200).

Errors: 401 (APS token expired — refresh); 403 (user lacks RFI view permission); 404 (project_id not found — verify 'b.' prefix and hub membership); 422 (invalid filter value); 429 (rate limit — back off 60s); 5xx (ACC upstream — retry).

Side effects: None. Read-only and idempotent.

Input parameters:

- `project_id` (string, required): ACC project ID. MUST use 'b.' prefix literal. Obtain via acc_list_projects.
- `status` (string): Optional RFI status filter. Typical values: draft, submitted, open, answered, closed, void.

### `acc_search_documents` (~365 tokens)

Full-text search the ACC Docs repository of a project for drawings, specs, submittals, and other files via the APS Data Management search endpoint.

When to use: The user wants to find a document by keyword (filename, sheet number, or metadata match). E.g. 'find the latest A-201 sheet' or 'search for mechanical specs on Tower project'.

When NOT to use: Do not use to upload a file (use acc_upload_file); do not use to fetch issues/RFIs. If you already have a document URN, fetch it directly with an agent that has Data Management folder/item access.

APS scopes: data:read account:read. No write scope required.

Rate limits: APS Data Management ~50 req/min per app per endpoint; pageable (limit 200 upstream). Avoid tight query loops.

Errors: 401 (APS token expired — refresh); 403 (user lacks Docs view permission on the project); 404 (project_id not found — verify 'b.' prefix and hub membership); 422 (invalid filter syntax — simplify query text); 429 (rate limit — back off 60s); 5xx (ACC upstream — retry with jitter).

Side effects: None. Read-only and idempotent.

Input parameters:

- `document_type` (string): Optional APS document type filter (e.g. 'items:autodesk.bim360:File', 'items:autodesk.bim360:Document').
- `project_id` (string, required): ACC project ID. MUST use 'b.' prefix literal. The worker re-adds the prefix for Data Management URL formatting. Obtain via acc_list_projects.
- `query` (string, required): Free-text search string matched against filenames, titles, and indexed metadata. 1–500 chars.

### `acc_upload_file` (~534 tokens)

Upload a file from a public source URL into an ACC project folder. Runs the full four-step APS Data Management flow: top-folder discovery → storage object creation → OSS PUT of bytes → first-version item creation.

When to use: The user wants to push a document/photo/model into ACC Docs — e.g. 'upload this site photo to the Tower project Photos folder' or an automation needs to archive an exported report into Project Files.

When NOT to use: Do not use for files already in ACC; do not use for files behind auth-gated URLs (fetch step is an unauthenticated GET). For very large files (>100MB), prefer the chunked/signed-S3 upload flow, not this single-PUT implementation.

APS scopes: data:read data:write data:create account:read.

Rate limits: APS Data Management ~50 req/min per endpoint; OSS upload bandwidth typically 100 MB/min per app. This tool issues 3–5 APS calls per upload, so budget accordingly.

Errors: 401 (APS token expired — refresh); 403 (user lacks folder write permission — ask account admin to grant 'Edit' on folder); 404 (project_id not found or folder_path does not match any top folder — verify 'b.' prefix, hub membership, and folder name); 422 (invalid file_name or conflicting version); 429 (rate limit — back off 60s); 5xx (ACC/OSS upstream — retry with jitter BUT be cautious: storage object may already be created so reuse, do not re-create). Also: if source file_url returns non-2xx, the tool throws before touching ACC.

Side effects: Creates a storage object, uploads bytes, and creates a versioned item in the target folder. NOT idempotent — a retry may create a duplicate item with a new version. Surface the returned item_id to the user to avoid re-uploads.

Input parameters:

- `file_name` (string, required): Destination filename in ACC, including extension. 1–255 chars. Avoid path separators.
- `file_url` (string, required): Publicly fetchable HTTPS URL of the source file. Must return 2xx to an unauthenticated GET. Max practical size ~100MB for this single-PUT implementation.
- `folder_path` (string): Case-insensitive substring of the target top-level folder's display name. Defaults to 'Project Files'. Common values: 'Project Files', 'Plans', 'Photos', 'Submittals'.
- `project_id` (string, required): ACC project ID. MUST use 'b.' prefix literal. Obtain via acc_list_projects.

### `acc_project_summary` (~374 tokens)

Fetch the full ACC project metadata record (name, type, status, dates, extension attributes) for a single project via APS Data Management. If hub_id is omitted the tool picks the first accessible hub, which may be wrong on multi-hub tenants.

When to use: The user asks 'tell me about project X' or an agent needs project metadata (start/end dates, type, Forma/BIM 360 flavor) before deciding which downstream tool to call.

When NOT to use: Do not use as a cheap existence check — prefer acc_list_projects which returns hub_id with every project and is one call regardless of tenant size.

APS scopes: data:read account:read. Forma / BIM 360 hubs endpoints only require data:read.

Rate limits: APS default ~50 req/min per endpoint; BIM 360 hubs endpoints pageable (limit 200). Cache results for the session.

Errors: 401 (APS token expired — refresh); 403 (user lacks project view or app not in account); 404 (project not in the chosen hub — supply the correct hub_id, or call acc_list_projects first); 422 (malformed project_id — confirm 'b.' prefix); 429 (rate limit — back off 60s); 5xx (ACC upstream — retry).

Side effects: None. Read-only and idempotent.

Input parameters:

- `hub_id` (string): Optional ACC/BIM 360 hub ID. Also uses the 'b.' prefix literal. If omitted, the first hub returned by APS is used — prefer supplying this explicitly on multi-hub tenants to avoid 404s.
- `project_id` (string, required): ACC project ID. MUST use 'b.' prefix literal (this endpoint — unlike Issues/RFIs — wants the prefixed form). Obtain via acc_list_projects.

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/io-scanbimlabs-acc-mcp/acc-mcp#diagnostics

## Score history

- 2026-08-03: 67
- 2026-08-02: 67
- 2026-08-01: 66
- 2026-07-31: 66
- 2026-07-30: 62
- 2026-07-29: 62
- 2026-07-28: 61
- 2026-07-27: 60
- 2026-07-26: 60

## Links

- Remote endpoint: https://acc-mcp.itmartin24.workers.dev/mcp
- Changelog RSS feed: https://verifymcp.io/servers/io-scanbimlabs-acc-mcp/acc-mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/io-scanbimlabs-acc-mcp/acc-mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/io-scanbimlabs-acc-mcp/acc-mcp
