# ARK MCP server



> OAuth-connected broker tools for supported AI clients, limited by the connected ARK user and enabled operation policy.



[Developer portal](/developer) | [MCP docs for agents](/developer/mcp.md) | [API docs](/developer/api) | [OAuth metadata](/.well-known/oauth-authorization-server)



## MCP quickstart

The ARK MCP server is in production preview. It connects an AI client to the same ARK identity, permissions, teams, and records a user already has. It uses Streamable HTTP and OAuth 2.1 Authorization Code with PKCE.

### Server URL

```text
https://arktms.com/api/agent/mcp
```

Your organization must be enabled for MCP. During OAuth, sign in with your normal ARK account and review the requested scopes. ARK never gives an MCP connection more access than that user has.

### First conversation

After connecting, ask a normal operational question:

```text
What's my current work queue and what needs attention first?
```

The client can discover and call `ark_get_work_queue` without you naming the tool. Follow with a specific load question, for example:

```text
What's happening with load 1008, and is anything blocking billing?
```

Read-only tools run without an ARK approval request. Controlled writes use the approval flow described below.

### Available tools

The generated reference contains the complete external preview catalog. Core preview connections emphasize context, search, work queues, customers, carriers, loads, tracking, billing readiness, approvals, and common dispatch actions. Expanded preview adds the remaining documented operational tools for enrolled organizations.

Internal tools are omitted. A client's `tools/list` is filtered by rollout tier, OAuth scopes, ARK permissions, and visible teams, so a connection normally receives fewer definitions than the reference.

## Connect an MCP client

All supported clients use the ARK server URL and complete OAuth in a browser. Never paste an ARK password, API token, OAuth access token, or refresh token into client configuration.

| Client  | Current support                                                                                                         |
| ------- | ----------------------------------------------------------------------------------------------------------------------- |
| ChatGPT | Remote MCP apps on eligible plans and workspaces; write tools require a full-MCP Business, Enterprise, or Edu workspace |
| Claude  | Remote custom connectors on Pro, Max, Team, and Enterprise plans                                                        |
| Codex   | Remote Streamable HTTP servers in Codex CLI, the Codex app, and the Codex IDE extension                                 |
| Cursor  | Remote Streamable HTTP servers with OAuth                                                                               |

### ChatGPT

In ChatGPT web, an eligible workspace administrator or authorized developer must enable Developer mode and create a custom app from **Settings > Apps**. Enter the ARK MCP server URL, select OAuth, scan the tools, and complete the ARK authorization flow. Open a new conversation and select the draft or published app from the tools menu.

Full remote-MCP support, including ARK's controlled write tools, is currently a beta for Business, Enterprise, and Edu workspaces. Pro accounts can connect custom apps with read and fetch permissions, but should not be presented as supporting every available ARK tool. ChatGPT does not connect directly to a local MCP server; the production ARK URL is remote HTTPS.

### Claude

In Claude or Claude Desktop, open **Settings > Connectors**, choose **Add custom connector**, name it ARK TMS, and enter the ARK MCP server URL. Select **Connect** and complete OAuth. Team and Enterprise workspaces may require an owner to add the organization connector before individual users can connect it.

### Codex

Add the remote server, authenticate, and verify the connection:

```bash
codex mcp add ark --url https://arktms.com/api/agent/mcp
codex mcp login ark
codex mcp list
```

For manual configuration, add a `[mcp_servers.ark]` table with the ARK `url` to `~/.codex/config.toml` or a trusted project's `.codex/config.toml`; OAuth is the default authentication mode for Streamable HTTP servers. Codex CLI, the Codex app, and the Codex IDE extension share this configuration.

### Cursor

Add a project-scoped `.cursor/mcp.json` or global `~/.cursor/mcp.json` entry:

```json
{
  "mcpServers": {
    "ark": {
      "url": "https://arktms.com/api/agent/mcp"
    }
  }
}
```

Open Cursor's MCP settings, enable ARK, and complete the OAuth prompt. Cursor documents Streamable HTTP and OAuth support for remote servers. Use a current Cursor release if discovery or OAuth does not start.

### Client references

- [ChatGPT developer mode and MCP apps](https://help.openai.com/en/articles/12584461-developer-mode-and-full-mcp-connectors-in-chatgpt-beta)
- [Codex MCP configuration](https://developers.openai.com/codex/mcp)
- [Claude custom connectors](https://support.anthropic.com/en/articles/11175166-about-custom-integrations-using-remote-mcp)
- [Cursor MCP](https://docs.cursor.com/context/model-context-protocol)
- [MCP authorization specification](https://modelcontextprotocol.io/specification/2025-11-25/basic/authorization)

## OAuth, sessions, and approvals

### Effective access

MCP access is the intersection of the current ARK user, organization membership, visible teams and entities, granted OAuth scopes, operation policy, and the enabled external-access tier. Scope step-up may be required when a tool needs a scope not granted during the initial read-only connection.

An insufficient scope returns HTTP `403` with an `insufficient_scope` bearer challenge. A compatible client can reauthorize for the requested scopes and retry. Request `offline_access` only when the client needs a refresh token.

The reference publishes every externally supported preview tool. `tools/list` is narrower: core workflow tools remain discoverable for OAuth step-up, while expanded tools are advertised only when the organization has expanded-preview access and the OAuth grant, user permissions, and team visibility allow them. This keeps unrelated tool definitions out of normal agent context without hiding the supported catalog.

### Sessions

ARK uses stateful Streamable HTTP sessions. Clients initialize without a session header, retain the returned `MCP-Session-Id`, and send it with `MCP-Protocol-Version: 2025-11-25` on later requests. Clients normally manage this protocol automatically.

### Approval behavior

Tools marked as requiring an ARK approval request use a single-use, server-backed approval:

1. The client calls `ark_create_approval_request` with the supported operation ID and exact proposed input.
2. The connected user reviews and approves the request in ARK.
3. The client retries the same tool with the same normalized arguments and idempotency key.

The approval is bound to the user, organization, operation, tool, arguments, stable OAuth grant, and idempotency key. A host application's confirmation prompt is useful additional UX, but it is not ARK authorization. MCP tools cannot approve their own requests.

### Idempotency

External writes require a stable idempotency key. ARK normally derives one from the authenticated session and JSON-RPC request ID. Exact retries must reuse that request ID. Advanced clients can set `_meta["ark/idempotencyKey"]`; caller-supplied keys are limited to 200 characters and cannot contain control characters.

### Rate limits

OAuth MCP access tokens default to 300 requests per minute. API and MCP traffic shares an organization budget that defaults to 3000 requests per minute. Credential and organization policy can override those defaults. A `429` response includes rate-limit metadata and `Retry-After`.

### Tool results and errors

Tools return the canonical operation result in MCP `structuredContent` and mirror it as JSON text content. Error results set `isError: true` and include a stable code, message, and optional details. Common codes include `missing_scope`, `missing_permission`, `team_access_denied`, `validation_failed`, `approval_required`, `approval_not_found`, `idempotency_key_required`, `rate_limit_exceeded`, and `operation_not_available`.

## Broker workflows

MCP tools are designed for natural broker requests rather than requiring users to name individual calls.

### Start the day

```text
What's my current work queue and what should I handle first?
```

The agent can inspect the current context, retrieve the work queue, and follow relevant load identifiers while preserving team visibility.

### Investigate a late load

```text
What's the status of loads 1008 and 1010? They're running late.
```

The agent can search for each visible load, inspect stops, dispatch notes, and tracking status, then summarize facts without changing the records.

### Review carrier risk

```text
Is the carrier we're considering for load 1003 safe to use? Show me the risks, not a booking decision.
```

The agent can find the load and carrier and use the risk-card tool to summarize available signals. ARK does not turn those signals into an automatic booking decision.

### Create a load

```text
Create this Acme load from Chicago to Dallas for tomorrow in a dry van.
```

The agent should resolve the customer, team, and locations, gather any missing required fields, create an approval request for the exact load input, and execute `ark_create_load` only after ARK approval.

### Cover a load

```text
Cover load 1003 with the carrier from the accepted bid.
```

The agent should inspect the load and bids, confirm the selected active carrier and required dispatch contact details, create an approval request, and execute `ark_assign_carrier` only after approval.

### Prepare billing follow-up

```text
Which visible loads are waiting on POD review or blocked from billing?
```

The agent can combine the POD review queue with load billing-readiness results. Core preview connections can inspect blockers; expanded preview connections can also update POD review status, generate invoices, and send billing documents when the credential has the required access and the exact write receives ARK approval.



## MCP tool reference



This reference contains the complete external preview tool catalog generated from MCP and operation metadata. A connection receives only the tools allowed by its rollout tier, OAuth grant, ARK permissions, and team visibility.



### ark_accept_spot_quote_customer_quote

`ark.accept_spot_quote_customer_quote`

Accept a visible pending customer quote through the transactional quote acceptance workflow.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:write` |
| ARK permissions | `canEditLoad` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `quoteId` | string | Yes | Visible pending customer quote ID. | format: uuid |

#### Example input

```json
{
  "quoteId": "<quoteId>"
}
```

#### Result

The tool returns the canonical `ark.accept_spot_quote_customer_quote` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_add_dispatch_note

`ark.add_dispatch_note`

Add a broker-visible note to an active visible dispatch for calls, exceptions, and follow-up context.

| Requirement | Value |
| --- | --- |
| Preview access | Core preview |
| Scopes | `loads:write` |
| ARK permissions | `canEditLoad` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `loadId` | string | Yes | - | format: uuid |
| `dispatchId` | string | Yes | - | format: uuid |
| `message` | string | Yes | - | min length: 1; max length: 5000 |

#### Example input

```json
{
  "loadId": "<loadId>",
  "dispatchId": "<dispatchId>",
  "message": "<message>"
}
```

#### Result

The tool returns the canonical `ark.add_dispatch_note` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_add_manual_dispatch_location

`ark.add_manual_dispatch_location`

Add a manual dispatch location history entry for a visible ARK load, optionally sending the configured location-update notification in the same workflow.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:write` |
| ARK permissions | `one of: canEditLoad`, `one of: canAssignLoads` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_send |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | true |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `loadId` | string | Yes | Visible ARK load ID for the dispatch location history entry. | format: uuid |
| `dispatchId` | string | Yes | Dispatch ID that should receive the manual location history entry. | format: uuid |
| `city` | string | Yes | City for the manually reported dispatch location. | min length: 1; max length: 200 |
| `state` | string | Yes | State or province for the manually reported dispatch location. | min length: 1; max length: 6 |
| `country` | string | No | - | one of: USA, CAN, MEX; default: "USA" |
| `latitude` | number \| null | No | - | min: -90; max: 90 |
| `longitude` | number \| null | No | - | min: -180; max: 180 |
| `timezoneId` | string \| null | No | IANA timezone ID for the manual location timestamp, when known. | max length: 100 |
| `locationDateTime` | string | No | ISO timestamp for the manually reported location. Defaults to now. | format: date-time |
| `sendNotification` | boolean | No | When true, also sends the configured tracking location-update notification after saving the location. | default: false |

#### Example input

```json
{
  "loadId": "<loadId>",
  "dispatchId": "<dispatchId>",
  "city": "<city>",
  "state": "<state>"
}
```

#### Result

The tool returns the canonical `ark.add_manual_dispatch_location` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_approve_carrier_onboarding

`ark.approve_carrier_onboarding`

Approve a carrier submitted through self-service onboarding, activate the carrier, update the invite, and notify the carrier.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `carriers:write` |
| ARK permissions | `canApproveCarrier` |
| Team visibility | Not entity-scoped |
| Approval policy | ask_before_send |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | true |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `carrierId` | string | Yes | ARK carrier ID. | format: uuid |

#### Example input

```json
{
  "carrierId": "<carrierId>"
}
```

#### Result

The tool returns the canonical `ark.approve_carrier_onboarding` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_archive_factoring_company

`ark.archive_factoring_company`

Archive an ARK factoring company so it is no longer used for carrier routing.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `factoring:write` |
| ARK permissions | `canDeleteFactoring` |
| Team visibility | Not entity-scoped |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | true |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `factoringCompanyId` | string | Yes | ARK factoring company ID to archive. | format: uuid |

#### Example input

```json
{
  "factoringCompanyId": "<factoringCompanyId>"
}
```

#### Result

The tool returns the canonical `ark.archive_factoring_company` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_archive_load

`ark.archive_load`

Archive a visible ARK load, blocking loads that need Billing undeliver first and cleaning up active dispatch, load-board, and tracking state.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:delete` |
| ARK permissions | `canDeleteLoad` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | true |
| Open-world side effect | true |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `loadId` | string | Yes | Visible ARK load ID to archive. | format: uuid |

#### Example input

```json
{
  "loadId": "<loadId>"
}
```

#### Result

The tool returns the canonical `ark.archive_load` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_archive_payment_term

`ark.archive_payment_term`

Archive an organization payment term so it no longer appears in payment term pickers.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `billing:write` |
| ARK permissions | `canViewBilling`, `canMakeAdjustments` |
| Team visibility | Not entity-scoped |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | true |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `paymentTermId` | string | Yes | Payment term ID to archive. | format: uuid |

#### Example input

```json
{
  "paymentTermId": "<paymentTermId>"
}
```

#### Result

The tool returns the canonical `ark.archive_payment_term` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_assign_carrier

`ark.assign_carrier`

Book an active carrier on a visible load with dispatcher contact, optional driver, carrier pay, currency, and bid acceptance.

| Requirement | Value |
| --- | --- |
| Preview access | Core preview |
| Scopes | `loads:dispatch` |
| ARK permissions | `canAssignLoads` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | true |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `loadId` | string | Yes | - | format: uuid |
| `carrierId` | string | Yes | - | format: uuid |
| `bidId` | string | No | - | format: uuid |
| `dispatcher` | object | Yes | - | - |
| `dispatcher.id` | string \| null | No | - | - |
| `dispatcher.firstName` | string | Yes | - | min length: 1; max length: 100 |
| `dispatcher.lastName` | string \| null | No | - | - |
| `dispatcher.email` | string | Yes | - | format: email; max length: 500 |
| `dispatcher.phone` | string \| null | No | - | - |
| `driver` | object | No | - | - |
| `driver.id` | string \| null | No | - | - |
| `driver.firstName` | string \| null | No | - | - |
| `driver.lastName` | string \| null | No | - | - |
| `driver.email` | string \| null | No | - | - |
| `driver.phone` | string \| null | No | - | - |
| `truckNumber` | string \| null | No | - | - |
| `trailerNumber` | string \| null | No | - | - |
| `carrierCurrency` | string | No | - | one of: USD, CAD, MXN; default: "USD" |
| `dispatchPay` | array<object> | No | - | default: []; max items: 100 |
| `dispatchPay[]` | object | No | - | - |
| `dispatchPay[].id` | string | No | - | format: uuid |
| `dispatchPay[].name` | string | No | - | min length: 1; max length: 200 |
| `dispatchPay[].price` | number \| null | No | - | - |
| `dispatchPay[].rateType` | string \| null | No | - | - |
| `dispatchPay[].unitPrice` | number \| null | No | - | - |
| `dispatchPay[].quantity` | number \| null | No | - | - |
| `dispatchPay[].uom` | string \| null | No | - | - |

#### Example input

```json
{
  "loadId": "<loadId>",
  "carrierId": "<carrierId>",
  "dispatcher": {
    "firstName": "<firstName>",
    "email": "<email>"
  }
}
```

#### Result

The tool returns the canonical `ark.assign_carrier` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_assign_user_to_teams

`ark.assign_user_to_teams`

Replace a non-driver organization user's team assignments and default team in one admin action.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `admin:write` |
| ARK permissions | None |
| Team visibility | Not entity-scoped |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `userId` | string | Yes | Organization user ID to update. | format: uuid |
| `teamIds` | array<string> | Yes | Replacement team assignments for the non-driver user. | min items: 1; max items: 100 |
| `teamIds[]` | string | Yes | - | format: uuid |
| `defaultTeamId` | string | Yes | Default team ID. Must be included in teamIds. | format: uuid |

#### Example input

```json
{
  "userId": "<userId>",
  "teamIds": [
    "<teamIds>"
  ],
  "defaultTeamId": "<defaultTeamId>"
}
```

#### Result

The tool returns the canonical `ark.assign_user_to_teams` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_award_spot_quote_bid

`ark.award_spot_quote_bid`

Award a visible pending spot quote bid through the transactional award workflow and notify the relevant users.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:write` |
| ARK permissions | `canEditLoad` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `bidId` | string | Yes | Visible pending spot quote bid ID. | format: uuid |
| `customerQuotePrice` | number | No | Optional customer quote price to store with the award. | - |

#### Example input

```json
{
  "bidId": "<bidId>"
}
```

#### Result

The tool returns the canonical `ark.award_spot_quote_bid` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_build_load_from_edi_tender

`ark.build_load_from_edi_tender`

Create a broker load from an accepted visible EDI tender, returning structured review blockers when customer, team, rate, or location decisions are needed.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `edi:read`, `loads:write` |
| ARK permissions | `canViewEdi`, `canCreateLoad` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `tenderId` | string | Yes | Accepted inbound EDI tender ID to convert into a broker load. | format: uuid |
| `customerId` | string | No | Customer ID to use when the EDI shipper mapping is missing or ambiguous. | format: uuid |
| `teamId` | string | No | Visible team ID for the created load. Omit only when the connection has one visible team. | format: uuid |
| `manualCustomerRate` | number \| string | No | Customer rate to use when the EDI tender does not include a trusted customer-pay value. | - |
| `manualCustomerRateExplicitZero` | boolean | No | Set true only when a zero manual customer rate is intentional. | - |
| `reviewedLoadCreateArgs` | object | No | Reviewed new_load2 argument overrides from the load-review flow. Use only after the tool returns a review plan. | - |

#### Example input

```json
{
  "tenderId": "<tenderId>"
}
```

#### Result

The tool returns the canonical `ark.build_load_from_edi_tender` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_build_load_from_spot_quote

`ark.build_load_from_spot_quote`

Create a broker load from a visible won spot quote, link the quote, record the conversion, and process queued load-board removals.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:write` |
| ARK permissions | `canCreateLoad` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `spotQuoteId` | string | Yes | Visible won spot quote ID. | format: uuid |

#### Example input

```json
{
  "spotQuoteId": "<spotQuoteId>"
}
```

#### Result

The tool returns the canonical `ark.build_load_from_spot_quote` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_bulk_create_loads

`ark.bulk_create_loads`

Create 1-25 available ARK loads from one load template plus row-specific customer reference, BOL, PO, and stop appointment overrides.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:dispatch` |
| ARK permissions | `canCreateLoad` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `template` | object | Yes | - | - |
| `template.customerId` | string | Yes | Visible ARK customer ID. | format: uuid |
| `template.teamId` | string | Yes | Visible ARK team ID for the load. | format: uuid |
| `template.brokerId` | string \| null | No | - | format: uuid |
| `template.customerServiceRepId` | string \| null | No | - | format: uuid |
| `template.temperature` | number \| null | No | - | - |
| `template.internalComments` | string | No | - | default: ""; max length: 5000 |
| `template.externalComments` | string | No | - | default: ""; max length: 5000 |
| `template.hotComments` | string | No | - | default: ""; max length: 5000 |
| `template.product` | string | No | - | default: ""; max length: 200 |
| `template.value` | number \| null | No | - | - |
| `template.description` | string | No | - | default: ""; max length: 5000 |
| `template.size` | string | No | - | default: ""; max length: 100 |
| `template.trailer` | string | Yes | Equipment or trailer requirement. | min length: 1; max length: 100 |
| `template.weight` | number \| null | No | - | - |
| `template.weightUnit` | string | No | - | one of: lbs, kg; default: "lbs" |
| `template.length` | number \| null | No | - | - |
| `template.width` | number \| null | No | - | - |
| `template.height` | number \| null | No | - | - |
| `template.billOfLading` | string | No | - | default: ""; max length: 100 |
| `template.numberOfPieces` | integer \| null | No | - | min: 0 |
| `template.pickupNumber` | string | No | - | default: ""; max length: 100 |
| `template.purchaseOrderNumber` | string | No | - | default: ""; max length: 100 |
| `template.hazmat` | boolean | No | - | default: false |
| `template.docHigh` | boolean | No | - | default: false |
| `template.stackable` | boolean | No | - | default: false |
| `template.tsa` | boolean | No | - | default: false |
| `template.teamDriverRequired` | boolean | No | - | default: false |
| `template.miles` | number \| null | No | - | min: 0 |
| `template.customerCurrency` | string | No | - | one of: USD, CAD, MXN; default: "USD" |
| `template.carrierCurrency` | string | No | - | one of: USD, CAD, MXN; default: "USD" |
| `template.customerPay` | array<object> | No | - | default: []; max items: 100 |
| `template.customerPay[]` | object | No | - | - |
| `template.customerPay[].name` | string | No | Customer-facing charge name. | min length: 1; max length: 200 |
| `template.customerPay[].price` | number \| null | No | - | - |
| `template.customerPay[].rateType` | string \| null | No | Charge rate type, such as flat, per_mile, or hourly. | max length: 50 |
| `template.customerPay[].unitPrice` | number \| null | No | - | - |
| `template.customerPay[].quantity` | number \| null | No | - | - |
| `template.customerPay[].uom` | string \| null | No | - | max length: 50 |
| `template.stops` | array<object> | Yes | Pickup, delivery, and intermediate stops in route order. | min items: 2; max items: 50 |
| `template.stops[]` | object | Yes | - | - |
| `template.stops[].locationId` | string | Yes | Existing visible ARK location ID for the stop. | format: uuid |
| `template.stops[].index` | integer | Yes | Zero-based route order for the stop. | min: 0 |
| `template.stops[].type` | string | Yes | Stop type, such as Pickup or Receiver. | min length: 1; max length: 50 |
| `template.stops[].referenceNumber` | string \| null | No | - | max length: 100 |
| `template.stops[].pieces` | integer \| null | No | - | min: 0 |
| `template.stops[].arrivalTime` | string \| null | No | - | format: date-time |
| `template.stops[].arrivalTime2` | string \| null | No | - | format: date-time |
| `template.stops[].weight` | number \| null | No | - | min: 0 |
| `template.stops[].comment` | string \| null | No | - | max length: 5000 |
| `template.stops[].schedulingType` | string \| null | No | - | one of: fcfs, appointment, null |
| `template.stops[].milesToNextStop` | number \| null | No | - | min: 0 |
| `template.stops[].durationToNextStopSeconds` | integer \| null | No | - | min: 0 |
| `rows` | array<object> | Yes | - | min items: 1; max items: 25 |
| `rows[]` | object | Yes | - | - |
| `rows[].rowIndex` | integer | No | - | min: 0 |
| `rows[].customerRef` | string | Yes | Row-specific pickup/customer reference. | min length: 1; max length: 100 |
| `rows[].billOfLading` | string \| null | No | - | max length: 100 |
| `rows[].purchaseOrderNumber` | string \| null | No | - | max length: 100 |
| `rows[].stopOverrides` | array<object> | No | - | default: []; max items: 50 |
| `rows[].stopOverrides[]` | object | No | - | - |
| `rows[].stopOverrides[].stopIndex` | integer | No | Template stop index to override. | min: 0 |
| `rows[].stopOverrides[].referenceNumber` | string \| null | No | - | max length: 100 |
| `rows[].stopOverrides[].arrivalTime` | string \| null | No | - | format: date-time |
| `rows[].stopOverrides[].arrivalTime2` | string \| null | No | - | format: date-time |
| `rows[].stopOverrides[].schedulingType` | string | No | - | one of: appointment |

#### Example input

```json
{
  "template": {
    "customerId": "<customerId>",
    "teamId": "<teamId>",
    "trailer": "<trailer>",
    "stops": [
      {
        "locationId": "<locationId>",
        "index": 0,
        "type": "<type>"
      },
      {
        "locationId": "<locationId>",
        "index": 0,
        "type": "<type>"
      }
    ]
  },
  "rows": [
    {
      "customerRef": "<customerRef>"
    }
  ]
}
```

#### Result

The tool returns the canonical `ark.bulk_create_loads` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_bulk_resolve_pay_holds

`ark.bulk_resolve_pay_holds`

Resolve multiple active visible ARK pay holds or claims in one batch, returning per-hold outcomes for report cleanup workflows.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:read`, `billing:write` |
| ARK permissions | `canViewLoads`, `canMakeAdjustments`, `one of: canViewBilling`, `one of: canViewPayHoldsReport`, `one of: canEditLoad`, `one of: canMakeAdjustments` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `payHoldIds` | array<string> | Yes | Active visible ARK pay hold IDs to resolve in one batch. | min items: 1; max items: 100 |
| `payHoldIds[]` | string | Yes | - | format: uuid |

#### Example input

```json
{
  "payHoldIds": [
    "<payHoldIds>"
  ]
}
```

#### Result

The tool returns the canonical `ark.bulk_resolve_pay_holds` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_bulk_update_pod_review_status

`ark.bulk_update_pod_review_status`

Bulk approve or reject visible proof-of-delivery document reviews from the billing compliance queue.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:read`, `billing:write` |
| ARK permissions | `canViewLoads`, `canViewBilling`, `canMakeAdjustments` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `reviewIds` | array<string> | Yes | Existing POD document review IDs to update. | min items: 1; max items: 100 |
| `reviewIds[]` | string | Yes | - | format: uuid |
| `status` | string | Yes | - | one of: approved, rejected |
| `approvalNotes` | string \| null | No | - | max length: 5000 |
| `rejectionReason` | string \| null | No | Required when rejecting PODs. | max length: 5000 |

#### Example input

```json
{
  "reviewIds": [
    "<reviewIds>"
  ],
  "status": "approved"
}
```

#### Result

The tool returns the canonical `ark.bulk_update_pod_review_status` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_calculate_load_miles

`ark.calculate_load_miles`

Calculate truck route miles for a visible ARK load from stop coordinates, then store total miles, per-stop miles, and route geometry.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:write` |
| ARK permissions | `canEditLoad` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | true |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `loadId` | string | Yes | Visible ARK load ID whose miles should be calculated and stored. | format: uuid |
| `stops` | array<object> | Yes | Stop coordinates ordered by stopIndex; count must match persisted load stops. | min items: 2; max items: 25 |
| `stops[]` | object | Yes | - | - |
| `stops[].lat` | number | Yes | - | min: -90; max: 90 |
| `stops[].lng` | number | Yes | - | min: -180; max: 180 |
| `stops[].stopIndex` | integer | Yes | - | min: 0 |
| `trailer` | string | No | - | min length: 1; max length: 100 |
| `size` | string | No | - | min length: 1; max length: 50 |
| `dimensions` | object | No | - | - |
| `dimensions.length` | number | No | - | - |
| `dimensions.width` | number | No | - | - |
| `dimensions.height` | number | No | - | - |
| `dimensions.weight` | number | No | - | - |
| `hazmat` | boolean | No | - | - |

#### Example input

```json
{
  "loadId": "<loadId>",
  "stops": [
    {
      "lat": -90,
      "lng": -180,
      "stopIndex": 0
    },
    {
      "lat": -90,
      "lng": -180,
      "stopIndex": 0
    }
  ]
}
```

#### Result

The tool returns the canonical `ark.calculate_load_miles` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_calculate_spot_quote_miles

`ark.calculate_spot_quote_miles`

Calculate truck route miles for a visible spot quote from stop coordinates, then store total and per-stop mileage.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:write` |
| ARK permissions | `canEditLoad` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | true |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `spotQuoteId` | string | Yes | Visible spot quote ID whose miles should be calculated and stored. | format: uuid |
| `stops` | array<object> | Yes | Stop coordinates ordered by stopIndex; count must match persisted spot quote stops. | min items: 2; max items: 25 |
| `stops[]` | object | Yes | - | - |
| `stops[].lat` | number | Yes | - | min: -90; max: 90 |
| `stops[].lng` | number | Yes | - | min: -180; max: 180 |
| `stops[].stopIndex` | integer | Yes | - | min: 0 |
| `trailer` | string | No | - | min length: 1; max length: 100 |
| `size` | string | No | - | min length: 1; max length: 50 |
| `dimensions` | object | No | - | - |
| `dimensions.length` | number | No | - | - |
| `dimensions.width` | number | No | - | - |
| `dimensions.height` | number | No | - | - |
| `dimensions.weight` | number | No | - | - |
| `hazmat` | boolean | No | - | - |

#### Example input

```json
{
  "spotQuoteId": "<spotQuoteId>",
  "stops": [
    {
      "lat": -90,
      "lng": -180,
      "stopIndex": 0
    },
    {
      "lat": -90,
      "lng": -180,
      "stopIndex": 0
    }
  ]
}
```

#### Result

The tool returns the canonical `ark.calculate_spot_quote_miles` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_cancel_carrier_invite

`ark.cancel_carrier_invite`

Cancel a pending carrier onboarding invite and remove pending invite uploads when available.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `carriers:write` |
| ARK permissions | `canInviteCarrier` |
| Team visibility | Not entity-scoped |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | true |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `inviteId` | string | Yes | Carrier invite ID. | format: uuid |

#### Example input

```json
{
  "inviteId": "<inviteId>"
}
```

#### Result

The tool returns the canonical `ark.cancel_carrier_invite` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_cancel_dispatch

`ark.cancel_dispatch`

Cancel an active ARK dispatch, return the load to Available, clear dispatched stop actuals, and stop configured tracking sessions.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:dispatch` |
| ARK permissions | `canAssignLoads` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_send |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | true |
| Open-world side effect | true |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `loadId` | string | Yes | Visible ARK load ID. | format: uuid |
| `dispatchId` | string | Yes | Active dispatch ID for the visible load. | format: uuid |

#### Example input

```json
{
  "loadId": "<loadId>",
  "dispatchId": "<dispatchId>"
}
```

#### Result

The tool returns the canonical `ark.cancel_dispatch` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_cancel_spot_quote

`ark.cancel_spot_quote`

Cancel a visible spot quote using the same status update as the ARK UI.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:write` |
| ARK permissions | `canEditLoad` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | true |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `spotQuoteId` | string | Yes | Visible spot quote ID to cancel. | format: uuid |

#### Example input

```json
{
  "spotQuoteId": "<spotQuoteId>"
}
```

#### Result

The tool returns the canonical `ark.cancel_spot_quote` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_check_tracking_availability

`ark.check_tracking_availability`

Check whether internal ARK Tracking can start for a visible dispatch and explain consent, app-account, phone, active-dispatch, or org-setting blockers.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:dispatch` |
| ARK permissions | `canAssignLoads` |
| Team visibility | Required and enforced |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `dispatchId` | string | Yes | Visible ARK dispatch ID to check for internal ARK Tracking readiness. | format: uuid |

#### Example input

```json
{
  "dispatchId": "<dispatchId>"
}
```

#### Result

The tool returns the canonical `ark.check_tracking_availability` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_create_and_send_rate_confirmation

`ark.create_and_send_rate_confirmation`

Generate an ARK rate confirmation PDF for a dispatched load and send it to the dispatch contact, optionally as an e-sign request.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:dispatch` |
| ARK permissions | `canAssignLoads` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_send |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | true |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `loadId` | string | Yes | Visible ARK load ID. | format: uuid |
| `dispatchId` | string | Yes | Dispatch ID to generate the rate confirmation from. | format: uuid |
| `fileName` | string | No | Optional PDF file name. A .pdf extension is added when omitted. | max length: 200 |
| `esign` | boolean | No | When true, send an e-sign link instead of a PDF attachment. | default: false |

#### Example input

```json
{
  "loadId": "<loadId>",
  "dispatchId": "<dispatchId>"
}
```

#### Result

The tool returns the canonical `ark.create_and_send_rate_confirmation` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_create_approval_request

`ark.create_approval_request`

Create a pending human approval request for one exact proposed operation without executing it.

| Requirement | Value |
| --- | --- |
| Preview access | Core preview |
| Scopes | `agents:write` |
| ARK permissions | None |
| Team visibility | Not entity-scoped |
| Approval policy | draft_only |
| ARK approval request | Not required |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `sessionId` | string | No | - | format: uuid |
| `operationId` | string | Yes | - | one of: ark.create_load, ark.assign_carrier, ark.add_dispatch_note |
| `input` | object | No | - | default: {} |
| `expiresInMinutes` | integer | No | - | default: 120; min: 5; max: 10080 |

#### Example input

```json
{
  "operationId": "ark.create_load"
}
```

#### Result

The tool returns the canonical `ark.create_approval_request` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_create_carrier

`ark.create_carrier`

Create an ARK carrier profile with operating-country validation and dispatch fields.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `carriers:write` |
| ARK permissions | `canCreateCarrier` |
| Team visibility | Not entity-scoped |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `active` | boolean | No | - | default: true |
| `doNotUse` | boolean | No | - | default: false |
| `name` | string | Yes | Carrier legal or operating name. | min length: 1; max length: 200 |
| `dbaName` | string \| null | No | - | max length: 200 |
| `code` | string \| null | No | - | max length: 50 |
| `notes` | string \| null | No | - | max length: 5000 |
| `dotNum` | string \| null | No | US DOT number. Required with MC for US carriers unless MC is provided. | max length: 30 |
| `mcNum` | string \| null | No | MC, FF, MX, or numeric authority identifier. | max length: 30 |
| `dispatchEmail` | string \| null | No | - | max length: 500 |
| `dispatchPhone` | string \| null | No | - | max length: 50 |
| `domicileCountry` | string | No | - | one of: USA, CAN, MEX; default: "USA" |
| `operatingCountries` | array<string> | No | - | min items: 1; max items: 3 |
| `operatingCountries[]` | string | No | - | one of: USA, CAN, MEX |
| `scac` | string \| null | No | - | max length: 30 |
| `caat` | string \| null | No | Required for carriers operating in Mexico. | max length: 100 |
| `sctPermit` | string \| null | No | - | max length: 100 |
| `nscNumber` | string \| null | No | Required for carriers operating in Canada. | max length: 100 |
| `nscProvince` | string \| null | No | Required for carriers operating in Canada. | max length: 100 |
| `gstHstNumber` | string \| null | No | - | max length: 100 |
| `defaultCurrency` | string | No | - | one of: USD, CAD, MXN; default: "USD" |

#### Example input

```json
{
  "name": "<name>"
}
```

#### Result

The tool returns the canonical `ark.create_carrier` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_create_carrier_invite

`ark.create_carrier_invite`

Create a carrier onboarding invite from FMCSA DOT data and send the invite email to the carrier contact.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `carriers:write` |
| ARK permissions | `canInviteCarrier` |
| Team visibility | Not entity-scoped |
| Approval policy | ask_before_send |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | true |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `email` | string | Yes | Carrier contact email that will receive the onboarding invite. | format: email; max length: 254 |
| `dotNumber` | string | Yes | US DOT number used to seed the onboarding invite from FMCSA. | min length: 1; max length: 20 |

#### Example input

```json
{
  "email": "<email>",
  "dotNumber": "<dotNumber>"
}
```

#### Result

The tool returns the canonical `ark.create_carrier_invite` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_create_carrier_review

`ark.create_carrier_review`

Create a 1-5 star ARK carrier review with optional broker comment and optional visible load link.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `carriers:write` |
| ARK permissions | `canEditCarrier` |
| Team visibility | Not entity-scoped |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `carrierId` | string | Yes | Visible ARK carrier ID. | format: uuid |
| `loadId` | string | No | Optional visible ARK load ID to attach to the carrier review. | format: uuid |
| `rating` | integer | Yes | Carrier rating from 1 to 5. | min: 1; max: 5 |
| `comment` | string \| null | No | Optional broker feedback about the carrier. | max length: 5000 |

#### Example input

```json
{
  "carrierId": "<carrierId>",
  "rating": 1
}
```

#### Result

The tool returns the canonical `ark.create_carrier_review` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_create_customer

`ark.create_customer`

Create an ARK customer profile and assign visible customer teams in one write action.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `customers:write` |
| ARK permissions | `canCreateCustomer` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `name` | string | Yes | Customer name. | min length: 2; max length: 200 |
| `code` | string \| null | No | Optional customer code. | max length: 50 |
| `type` | string \| null | No | Optional customer type. | max length: 50 |
| `country` | string | No | - | one of: USA, CAN, MEX; default: "USA" |
| `defaultCurrency` | string | No | - | one of: USD, CAD, MXN; default: "USD" |
| `trackingEmail` | string \| null | No | Tracking email or delimited email list. | max length: 500 |
| `notes` | string \| null | No | - | max length: 5000 |
| `businessHoursOpen` | string \| null | No | - | max length: 50 |
| `businessHoursClose` | string \| null | No | - | max length: 50 |
| `paymentTermId` | string \| null | No | Optional payment term ID. | format: uuid |
| `defaultInvoiceRemitProfileId` | string \| null | No | Optional customer-specific invoice remit profile ID. Use null to inherit the organization default. | format: uuid |
| `teamIds` | array<string> | Yes | Visible team IDs that should be able to access the customer. | min items: 1; max items: 100 |
| `teamIds[]` | string | Yes | - | format: uuid |

#### Example input

```json
{
  "name": "<name>",
  "teamIds": [
    "<teamIds>"
  ]
}
```

#### Result

The tool returns the canonical `ark.create_customer` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_create_factoring_company

`ark.create_factoring_company`

Create an ARK factoring company for carrier payment routing without returning raw bank or tax values.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `factoring:write` |
| ARK permissions | `canCreateFactoring` |
| Team visibility | Not entity-scoped |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `active` | boolean | No | - | default: true |
| `name` | string | Yes | Factoring company name. | min length: 1; max length: 200 |
| `notes` | string \| null | No | - | max length: 5000 |
| `billingAddress` | object \| null | No | Optional billing address. Omit to leave unchanged on updates. | - |
| `federalTaxId` | string \| null | No | Sensitive tax ID to set. Use null to clear; value is never returned. | max length: 100 |
| `paymentMethod` | string \| null | No | - | max length: 50 |
| `paymentTermId` | string | Yes | - | format: uuid |
| `bankName` | string \| null | No | - | max length: 100 |
| `bankType` | string \| null | No | - | max length: 50 |
| `bankAccountNum` | string \| null | No | Sensitive bank account number to set. Use null to clear; value is never returned. | max length: 100 |
| `bankRoutingNum` | string \| null | No | Sensitive 9-digit routing number to set. Use null to clear; value is never returned. | max length: 50 |

#### Example input

```json
{
  "name": "<name>",
  "paymentTermId": "<paymentTermId>"
}
```

#### Result

The tool returns the canonical `ark.create_factoring_company` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_create_invoice_remit_profile

`ark.create_invoice_remit_profile`

Create an organization invoice remit profile for standard, factoring, subsidiary, or other remittance workflows.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `billing:write` |
| ARK permissions | `canViewBilling`, `canMakeAdjustments` |
| Team visibility | Not entity-scoped |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `type` | string | Yes | Profile type. Factoring profiles require remitEmail. | one of: standard, factoring, subsidiary, other |
| `name` | string | Yes | Display name, such as Standard Remit or Apex Capital. | min length: 1; max length: 200 |
| `remitEmail` | string \| null | No | Email used when invoices should route to the remit profile. | format: email; max length: 500 |
| `invoiceInstructions` | string \| null | No | Remittance instructions shown on generated customer invoices. | max length: 5000 |
| `sendToRemitEmail` | boolean | No | When true, customer invoice email routing uses remitEmail. | - |
| `billingAddress` | object \| null | No | Remit mailing address. Use null to clear it. | - |
| `billingAddress.id` | string \| null | No | Existing remit address ID when updating the current address. | format: uuid |
| `billingAddress.address` | string \| null | No | - | max length: 500 |
| `billingAddress.address2` | string \| null | No | - | max length: 500 |
| `billingAddress.city` | string \| null | No | - | max length: 200 |
| `billingAddress.state` | string \| null | No | - | max length: 20 |
| `billingAddress.zip` | string \| null | No | - | max length: 30 |
| `billingAddress.country` | string \| null | No | - | one of: USA, CAN, MEX, null |
| `billingAddress.phone` | string \| null | No | - | max length: 50 |
| `billingAddress.fax` | string \| null | No | - | max length: 50 |
| `billingAddress.email` | string \| null | No | - | max length: 500 |
| `setAsDefault` | boolean | No | Set the new profile as the organization default after creation. | default: false |

#### Example input

```json
{
  "type": "standard",
  "name": "<name>"
}
```

#### Result

The tool returns the canonical `ark.create_invoice_remit_profile` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_create_load

`ark.create_load`

Create an available ARK load with customer, team, equipment, route stops, references, and optional customer charges.

| Requirement | Value |
| --- | --- |
| Preview access | Core preview |
| Scopes | `loads:write` |
| ARK permissions | `canCreateLoad` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `customerId` | string | Yes | - | format: uuid |
| `teamId` | string | Yes | - | format: uuid |
| `brokerId` | string \| null | No | - | - |
| `customerServiceRepId` | string \| null | No | - | - |
| `temperature` | number \| null | No | - | - |
| `internalComments` | string | No | - | default: ""; max length: 5000 |
| `externalComments` | string | No | - | default: ""; max length: 5000 |
| `hotComments` | string | No | - | default: ""; max length: 5000 |
| `product` | string | No | - | default: ""; max length: 200 |
| `value` | number \| null | No | - | - |
| `description` | string | No | - | default: ""; max length: 5000 |
| `size` | string | No | - | default: ""; max length: 100 |
| `trailer` | string | Yes | - | min length: 1; max length: 100 |
| `weight` | number \| null | No | - | - |
| `weightUnit` | string | No | - | one of: lbs, kg; default: "lbs" |
| `length` | number \| null | No | - | - |
| `width` | number \| null | No | - | - |
| `height` | number \| null | No | - | - |
| `billOfLading` | string | No | - | default: ""; max length: 100 |
| `numberOfPieces` | integer \| null | No | - | - |
| `pickupNumber` | string | No | - | default: ""; max length: 100 |
| `purchaseOrderNumber` | string | No | - | default: ""; max length: 100 |
| `hazmat` | boolean | No | - | default: false |
| `docHigh` | boolean | No | - | default: false |
| `stackable` | boolean | No | - | default: false |
| `tsa` | boolean | No | - | default: false |
| `teamDriverRequired` | boolean | No | - | default: false |
| `miles` | number \| null | No | - | - |
| `customerCurrency` | string | No | - | one of: USD, CAD, MXN; default: "USD" |
| `carrierCurrency` | string | No | - | one of: USD, CAD, MXN; default: "USD" |
| `customerPay` | array<object> | No | - | default: []; max items: 100 |
| `customerPay[]` | object | No | - | - |
| `customerPay[].name` | string | No | - | min length: 1; max length: 200 |
| `customerPay[].price` | number \| null | No | - | - |
| `customerPay[].rateType` | string \| null | No | - | - |
| `customerPay[].unitPrice` | number \| null | No | - | - |
| `customerPay[].quantity` | number \| null | No | - | - |
| `customerPay[].uom` | string \| null | No | - | - |
| `stops` | array<object> | Yes | - | min items: 2; max items: 50 |
| `stops[]` | object | Yes | - | - |
| `stops[].locationId` | string | Yes | - | format: uuid |
| `stops[].index` | integer | Yes | - | min: 0; max: 9007199254740991 |
| `stops[].type` | string | Yes | - | min length: 1; max length: 50 |
| `stops[].referenceNumber` | string \| null | No | - | - |
| `stops[].pieces` | integer \| null | No | - | - |
| `stops[].arrivalTime` | string \| null | No | - | - |
| `stops[].arrivalTime2` | string \| null | No | - | - |
| `stops[].weight` | number \| null | No | - | - |
| `stops[].comment` | string \| null | No | - | - |
| `stops[].schedulingType` | string \| null | No | - | - |
| `stops[].milesToNextStop` | number \| null | No | - | - |
| `stops[].durationToNextStopSeconds` | integer \| null | No | - | - |

#### Example input

```json
{
  "customerId": "<customerId>",
  "teamId": "<teamId>",
  "trailer": "<trailer>",
  "stops": [
    {
      "locationId": "<locationId>",
      "index": 0,
      "type": "<type>"
    },
    {
      "locationId": "<locationId>",
      "index": 0,
      "type": "<type>"
    }
  ]
}
```

#### Result

The tool returns the canonical `ark.create_load` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_create_location

`ark.create_location`

Create a team-owned ARK location and address, optionally linked to a customer.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `locations:write` |
| ARK permissions | `canCreateLocation` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `teamId` | string | Yes | Visible team ID that owns the location. | format: uuid |
| `customerId` | string \| null | No | Optional customer linked to this location. | format: uuid |
| `name` | string | Yes | - | min length: 1; max length: 200 |
| `company` | string \| null | No | - | max length: 200 |
| `address` | string \| null | No | - | max length: 500 |
| `address2` | string \| null | No | - | max length: 500 |
| `city` | string \| null | No | - | max length: 200 |
| `state` | string \| null | No | - | max length: 20 |
| `zip` | string \| null | No | - | max length: 30 |
| `phone` | string \| null | No | - | max length: 50 |
| `email` | string \| null | No | - | max length: 500 |
| `notes` | string \| null | No | - | max length: 5000 |
| `internalNotes` | string \| null | No | - | max length: 5000 |
| `latitude` | number \| null | No | - | - |
| `longitude` | number \| null | No | - | - |
| `timezoneId` | string | Yes | - | min length: 1; max length: 100 |
| `country` | string | No | - | one of: USA, CAN, MEX; default: "USA" |

#### Example input

```json
{
  "teamId": "<teamId>",
  "name": "<name>",
  "timezoneId": "<timezoneId>"
}
```

#### Result

The tool returns the canonical `ark.create_location` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_create_manual_load_bid

`ark.create_manual_load_bid`

Create or update a pending manual carrier bid for a visible ARK load after a broker collects it by phone or email.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:dispatch` |
| ARK permissions | `one of: canEditLoad`, `one of: canAssignLoads` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `loadId` | string | Yes | Visible ARK load ID for the manual bid. | format: uuid |
| `carrierId` | string | Yes | Visible organization carrier ID that submitted the manual bid. | format: uuid |
| `bidAmount` | number | Yes | Carrier bid amount in the load carrier currency. | - |
| `notes` | string \| null | No | Optional bid note or contact context. | max length: 1000 |
| `contactMethod` | string | No | How the broker collected the manual bid. | one of: phone, email; default: "phone" |

#### Example input

```json
{
  "loadId": "<loadId>",
  "carrierId": "<carrierId>",
  "bidAmount": 1
}
```

#### Result

The tool returns the canonical `ark.create_manual_load_bid` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_create_pay_hold

`ark.create_pay_hold`

Create a pay hold or claim for a visible ARK load so billing can pause customer and carrier payment until the issue is resolved.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:read`, `billing:write` |
| ARK permissions | `canViewLoads`, `canMakeAdjustments`, `one of: canViewBilling`, `one of: canViewPayHoldsReport`, `one of: canEditLoad`, `one of: canMakeAdjustments` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `loadId` | string | Yes | Visible ARK load ID that should be placed on pay hold. | format: uuid |
| `value` | number \| null | No | Optional claim value. Required when isClaim is true. | max: 99999999.99 |
| `notes` | string | No | Operational notes explaining why the load is being held. | max length: 5000 |
| `isClaim` | boolean | No | Set true when the hold represents a claim amount. | default: false |

#### Example input

```json
{
  "loadId": "<loadId>"
}
```

#### Result

The tool returns the canonical `ark.create_pay_hold` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_create_payment_term

`ark.create_payment_term`

Create an organization payment term for customer, carrier, or factoring payment routing.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `billing:write` |
| ARK permissions | `canViewBilling`, `canMakeAdjustments` |
| Team visibility | Not entity-scoped |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `days` | integer | Yes | Net payment days. | min: 1; max: 365 |
| `discount` | number | No | Early-payment discount percentage. | default: 0; min: 0; max: 100 |

#### Example input

```json
{
  "days": 1
}
```

#### Result

The tool returns the canonical `ark.create_payment_term` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_create_person

`ark.create_person`

Create a carrier driver or dispatcher contact and link it to the selected carrier.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `people:write` |
| ARK permissions | `canCreatePerson` |
| Team visibility | Not entity-scoped |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `type` | string | Yes | Create or update a carrier driver or dispatcher contact. | one of: driver, dispatcher |
| `carrierId` | string | Yes | Carrier ID this person should be linked to. | format: uuid |
| `firstName` | string \| null | No | - | max length: 100 |
| `lastName` | string \| null | No | - | max length: 100 |
| `email` | string \| null | No | - | max length: 500 |
| `phone` | string \| null | No | - | max length: 50 |
| `notes` | string \| null | No | - | max length: 5000 |

#### Example input

```json
{
  "type": "driver",
  "carrierId": "<carrierId>"
}
```

#### Result

The tool returns the canonical `ark.create_person` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_create_spot_quote

`ark.create_spot_quote`

Create a spot quote with pickup, delivery, freight, customer, and team context using the same workflow as the ARK UI.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:write` |
| ARK permissions | `canCreateLoad` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `customerId` | string | Yes | ARK customer ID for the spot quote. | format: uuid |
| `customerEmail` | string \| null | No | - | format: email; max length: 254 |
| `currency` | string | No | - | one of: USD, CAD, MXN |
| `referenceNumber` | string \| null | No | - | max length: 100 |
| `loadClassification` | string \| null | No | - | max length: 100 |
| `sylectusLoadType` | integer \| null | No | - | - |
| `vehicleType` | string \| null | No | - | max length: 100 |
| `pieces` | integer \| null | No | - | min: 1 |
| `dimensionsLength` | number \| null | No | - | - |
| `dimensionsWidth` | number \| null | No | - | - |
| `dimensionsHeight` | number \| null | No | - | - |
| `dimensionsUnit` | string | No | - | one of: inches, feet |
| `weight` | number \| null | No | - | - |
| `weightUnit` | string | No | - | one of: lbs, kg |
| `stackable` | boolean | No | - | - |
| `hazmat` | boolean | No | - | - |
| `dockHigh` | boolean | No | - | - |
| `teamDriverRequired` | boolean | No | - | - |
| `tsa` | boolean | No | - | - |
| `notesInternal` | string \| null | No | - | max length: 5000 |
| `notesExternal` | string \| null | No | - | max length: 5000 |
| `distanceMiles` | number \| null | No | - | - |
| `stops` | array<object> | Yes | - | min items: 2; max items: 50 |
| `stops[]` | object | Yes | - | - |
| `stops[].id` | string | No | Existing stop ID when updating an existing stop. | format: uuid |
| `stops[].sequenceIndex` | integer | Yes | - | min: 0 |
| `stops[].type` | string | Yes | - | one of: pickup, drop_off |
| `stops[].city` | string | Yes | - | min length: 1; max length: 200 |
| `stops[].state` | string | Yes | - | min length: 1; max length: 50 |
| `stops[].zip` | string \| null | No | - | max length: 30 |
| `stops[].arrivalTime` | string \| null | No | Optional scheduled arrival timestamp. | - |
| `stops[].arrivalTime2` | string \| null | No | Optional scheduled arrival window end timestamp. | - |
| `stops[].timezone` | string \| null | No | - | max length: 100 |
| `stops[].deliveryType` | string \| null | No | - | one of: asap, direct, null |
| `stops[].milesToNextStop` | number \| null | No | - | min: 0 |
| `stops[].durationToNextStopSeconds` | integer \| null | No | - | min: 0 |
| `teamId` | string | No | Visible team ID. Omit only when the connection has one visible team. | format: uuid |

#### Example input

```json
{
  "customerId": "<customerId>",
  "stops": [
    {
      "sequenceIndex": 0,
      "type": "pickup",
      "city": "<city>",
      "state": "<state>"
    },
    {
      "sequenceIndex": 0,
      "type": "pickup",
      "city": "<city>",
      "state": "<state>"
    }
  ]
}
```

#### Result

The tool returns the canonical `ark.create_spot_quote` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_create_spot_quote_bid

`ark.create_spot_quote_bid`

Create a carrier bid for a visible active spot quote, record bid history, and notify quote watchers.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:write` |
| ARK permissions | `canEditLoad` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `spotQuoteId` | string | Yes | Visible spot quote ID. | format: uuid |
| `carrierId` | string \| null | No | Carrier ID when the carrier already exists in ARK. | format: uuid |
| `carrierName` | string | No | - | min length: 1; max length: 200 |
| `dotNumber` | string | Yes | Carrier DOT number. | min length: 1; max length: 30 |
| `mcNumber` | string \| null | No | - | max length: 30 |
| `price` | number | Yes | - | - |
| `pricePerMile` | number \| null | No | - | - |
| `distanceDeadheadMiles` | number \| null | No | - | min: 0 |

#### Example input

```json
{
  "spotQuoteId": "<spotQuoteId>",
  "dotNumber": "<dotNumber>",
  "price": 1
}
```

#### Result

The tool returns the canonical `ark.create_spot_quote_bid` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_create_spot_quote_customer_quote

`ark.create_spot_quote_customer_quote`

Create and send a customer quote for a visible spot quote, recording the same quote event and watcher notifications as the website.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:write` |
| ARK permissions | `canEditLoad` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_send |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | true |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `spotQuoteId` | string | Yes | Visible spot quote ID. | format: uuid |
| `customerId` | string | Yes | Customer ID. Must match the visible spot quote customer. | format: uuid |
| `price` | number | Yes | Customer quote price. | - |
| `markupPercent` | number | No | - | min: 0; max: 100 |
| `fromBidId` | string \| null | No | Carrier bid used to generate the customer quote. | format: uuid |
| `etaMode` | string \| null | No | - | one of: time_away, exact_time, null |
| `etaHours` | integer \| null | No | - | min: 0; max: 999 |
| `etaMinutes` | integer \| null | No | - | min: 0; max: 59 |
| `etaDatetime` | string \| null | No | - | format: date-time |
| `etaTimezone` | string \| null | No | - | max length: 100 |
| `quoteVehicleType` | string \| null | No | - | max length: 100 |
| `trailerLength` | number \| null | No | - | - |
| `trailerWidth` | number \| null | No | - | - |
| `trailerHeight` | number \| null | No | - | - |
| `trailerDimensionsUnit` | string \| null | No | - | one of: feet, inches, null |

#### Example input

```json
{
  "spotQuoteId": "<spotQuoteId>",
  "customerId": "<customerId>",
  "price": 1
}
```

#### Result

The tool returns the canonical `ark.create_spot_quote_customer_quote` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_create_spot_quote_customer_quote_and_hold_bid

`ark.create_spot_quote_customer_quote_and_hold_bid`

Create and send a customer quote from a visible pending carrier bid, then hold that bid pending the customer response.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:write` |
| ARK permissions | `canEditLoad` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_send |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | true |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `spotQuoteId` | string | Yes | Visible spot quote ID. | format: uuid |
| `bidId` | string | Yes | Visible pending carrier bid to hold after creating the customer quote. | format: uuid |
| `holdReason` | string | No | - | max length: 5000 |
| `customerId` | string | Yes | Customer ID. Must match the visible spot quote customer. | format: uuid |
| `price` | number | Yes | Customer quote price. | - |
| `markupPercent` | number | No | - | min: 0; max: 100 |
| `fromBidId` | string \| null | No | Carrier bid used to generate the customer quote. | format: uuid |
| `etaMode` | string \| null | No | - | one of: time_away, exact_time, null |
| `etaHours` | integer \| null | No | - | min: 0; max: 999 |
| `etaMinutes` | integer \| null | No | - | min: 0; max: 59 |
| `etaDatetime` | string \| null | No | - | format: date-time |
| `etaTimezone` | string \| null | No | - | max length: 100 |
| `quoteVehicleType` | string \| null | No | - | max length: 100 |
| `trailerLength` | number \| null | No | - | - |
| `trailerWidth` | number \| null | No | - | - |
| `trailerHeight` | number \| null | No | - | - |
| `trailerDimensionsUnit` | string \| null | No | - | one of: feet, inches, null |

#### Example input

```json
{
  "spotQuoteId": "<spotQuoteId>",
  "bidId": "<bidId>",
  "customerId": "<customerId>",
  "price": 1
}
```

#### Result

The tool returns the canonical `ark.create_spot_quote_customer_quote_and_hold_bid` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_create_team

`ark.create_team`

Create an organization team and optional team address for admin setup.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `admin:write` |
| ARK permissions | None |
| Team visibility | Not entity-scoped |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `name` | string | Yes | Team name, unique within the organization. | min length: 1; max length: 200 |
| `notes` | string \| null | No | - | max length: 5000 |
| `address` | object | No | - | - |
| `address.address` | string \| null | No | - | max length: 500 |
| `address.address2` | string \| null | No | - | max length: 500 |
| `address.city` | string \| null | No | - | max length: 200 |
| `address.state` | string \| null | No | - | max length: 50 |
| `address.zip` | string \| null | No | - | max length: 30 |
| `address.phone` | string \| null | No | - | max length: 50 |
| `address.email` | string \| null | No | - | max length: 500 |
| `address.country` | string | No | ISO 3166-1 alpha-3 country code. | one of: USA, CAN, MEX |

#### Example input

```json
{
  "name": "<name>"
}
```

#### Result

The tool returns the canonical `ark.create_team` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_deactivate_invoice_remit_profile

`ark.deactivate_invoice_remit_profile`

Deactivate a non-default organization invoice remit profile while preserving historical invoice snapshots.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `billing:write` |
| ARK permissions | `canViewBilling`, `canMakeAdjustments` |
| Team visibility | Not entity-scoped |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | true |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `profileId` | string | Yes | Non-default invoice remit profile ID to deactivate. | format: uuid |

#### Example input

```json
{
  "profileId": "<profileId>"
}
```

#### Result

The tool returns the canonical `ark.deactivate_invoice_remit_profile` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_deactivate_user

`ark.deactivate_user`

Deactivate an organization user account and prevent the user from logging in.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `admin:write` |
| ARK permissions | None |
| Team visibility | Not entity-scoped |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | true |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `userId` | string | Yes | Organization user ID to deactivate. | format: uuid |

#### Example input

```json
{
  "userId": "<userId>"
}
```

#### Result

The tool returns the canonical `ark.deactivate_user` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_delete_carrier

`ark.delete_carrier`

Soft-delete an ARK carrier profile.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `carriers:write` |
| ARK permissions | `canDeleteCarrier` |
| Team visibility | Not entity-scoped |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | true |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `carrierId` | string | Yes | ARK carrier ID to soft-delete. | format: uuid |

#### Example input

```json
{
  "carrierId": "<carrierId>"
}
```

#### Result

The tool returns the canonical `ark.delete_carrier` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_delete_carrier_file

`ark.delete_carrier_file`

Delete a user-uploaded visible ARK carrier file from storage and the files table. System-generated files are protected.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `carriers:write` |
| ARK permissions | `canEditCarrier` |
| Team visibility | Not entity-scoped |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | true |
| Open-world side effect | true |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `carrierId` | string | Yes | Visible ARK carrier ID. | format: uuid |
| `fileId` | string | Yes | Carrier file ID. | format: uuid |

#### Example input

```json
{
  "carrierId": "<carrierId>",
  "fileId": "<fileId>"
}
```

#### Result

The tool returns the canonical `ark.delete_carrier_file` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_delete_customer

`ark.delete_customer`

Soft-delete a visible ARK customer when all customer team mappings are inside the connection team scope.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `customers:write` |
| ARK permissions | `canDeleteCustomer` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | true |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `customerId` | string | Yes | Visible ARK customer ID to soft-delete. | format: uuid |

#### Example input

```json
{
  "customerId": "<customerId>"
}
```

#### Result

The tool returns the canonical `ark.delete_customer` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_delete_load

`ark.delete_load`

Soft-delete a visible ARK load, cancel active dispatches, and stop active tracking sessions.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:delete` |
| ARK permissions | `canDeleteLoad` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | true |
| Open-world side effect | true |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `loadId` | string | Yes | Visible ARK load ID to soft-delete. | format: uuid |

#### Example input

```json
{
  "loadId": "<loadId>"
}
```

#### Result

The tool returns the canonical `ark.delete_load` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_delete_load_file

`ark.delete_load_file`

Delete a user-uploaded visible ARK load file from storage and the files table. System-generated files are protected.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:write` |
| ARK permissions | `canEditLoad` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | true |
| Open-world side effect | true |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `loadId` | string | Yes | Visible ARK load ID. | format: uuid |
| `fileId` | string | Yes | Load file ID. | format: uuid |

#### Example input

```json
{
  "loadId": "<loadId>",
  "fileId": "<fileId>"
}
```

#### Result

The tool returns the canonical `ark.delete_load_file` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_delete_load_notification_settings

`ark.delete_load_notification_settings`

Delete tracking notification settings for a visible ARK load.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:write` |
| ARK permissions | `canEditLoad` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | true |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `loadId` | string | Yes | Visible ARK load ID whose tracking notification settings should be deleted. | format: uuid |

#### Example input

```json
{
  "loadId": "<loadId>"
}
```

#### Result

The tool returns the canonical `ark.delete_load_notification_settings` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_delete_load_vendor_expense

`ark.delete_load_vendor_expense`

Delete a Vendor Expense from a visible ARK load, applying the same customer rebill and locked-billing rules as the website.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:read`, `loads:write`, `billing:write` |
| ARK permissions | `canViewLoads`, `canViewBilling`, `canEditLoad`, `canMakeAdjustments` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | true |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `vendorExpenseId` | string | Yes | Vendor Expense ID to delete. | format: uuid |
| `loadId` | string | Yes | Visible ARK load ID. | format: uuid |

#### Example input

```json
{
  "vendorExpenseId": "<vendorExpenseId>",
  "loadId": "<loadId>"
}
```

#### Result

The tool returns the canonical `ark.delete_load_vendor_expense` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_delete_location

`ark.delete_location`

Archive a visible ARK location using the same soft-delete behavior as the ARK UI.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `locations:write` |
| ARK permissions | `canDeleteLocation` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | true |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `locationId` | string | Yes | Visible ARK location ID to archive. | format: uuid |

#### Example input

```json
{
  "locationId": "<locationId>"
}
```

#### Result

The tool returns the canonical `ark.delete_location` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_delete_person

`ark.delete_person`

Soft-delete a carrier driver or dispatcher contact using the same person deletion behavior as the ARK UI.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `people:write` |
| ARK permissions | `canDeletePerson` |
| Team visibility | Not entity-scoped |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | true |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `personId` | string | Yes | ARK person ID to soft-delete. | format: uuid |

#### Example input

```json
{
  "personId": "<personId>"
}
```

#### Result

The tool returns the canonical `ark.delete_person` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_emit_edi_status_update

`ark.emit_edi_status_update`

Emit a shipment status update for a visible EDI tender linked to a broker load and queue outbound 214 dispatch work.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `edi:write` |
| ARK permissions | `canTakeEdiTenderAction` |
| Team visibility | Not entity-scoped |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | true |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `tenderId` | string | Yes | Inbound EDI tender ID linked to the broker load. | format: uuid |
| `statusKey` | string | Yes | Configured EDI status action key, such as arrived_pickup or delivered. | min length: 1; max length: 100 |
| `eventAt` | string | No | Optional event timestamp. Defaults to now when omitted. | format: date-time |
| `stopSequenceNumber` | string | No | - | min length: 1; max length: 50 |
| `timeCode` | string | No | - | min length: 1; max length: 10 |
| `appointmentNumber` | string | No | - | min length: 1; max length: 100 |
| `carrierReferenceNumber` | string | No | - | min length: 1; max length: 100 |
| `secondaryCarrierScac` | string | No | - | min length: 1; max length: 20 |
| `proofOfDeliveryName` | string | No | - | min length: 1; max length: 200 |
| `eventLocation` | object | No | - | - |
| `eventLocation.city` | string | No | - | min length: 1; max length: 100 |
| `eventLocation.state` | string | No | - | min length: 1; max length: 50 |
| `eventLocation.longitude` | string | No | - | min length: 1; max length: 50 |
| `eventLocation.latitude` | string | No | - | min length: 1; max length: 50 |
| `eventLocation.longitudeDirection` | string | No | - | min length: 1; max length: 2 |
| `eventLocation.latitudeDirection` | string | No | - | min length: 1; max length: 2 |

#### Example input

```json
{
  "tenderId": "<tenderId>",
  "statusKey": "<statusKey>"
}
```

#### Result

The tool returns the canonical `ark.emit_edi_status_update` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_finalize_carrier_file_upload

`ark.finalize_carrier_file_upload`

Finalize a prepared carrier file upload and attach the file to the carrier document history.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `carriers:write` |
| ARK permissions | `canEditCarrier` |
| Team visibility | Not entity-scoped |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | true |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `carrierId` | string | Yes | Visible ARK carrier ID. | format: uuid |
| `filePath` | string | Yes | Storage path returned by ark_prepare_carrier_file_upload. | min length: 1; max length: 2000 |
| `fileName` | string | No | - | min length: 1; max length: 255 |
| `fileType` | string | Yes | Carrier document type such as W9, Insurance, Authority, Contract, or Other. | min length: 1; max length: 100 |
| `mimeType` | string | Yes | - | min length: 1; max length: 255 |

#### Example input

```json
{
  "carrierId": "<carrierId>",
  "filePath": "<filePath>",
  "fileType": "<fileType>",
  "mimeType": "<mimeType>"
}
```

#### Result

The tool returns the canonical `ark.finalize_carrier_file_upload` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_finalize_load_file_upload

`ark.finalize_load_file_upload`

Finalize a prepared load file upload, attach the file to the load, update POD signature comments, and trigger POD upload notifications when applicable.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:write` |
| ARK permissions | `canEditLoad` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | true |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `loadId` | string | Yes | Visible ARK load ID. | format: uuid |
| `filePath` | string | Yes | Storage path returned by ark_prepare_load_file_upload. | min length: 1; max length: 2000 |
| `fileName` | string | No | - | min length: 1; max length: 255 |
| `fileType` | string | Yes | Document type such as POD, BOL, Load Tender, or Other. | min length: 1; max length: 100 |
| `mimeType` | string | Yes | - | min length: 1; max length: 255 |
| `dispatchId` | string | No | Optional dispatch ID when the file belongs to a dispatch-specific document. | format: uuid |
| `podSignedBy` | string \| null | No | - | max length: 200 |

#### Example input

```json
{
  "loadId": "<loadId>",
  "filePath": "<filePath>",
  "fileType": "<fileType>",
  "mimeType": "<mimeType>"
}
```

#### Result

The tool returns the canonical `ark.finalize_load_file_upload` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_finalize_organization_logo_upload

`ark.finalize_organization_logo_upload`

Finalize a prepared organization logo upload after the PNG has been uploaded and return a signed preview URL for the updated logo.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `admin:write` |
| ARK permissions | None |
| Team visibility | Not entity-scoped |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | true |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `logoType` | string | Yes | Logo slot that was prepared: standard or paper. | one of: standard, paper |
| `filePath` | string | Yes | Canonical logo filePath returned by prepare_organization_logo_upload. | min length: 1; max length: 500 |
| `pendingUploadId` | string | Yes | Pending upload ID returned by prepare_organization_logo_upload. | format: uuid |

#### Example input

```json
{
  "logoType": "standard",
  "filePath": "<filePath>",
  "pendingUploadId": "<pendingUploadId>"
}
```

#### Result

The tool returns the canonical `ark.finalize_organization_logo_upload` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_generate_bill_of_lading

`ark.generate_bill_of_lading`

Generate and store an ARK bill of lading PDF for a visible load, persist the effective BOL number, and attach the PDF to load files.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:write` |
| ARK permissions | `canEditLoad` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `loadId` | string | Yes | Visible ARK load ID. | format: uuid |
| `bolNumber` | string | No | Optional BOL number. Defaults to the stored BOL or load number. | max length: 100 |
| `fileName` | string | No | Optional PDF file name. A .pdf extension is added when omitted. | max length: 200 |
| `comment` | string \| null | No | Optional special instructions to print on the BOL. | max length: 5000 |
| `items` | array<object> | No | Optional commodity lines. Omit to use load product, description, pieces, and weight. | min items: 1; max items: 100 |
| `items[]` | object | No | - | - |
| `items[].product` | string \| null | No | - | max length: 200 |
| `items[].description` | string \| null | No | - | max length: 5000 |
| `items[].quantity` | number | No | - | min: 0 |
| `items[].weight` | number | No | - | min: 0 |
| `items[].length` | number \| null | No | - | min: 0 |
| `items[].width` | number \| null | No | - | min: 0 |
| `items[].height` | number \| null | No | - | min: 0 |
| `items[].nmfc` | string \| null | No | - | max length: 100 |
| `items[].hazmat` | boolean | No | - | default: false |

#### Example input

```json
{
  "loadId": "<loadId>"
}
```

#### Result

The tool returns the canonical `ark.generate_bill_of_lading` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_generate_carrier_ach_file

`ark.generate_carrier_ach_file`

Generate an ACH/NACHA batch from READY ARK carrier payments, assign settlement numbers, record the batch, and link the payments to ACH entries.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:read`, `billing:write` |
| ARK permissions | `canViewLoads`, `canViewBilling`, `canMakeAdjustments` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `carrierPaymentIds` | array<string> | Yes | READY carrier payment IDs to include in the ACH/NACHA batch. | min items: 1; max items: 250 |
| `carrierPaymentIds[]` | string | Yes | - | format: uuid |
| `effectiveDate` | string | Yes | ACH effective date in YYYY-MM-DD format. | - |
| `includeFileContent` | boolean | No | When true, return the raw NACHA file and reconciliation CSV in the initial response. These include sensitive bank payment data and are redacted from idempotent replays. | default: false |

#### Example input

```json
{
  "carrierPaymentIds": [
    "<carrierPaymentIds>"
  ],
  "effectiveDate": "<effectiveDate>"
}
```

#### Result

The tool returns the canonical `ark.generate_carrier_ach_file` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_generate_carrier_payment_packet

`ark.generate_carrier_payment_packet`

Generate and store an ARK carrier payment packet PDF by combining selected load documents, then optionally attach it to the carrier payment and mark it invoiced.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:read`, `billing:write` |
| ARK permissions | `canViewLoads`, `canViewBilling`, `canMakeAdjustments` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | true |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `loadId` | string | Yes | Visible ARK load ID whose carrier payment packet should be generated. | format: uuid |
| `dispatchId` | string | Yes | Visible dispatch ID for the carrier payment. | format: uuid |
| `carrierPaymentId` | string | No | Optional carrier payment ID. Omit to use the carrier payment for the load dispatch. | format: uuid |
| `sourceFileIds` | array<string> | Yes | Load file IDs to merge into the carrier payment packet. | min items: 1; max items: 100 |
| `sourceFileIds[]` | string | Yes | - | format: uuid |
| `fileName` | string | No | Optional payment packet PDF file name. A .pdf extension is added when omitted. | max length: 200 |
| `attachToCarrierPayment` | boolean | No | Attach the generated packet to the carrier payment and mark it INVOICED. | default: true |

#### Example input

```json
{
  "loadId": "<loadId>",
  "dispatchId": "<dispatchId>",
  "sourceFileIds": [
    "<sourceFileIds>"
  ]
}
```

#### Result

The tool returns the canonical `ark.generate_carrier_payment_packet` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_generate_customer_billing_packet

`ark.generate_customer_billing_packet`

Generate and store an ARK customer billing packet PDF by combining a generated or custom invoice with selected supporting load documents, then optionally attach it to the customer payment.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:read`, `billing:write` |
| ARK permissions | `canViewLoads`, `canViewBilling`, `canMakeAdjustments` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | true |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `loadId` | string | Yes | Visible ARK load ID to generate the customer billing packet for. | format: uuid |
| `customerPaymentId` | string | No | Optional customer payment ID. Omit to use the latest payment for the load. | format: uuid |
| `invoiceRemitProfileId` | string | No | Optional invoice remit profile ID. Omit to use the locked/default profile. | format: uuid |
| `supportingFileIds` | array<string> | No | Supporting load file IDs to merge after the invoice. | default: []; max items: 100 |
| `supportingFileIds[]` | string | No | - | format: uuid |
| `customInvoiceFileId` | string | No | Optional custom invoice PDF file ID. | format: uuid |
| `customInvoiceMode` | string | No | Whether the custom invoice replaces or is merged before the generated invoice. | one of: replace_generated, include_with_generated; default: "replace_generated" |
| `fileName` | string | No | Optional billing packet PDF file name. A .pdf extension is added when omitted. | max length: 200 |
| `revisedInvoice` | boolean | No | Mark the generated invoice portion as revised. | default: false |
| `attachToCustomerPayment` | boolean | No | Attach the generated packet to the customer payment and mark it READY. | default: true |
| `markCarrierPaymentsReady` | boolean | No | Also mark delivered carrier payments on the load READY. | default: false |

#### Example input

```json
{
  "loadId": "<loadId>"
}
```

#### Result

The tool returns the canonical `ark.generate_customer_billing_packet` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_generate_customer_invoice

`ark.generate_customer_invoice`

Generate and store an ARK customer invoice PDF for a visible load using customer pay and the selected or locked invoice remit profile.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:read`, `billing:write` |
| ARK permissions | `canViewLoads`, `canViewBilling`, `canMakeAdjustments` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | true |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `loadId` | string | Yes | Visible ARK load ID to generate the customer invoice for. | format: uuid |
| `customerPaymentId` | string | No | Optional customer payment ID. Omit to use the latest payment for the load. | format: uuid |
| `invoiceRemitProfileId` | string | No | Optional invoice remit profile ID. Omit to use the locked/default profile. | format: uuid |
| `fileName` | string | No | Optional PDF file name. A .pdf extension is added when omitted. | max length: 200 |
| `revised` | boolean | No | Mark the generated PDF as a revised invoice. | default: false |

#### Example input

```json
{
  "loadId": "<loadId>"
}
```

#### Result

The tool returns the canonical `ark.generate_customer_invoice` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_generate_rate_confirmation

`ark.generate_rate_confirmation`

Generate and store an ARK rate confirmation PDF for a dispatched load without sending it.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:dispatch` |
| ARK permissions | `canAssignLoads` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | true |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `loadId` | string | Yes | Visible ARK load ID. | format: uuid |
| `dispatchId` | string | Yes | Dispatch ID to generate the rate confirmation from. | format: uuid |
| `fileName` | string | No | Optional PDF file name. A .pdf extension is added when omitted. | max length: 200 |

#### Example input

```json
{
  "loadId": "<loadId>",
  "dispatchId": "<dispatchId>"
}
```

#### Result

The tool returns the canonical `ark.generate_rate_confirmation` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_get_aging_report

`ark.get_aging_report`

Return permissioned AR and AP aging summaries with bounded outstanding invoice/payment details for visible teams.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `reports:read` |
| ARK permissions | `canViewReports`, `canViewAgingReport` |
| Team visibility | Required and enforced |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `direction` | string | No | - | one of: receivables, payables, both; default: "both" |
| `teamIds` | array<string> | No | Optional visible team IDs. Omit to use all teams available to the connection. | min items: 1; max items: 100 |
| `teamIds[]` | string | No | - | format: uuid |
| `detailLimit` | integer | No | Maximum details to return per AR/AP section. Summary totals remain complete. | default: 100; min: 0; max: 1000 |

#### Example input

```json
{}
```

#### Result

The tool returns the canonical `ark.get_aging_report` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_get_audit_event

`ark.get_audit_event`

Return permissioned audit event detail, including requested changes, traces, evidence, or sanitized facts.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `audit:read` |
| ARK permissions | `canViewAuditTimeline` |
| Team visibility | Not entity-scoped |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `eventId` | string | Yes | Audit event ID from ark_search_audit_events. | format: uuid |
| `occurredAt` | string | Yes | Audit event occurredAt timestamp from ark_search_audit_events. | format: date-time |
| `view` | string | No | Audit view used to permission and project the detail. | one of: activity, security, payments, integrations, exports, diagnostics; default: "activity" |
| `domainView` | string | No | Optional domain-specific audit projection. | one of: load.case_file, load.spot_quote_funnel, load.carrier_award, load.dispatch_exceptions, load.load_board, load.tracking, carrier.trust, carrier.onboarding, carrier.payment_risk, carrier.compliance_documents, carrier.provider_monitoring, carrier.rejections_dnu, finance.payment_ledger, finance.ap_settlement, finance.ar_invoice_payment, finance.nacha, finance.quickbooks, finance.pay_holds, finance.report_snapshots, integration.edi_trace, integration.tracking_visibility, integration.settings, evidence.documents, evidence.pod_review, customer.account, customer.locations, people.activity, admin.security, admin.org_config, admin.internal_tools, audit.exports, audit.operations |
| `sections` | array<string> | No | Optional detail sections to return, such as changes, trace, evidence, or facts. | min items: 1; max items: 20 |
| `sections[]` | string | No | - | one of: overview, changes, trace, evidence, facts, finance, integration, tracking, carrierDecision, insurance, safety, paymentDestination, rates, alternates |

#### Example input

```json
{
  "eventId": "<eventId>",
  "occurredAt": "2026-07-16T14:00:00Z"
}
```

#### Result

The tool returns the canonical `ark.get_audit_event` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_get_audit_export_download_url

`ark.get_audit_export_download_url`

Create a short-lived signed download URL for a completed audit export. Call ark_list_audit_exports first and use this only when canDownload is true.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `audit:export` |
| ARK permissions | `canViewAuditTimeline`, `canExportAuditLog` |
| Team visibility | Not entity-scoped |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `exportId` | string | Yes | Completed audit export ID from ark_list_audit_exports. | format: uuid |
| `expiresInSeconds` | integer | No | Lifetime for the signed download URL. | default: 300; min: 60; max: 3600 |

#### Example input

```json
{
  "exportId": "<exportId>"
}
```

#### Result

The tool returns the canonical `ark.get_audit_export_download_url` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_get_audit_facets

`ark.get_audit_facets`

Return permissioned audit filter facets and event counts for the selected view, domain, date range, and filters.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `audit:read` |
| ARK permissions | `canViewAuditTimeline` |
| Team visibility | Not entity-scoped |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `view` | string | No | Audit view to search. | one of: activity, security, payments, integrations, exports, diagnostics; default: "activity" |
| `domainView` | string | No | Optional domain-specific audit projection. | one of: load.case_file, load.spot_quote_funnel, load.carrier_award, load.dispatch_exceptions, load.load_board, load.tracking, carrier.trust, carrier.onboarding, carrier.payment_risk, carrier.compliance_documents, carrier.provider_monitoring, carrier.rejections_dnu, finance.payment_ledger, finance.ap_settlement, finance.ar_invoice_payment, finance.nacha, finance.quickbooks, finance.pay_holds, finance.report_snapshots, integration.edi_trace, integration.tracking_visibility, integration.settings, evidence.documents, evidence.pod_review, customer.account, customer.locations, people.activity, admin.security, admin.org_config, admin.internal_tools, audit.exports, audit.operations |
| `q` | string | No | - | min length: 1; max length: 200 |
| `from` | string | No | - | format: date-time |
| `to` | string | No | - | format: date-time |
| `subjectType` | string | No | - | min length: 1; max length: 100 |
| `subjectId` | string | No | - | min length: 1; max length: 200 |
| `actorType` | string | No | - | min length: 1; max length: 100 |
| `actorUserId` | string | No | - | format: uuid |
| `eventKey` | string | No | - | min length: 1; max length: 200 |
| `eventFamily` | string | No | - | min length: 1; max length: 100 |
| `visibilityClass` | string | No | - | one of: business, security, admin, operational |
| `source` | string | No | - | min length: 1; max length: 100 |
| `provider` | string | No | - | min length: 1; max length: 100 |
| `correlationId` | string | No | - | min length: 1; max length: 200 |
| `transactionId` | string | No | - | - |
| `idempotencyKey` | string | No | - | min length: 1; max length: 200 |
| `requestId` | string | No | - | min length: 1; max length: 200 |
| `teamId` | string | No | - | format: uuid |
| `facetIds` | array<string> | No | Optional audit facet IDs to count. Omit for the default audit facets. | min items: 1; max items: 20 |
| `facetIds[]` | string | No | - | one of: summary, visibility_class, workflow_stage, event_family, event_key, provider, source, subject_type, actor_type, indicators, carrier_approval_status, insurance_result, safety_rating, payment_destination_status, award_source, alternate_carrier_count |

#### Example input

```json
{}
```

#### Result

The tool returns the canonical `ark.get_audit_facets` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_get_audit_group

`ark.get_audit_group`

Expand one grouped audit timeline item into permissioned source events using the same filters.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `audit:read` |
| ARK permissions | `canViewAuditTimeline` |
| Team visibility | Not entity-scoped |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `view` | string | No | Audit view to search. | one of: activity, security, payments, integrations, exports, diagnostics; default: "activity" |
| `domainView` | string | No | Optional domain-specific audit projection. | one of: load.case_file, load.spot_quote_funnel, load.carrier_award, load.dispatch_exceptions, load.load_board, load.tracking, carrier.trust, carrier.onboarding, carrier.payment_risk, carrier.compliance_documents, carrier.provider_monitoring, carrier.rejections_dnu, finance.payment_ledger, finance.ap_settlement, finance.ar_invoice_payment, finance.nacha, finance.quickbooks, finance.pay_holds, finance.report_snapshots, integration.edi_trace, integration.tracking_visibility, integration.settings, evidence.documents, evidence.pod_review, customer.account, customer.locations, people.activity, admin.security, admin.org_config, admin.internal_tools, audit.exports, audit.operations |
| `q` | string | No | - | min length: 1; max length: 200 |
| `from` | string | No | - | format: date-time |
| `to` | string | No | - | format: date-time |
| `subjectType` | string | No | - | min length: 1; max length: 100 |
| `subjectId` | string | No | - | min length: 1; max length: 200 |
| `actorType` | string | No | - | min length: 1; max length: 100 |
| `actorUserId` | string | No | - | format: uuid |
| `eventKey` | string | No | - | min length: 1; max length: 200 |
| `eventFamily` | string | No | - | min length: 1; max length: 100 |
| `visibilityClass` | string | No | - | one of: business, security, admin, operational |
| `source` | string | No | - | min length: 1; max length: 100 |
| `provider` | string | No | - | min length: 1; max length: 100 |
| `correlationId` | string | No | - | min length: 1; max length: 200 |
| `transactionId` | string | No | - | - |
| `idempotencyKey` | string | No | - | min length: 1; max length: 200 |
| `requestId` | string | No | - | min length: 1; max length: 200 |
| `teamId` | string | No | - | format: uuid |
| `groupId` | string | Yes | Audit timeline group ID returned by ark_get_audit_timeline. | min length: 1; max length: 200 |
| `limit` | integer | No | - | default: 100; min: 1; max: 250 |

#### Example input

```json
{
  "groupId": "<groupId>"
}
```

#### Result

The tool returns the canonical `ark.get_audit_group` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_get_audit_timeline

`ark.get_audit_timeline`

Return the grouped permissioned audit timeline projection for the selected view, domain, date range, and filters.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `audit:read` |
| ARK permissions | `canViewAuditTimeline` |
| Team visibility | Not entity-scoped |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `view` | string | No | Audit view to search. | one of: activity, security, payments, integrations, exports, diagnostics; default: "activity" |
| `domainView` | string | No | Optional domain-specific audit projection. | one of: load.case_file, load.spot_quote_funnel, load.carrier_award, load.dispatch_exceptions, load.load_board, load.tracking, carrier.trust, carrier.onboarding, carrier.payment_risk, carrier.compliance_documents, carrier.provider_monitoring, carrier.rejections_dnu, finance.payment_ledger, finance.ap_settlement, finance.ar_invoice_payment, finance.nacha, finance.quickbooks, finance.pay_holds, finance.report_snapshots, integration.edi_trace, integration.tracking_visibility, integration.settings, evidence.documents, evidence.pod_review, customer.account, customer.locations, people.activity, admin.security, admin.org_config, admin.internal_tools, audit.exports, audit.operations |
| `q` | string | No | - | min length: 1; max length: 200 |
| `from` | string | No | - | format: date-time |
| `to` | string | No | - | format: date-time |
| `subjectType` | string | No | - | min length: 1; max length: 100 |
| `subjectId` | string | No | - | min length: 1; max length: 200 |
| `actorType` | string | No | - | min length: 1; max length: 100 |
| `actorUserId` | string | No | - | format: uuid |
| `eventKey` | string | No | - | min length: 1; max length: 200 |
| `eventFamily` | string | No | - | min length: 1; max length: 100 |
| `visibilityClass` | string | No | - | one of: business, security, admin, operational |
| `source` | string | No | - | min length: 1; max length: 100 |
| `provider` | string | No | - | min length: 1; max length: 100 |
| `correlationId` | string | No | - | min length: 1; max length: 200 |
| `transactionId` | string | No | - | - |
| `idempotencyKey` | string | No | - | min length: 1; max length: 200 |
| `requestId` | string | No | - | min length: 1; max length: 200 |
| `teamId` | string | No | - | format: uuid |
| `cursorOccurredAt` | string | No | - | format: date-time |
| `cursorId` | string | No | - | format: uuid |
| `limit` | integer | No | - | default: 50; min: 1; max: 100 |

#### Example input

```json
{}
```

#### Result

The tool returns the canonical `ark.get_audit_timeline` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_get_carrier

`ark.get_carrier`

Get a visible ARK carrier by ID with compact operational fields.

| Requirement | Value |
| --- | --- |
| Preview access | Core preview |
| Scopes | `carriers:read` |
| ARK permissions | `canViewCarriers` |
| Team visibility | Not entity-scoped |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `carrierId` | string | Yes | - | format: uuid |

#### Example input

```json
{
  "carrierId": "<carrierId>"
}
```

#### Result

The tool returns the canonical `ark.get_carrier` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_get_carrier_ach_file

`ark.get_carrier_ach_file`

Get a visible ARK carrier ACH/NACHA batch with entries and linked carrier payments for reconciliation.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:read`, `billing:read` |
| ARK permissions | `canViewLoads`, `canViewBilling` |
| Team visibility | Required and enforced |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `nachaFileId` | string | No | NACHA file ID returned by ACH generation or listing. | format: uuid |
| `batchNumber` | integer | No | User-facing ACH/NACHA batch number. Provide this or nachaFileId. | min: 1 |

#### Example input

```json
{}
```

#### Result

The tool returns the canonical `ark.get_carrier_ach_file` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_get_carrier_authority

`ark.get_carrier_authority`

Get FMCSA authority, authority history, revocation, and BOC-3 evidence for a visible ARK carrier.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `carriers:read` |
| ARK permissions | `canViewCarriers` |
| Team visibility | Not entity-scoped |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | true |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `carrierId` | string | Yes | Visible ARK carrier ID whose FMCSA authority evidence should be returned. | format: uuid |

#### Example input

```json
{
  "carrierId": "<carrierId>"
}
```

#### Result

The tool returns the canonical `ark.get_carrier_authority` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_get_carrier_crashes

`ark.get_carrier_crashes`

Get FMCSA crash rows for a visible ARK carrier.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `carriers:read` |
| ARK permissions | `canViewCarriers` |
| Team visibility | Not entity-scoped |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | true |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `carrierId` | string | Yes | Visible ARK carrier ID whose FMCSA crashes should be returned. | format: uuid |
| `cursor` | string | No | Pagination cursor returned by the previous call. | - |
| `limit` | integer | No | - | default: 50; min: 1; max: 200 |

#### Example input

```json
{
  "carrierId": "<carrierId>"
}
```

#### Result

The tool returns the canonical `ark.get_carrier_crashes` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_get_carrier_file_download_url

`ark.get_carrier_file_download_url`

Create a short-lived signed download URL for a visible ARK carrier file.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `carriers:read` |
| ARK permissions | `canViewCarriers` |
| Team visibility | Not entity-scoped |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | true |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `carrierId` | string | Yes | Visible ARK carrier ID. | format: uuid |
| `fileId` | string | Yes | Carrier file ID. | format: uuid |
| `expiresInSeconds` | integer | No | - | default: 3600; min: 60; max: 86400 |

#### Example input

```json
{
  "carrierId": "<carrierId>",
  "fileId": "<fileId>"
}
```

#### Result

The tool returns the canonical `ark.get_carrier_file_download_url` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_get_carrier_fleet

`ark.get_carrier_fleet`

Get FMCSA fleet summary and VIN-backed vehicle evidence for a visible ARK carrier.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `carriers:read` |
| ARK permissions | `canViewCarriers` |
| Team visibility | Not entity-scoped |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | true |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `carrierId` | string | Yes | Visible ARK carrier ID whose FMCSA fleet evidence should be returned. | format: uuid |
| `page` | integer | No | - | default: 1; min: 1 |
| `limit` | integer | No | - | default: 100; min: 1; max: 500 |

#### Example input

```json
{
  "carrierId": "<carrierId>"
}
```

#### Result

The tool returns the canonical `ark.get_carrier_fleet` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_get_carrier_history

`ark.get_carrier_history`

Get FMCSA carrier profile change history for a visible ARK carrier, optionally filtered by category.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `carriers:read` |
| ARK permissions | `canViewCarriers` |
| Team visibility | Not entity-scoped |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | true |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `carrierId` | string | Yes | Visible ARK carrier ID whose FMCSA change history should be returned. | format: uuid |
| `category` | string | No | Optional carrier profile change category. | one of: all, status, identity, contact, safety, fleet, insurance, authority; default: "all" |
| `fieldPrefix` | string | No | Optional raw FMCSA field prefix filter. | min length: 1; max length: 100 |
| `cursor` | string | No | Pagination cursor returned by the previous call. | - |
| `limit` | integer | No | - | default: 25; min: 1; max: 100 |

#### Example input

```json
{
  "carrierId": "<carrierId>"
}
```

#### Result

The tool returns the canonical `ark.get_carrier_history` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_get_carrier_inspections

`ark.get_carrier_inspections`

Get FMCSA roadside inspections, violations, and citations for a visible ARK carrier.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `carriers:read` |
| ARK permissions | `canViewCarriers` |
| Team visibility | Not entity-scoped |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | true |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `carrierId` | string | Yes | Visible ARK carrier ID whose FMCSA inspections should be returned. | format: uuid |
| `year` | string | No | Optional inspection year filter. | - |
| `state` | string | No | Optional two-letter report state filter. | min length: 2; max length: 2 |
| `inspectionLevel` | integer | No | Optional FMCSA inspection level filter. | min: 1; max: 8 |
| `oos` | boolean | No | When true, only return inspections with vehicle out-of-service counts. | - |
| `cursor` | string | No | Pagination cursor returned by the previous call. | - |
| `limit` | integer | No | - | default: 50; min: 1; max: 200 |

#### Example input

```json
{
  "carrierId": "<carrierId>"
}
```

#### Result

The tool returns the canonical `ark.get_carrier_inspections` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_get_carrier_insurance

`ark.get_carrier_insurance`

Get FMCSA active insurance, policy, history, and rejected-filing evidence for a visible ARK carrier.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `carriers:read` |
| ARK permissions | `canViewCarriers` |
| Team visibility | Not entity-scoped |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | true |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `carrierId` | string | Yes | Visible ARK carrier ID whose FMCSA insurance evidence should be returned. | format: uuid |

#### Example input

```json
{
  "carrierId": "<carrierId>"
}
```

#### Result

The tool returns the canonical `ark.get_carrier_insurance` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_get_carrier_onboarding_profile

`ark.get_carrier_onboarding_profile`

Get saved provider onboarding evidence for a visible ARK carrier, including packet status, agreements, artifacts, contacts, insurance, compliance, authority, identity, and payment provenance.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `carriers:read` |
| ARK permissions | `canViewCarriers` |
| Team visibility | Not entity-scoped |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `carrierId` | string | Yes | Visible ARK carrier ID whose saved provider onboarding profile should be returned. | format: uuid |

#### Example input

```json
{
  "carrierId": "<carrierId>"
}
```

#### Result

The tool returns the canonical `ark.get_carrier_onboarding_profile` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_get_carrier_review_metrics

`ark.get_carrier_review_metrics`

Get current ARK carrier rating, review count, and on-time performance metrics.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `carriers:read` |
| ARK permissions | `canViewCarriers` |
| Team visibility | Not entity-scoped |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `carrierId` | string | Yes | Visible ARK carrier ID. | format: uuid |

#### Example input

```json
{
  "carrierId": "<carrierId>"
}
```

#### Result

The tool returns the canonical `ark.get_carrier_review_metrics` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_get_carrier_risk_card

`ark.get_carrier_risk_card`

Summarize carrier authority, insurance, safety, identity, onboarding, and internal eligibility signals without making a booking decision.

| Requirement | Value |
| --- | --- |
| Preview access | Core preview |
| Scopes | `carriers:read` |
| ARK permissions | `canViewCarriers` |
| Team visibility | Not entity-scoped |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `carrierId` | string | Yes | - | format: uuid |

#### Example input

```json
{
  "carrierId": "<carrierId>"
}
```

#### Result

The tool returns the canonical `ark.get_carrier_risk_card` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_get_carrier_settlement

`ark.get_carrier_settlement`

Get one visible ARK carrier settlement group with its payment rows before reviewing or confirming AP settlement actions.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:read`, `billing:read` |
| ARK permissions | `canViewLoads`, `canViewBilling` |
| Team visibility | Required and enforced |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `settlementNumber` | integer | Yes | Carrier settlement number to inspect. | min: 1 |

#### Example input

```json
{
  "settlementNumber": 1
}
```

#### Result

The tool returns the canonical `ark.get_carrier_settlement` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_get_cash_flow_forecast

`ark.get_cash_flow_forecast`

Return permissioned cash-flow forecast data with AR/AP aging buckets, daily inflow/outflow projection, and customer/carrier concentration analysis for visible teams.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `reports:read` |
| ARK permissions | `canViewReports`, `canViewCashFlowForecast` |
| Team visibility | Required and enforced |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `scenario` | string | No | Forecast percentile scenario. P25 is faster cash, P75 is slower cash. | one of: P25, P50, P75; default: "P50" |
| `mode` | string | No | Use historical payment behavior or payment terms for expected dates. | one of: historical, terms; default: "historical" |
| `horizonDays` | integer | No | Forecast horizon in days. | one of: 30, 60, 90; default: 60 |
| `teamIds` | array<string> | No | Optional visible team IDs. Omit to use all teams available to the connection. | min items: 1; max items: 100 |
| `teamIds[]` | string | No | - | format: uuid |

#### Example input

```json
{}
```

#### Result

The tool returns the canonical `ark.get_cash_flow_forecast` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_get_commission_report

`ark.get_commission_report`

Return permissioned commission detail rows, user summaries, or both for a date range and visible teams.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `reports:read` |
| ARK permissions | `canViewReports`, `canViewCommissionReport` |
| Team visibility | Required and enforced |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `from` | string | Yes | Inclusive report start date in YYYY-MM-DD format. | - |
| `to` | string | Yes | Inclusive report end date in YYYY-MM-DD format. | - |
| `teamIds` | array<string> | No | Optional visible team IDs. Omit to use all teams available to the connection. | min items: 1; max items: 100 |
| `teamIds[]` | string | No | - | format: uuid |
| `view` | string | No | - | one of: detail, summary, both; default: "both" |
| `page` | integer | No | - | default: 1; min: 1 |
| `pageSize` | integer | No | - | default: 50; min: 1; max: 500 |
| `userId` | string | No | - | format: uuid |
| `customerId` | string | No | - | format: uuid |
| `isPaid` | boolean | No | - | - |
| `dateFilterType` | string | No | - | one of: delivery_date, created_date, booking_date, pickup_date; default: "delivery_date" |
| `paidDateFilterType` | string | No | - | one of: delivery_date, paid_date; default: "delivery_date" |
| `customerCurrency` | string | No | - | one of: USD, CAD, MXN |
| `detailSortColumn` | string | No | - | one of: date, loadNumber, customerName, userName, currencyCode, revenue, margin, marginCommission, revenueCommission, flatRateCommission, calculatedCommission, role; default: "date" |
| `summarySortColumn` | string | No | - | one of: userName, currencyCode, brokerCommission, salesRepCommission, csrCommission, managerCommission, totalCalculatedCommission; default: "totalCalculatedCommission" |
| `sortDirection` | string | No | - | one of: asc, desc; default: "desc" |

#### Example input

```json
{
  "from": "<from>",
  "to": "<to>"
}
```

#### Result

The tool returns the canonical `ark.get_commission_report` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_get_current_context

`ark.get_current_context`

Inspect the connected ARK actor, effective scopes, visible teams, permissions, and available operations.

| Requirement | Value |
| --- | --- |
| Preview access | Core preview |
| Scopes | `context:read` |
| ARK permissions | None |
| Team visibility | Not entity-scoped |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `includeUnavailableOperations` | boolean | No | - | default: false |

#### Example input

```json
{}
```

#### Result

The tool returns the canonical `ark.get_current_context` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_get_customer

`ark.get_customer`

Get a visible ARK customer by ID with compact operational fields.

| Requirement | Value |
| --- | --- |
| Preview access | Core preview |
| Scopes | `customers:read` |
| ARK permissions | `canViewCustomers` |
| Team visibility | Required and enforced |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `customerId` | string | Yes | - | format: uuid |

#### Example input

```json
{
  "customerId": "<customerId>"
}
```

#### Result

The tool returns the canonical `ark.get_customer` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_get_integration_settings

`ark.get_integration_settings`

Get safe non-secret settings, active state, and credential presence for an ARK organization integration provider.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `admin:read` |
| ARK permissions | None |
| Team visibility | Not entity-scoped |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `provider` | string | Yes | Integration provider whose safe organization settings should be inspected. | one of: ark_tracking, dat, highway, macropoint, mycarrierportal, rmis, sylectus, truckertools |

#### Example input

```json
{
  "provider": "ark_tracking"
}
```

#### Result

The tool returns the canonical `ark.get_integration_settings` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_get_internal_tracking_session

`ark.get_internal_tracking_session`

Get the latest internal ARK Tracking session detail for a visible load, including pending driver invite, stops, latest internal location, driver, and dispatch state.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:read` |
| ARK permissions | `canViewLoads` |
| Team visibility | Required and enforced |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `loadId` | string | Yes | Visible ARK load ID. | format: uuid |

#### Example input

```json
{
  "loadId": "<loadId>"
}
```

#### Result

The tool returns the canonical `ark.get_internal_tracking_session` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_get_load

`ark.get_load`

Get a visible ARK load by ID with customer, lane, status, financial summary, and active dispatch context.

| Requirement | Value |
| --- | --- |
| Preview access | Core preview |
| Scopes | `loads:read` |
| ARK permissions | `canViewLoads` |
| Team visibility | Required and enforced |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `loadId` | string | Yes | - | format: uuid |

#### Example input

```json
{
  "loadId": "<loadId>"
}
```

#### Result

The tool returns the canonical `ark.get_load` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_get_load_billing_readiness

`ark.get_load_billing_readiness`

Inspect billing readiness for a visible load, including required documents, payment state, and blocking reasons.

| Requirement | Value |
| --- | --- |
| Preview access | Core preview |
| Scopes | `loads:read`, `billing:read` |
| ARK permissions | `canViewLoads`, `canViewBilling` |
| Team visibility | Required and enforced |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `loadId` | string | Yes | - | format: uuid |

#### Example input

```json
{
  "loadId": "<loadId>"
}
```

#### Result

The tool returns the canonical `ark.get_load_billing_readiness` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_get_load_board_posting_preview

`ark.get_load_board_posting_preview`

Get DAT or Sylectus posting defaults and validation context before posting or updating a load-board listing.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:read` |
| ARK permissions | `canViewLoads` |
| Team visibility | Required and enforced |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `sourceId` | string | Yes | Load ID, or spot-load ID when sourceType is spot_load. | format: uuid |
| `provider` | string | No | Load-board provider whose posting draft or update should be previewed. | one of: dat, sylectus; default: "dat" |
| `sourceType` | string | No | - | one of: load, spot_load; default: "load" |
| `mode` | string | No | Use draft for a new posting and update for an existing provider posting. | one of: draft, update; default: "draft" |

#### Example input

```json
{
  "sourceId": "<sourceId>"
}
```

#### Result

The tool returns the canonical `ark.get_load_board_posting_preview` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_get_load_board_provider_setup

`ark.get_load_board_provider_setup`

Get current-user DAT and Sylectus load-board setup readiness, assigned seat identifiers, expiration state, and suggested identifiers.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:read` |
| ARK permissions | `canViewLoads` |
| Team visibility | Not entity-scoped |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `providers` | array<string> | No | Load-board providers to inspect for current-user setup readiness. | default: ["dat","sylectus"]; min items: 1; max items: 2 |
| `providers[]` | string | No | - | one of: dat, sylectus |

#### Example input

```json
{}
```

#### Result

The tool returns the canonical `ark.get_load_board_provider_setup` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_get_load_file_download_url

`ark.get_load_file_download_url`

Create a short-lived signed download URL for a visible ARK load file.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:read` |
| ARK permissions | `canViewLoads` |
| Team visibility | Required and enforced |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | true |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `loadId` | string | Yes | Visible ARK load ID. | format: uuid |
| `fileId` | string | Yes | Load file ID. | format: uuid |
| `expiresInSeconds` | integer | No | - | default: 3600; min: 60; max: 86400 |

#### Example input

```json
{
  "loadId": "<loadId>",
  "fileId": "<fileId>"
}
```

#### Result

The tool returns the canonical `ark.get_load_file_download_url` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_get_load_notification_settings

`ark.get_load_notification_settings`

Get tracking notification settings for a visible ARK load, including recipients, event toggles, throttle interval, and last sent timestamp.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:read` |
| ARK permissions | `canViewLoads` |
| Team visibility | Required and enforced |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `loadId` | string | Yes | Visible ARK load ID whose tracking notification settings should be returned. | format: uuid |

#### Example input

```json
{
  "loadId": "<loadId>"
}
```

#### Result

The tool returns the canonical `ark.get_load_notification_settings` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_get_load_report

`ark.get_load_report`

Return a permissioned paginated load report with lane, equipment, status, customer, carrier, revenue, expense, and margin fields.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `reports:read` |
| ARK permissions | `canViewReports`, `canViewLoadReport` |
| Team visibility | Required and enforced |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `from` | string | Yes | Inclusive report start date in YYYY-MM-DD format. | - |
| `to` | string | Yes | Inclusive report end date in YYYY-MM-DD format. | - |
| `teamIds` | array<string> | No | Optional visible team IDs. Omit to use all teams available to the connection. | min items: 1; max items: 100 |
| `teamIds[]` | string | No | - | format: uuid |
| `loadStatus` | array<string> | No | - | default: ["Pending","Dispatched","Delivered"]; max items: 50 |
| `loadStatus[]` | string | No | - | min length: 1; max length: 50 |
| `customerId` | string | No | - | format: uuid |
| `salesRepId` | string | No | - | format: uuid |
| `brokerId` | string | No | - | format: uuid |
| `carrierId` | string | No | - | format: uuid |
| `originCity` | string | No | - | min length: 1; max length: 100 |
| `originState` | string | No | - | min length: 1; max length: 50 |
| `destinationCity` | string | No | - | min length: 1; max length: 100 |
| `destinationState` | string | No | - | min length: 1; max length: 50 |
| `loadSize` | string | No | - | min length: 1; max length: 50 |
| `trailer` | string | No | - | min length: 1; max length: 100 |
| `dateFilterType` | string | No | - | one of: delivery_date, created_date, booking_date, pickup_date; default: "delivery_date" |
| `customerCurrency` | string | No | - | one of: USD, CAD, MXN |
| `carrierCurrency` | string | No | - | one of: USD, CAD, MXN |
| `page` | integer | No | - | default: 1; min: 1 |
| `pageSize` | integer | No | - | default: 50; min: 1; max: 500 |
| `sortColumn` | string | No | - | one of: loadNumber, status, customerCurrency, carrierCurrency, revenue, expenses, margin, customer, carrier, origin, destination; default: "loadNumber" |
| `sortDirection` | string | No | - | one of: asc, desc; default: "desc" |

#### Example input

```json
{
  "from": "<from>",
  "to": "<to>"
}
```

#### Result

The tool returns the canonical `ark.get_load_report` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_get_location

`ark.get_location`

Get a visible ARK location with address, customer, team, and notes.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `locations:read` |
| ARK permissions | `canViewLocations` |
| Team visibility | Required and enforced |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `locationId` | string | Yes | Visible ARK location ID. | format: uuid |

#### Example input

```json
{
  "locationId": "<locationId>"
}
```

#### Result

The tool returns the canonical `ark.get_location` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_get_organization_ach_settings

`ark.get_organization_ach_settings`

Get ARK organization ACH originator settings for billing users, with sensitive values masked unless explicitly requested.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `billing:read` |
| ARK permissions | `canViewBilling` |
| Team visibility | Not entity-scoped |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

_None._

#### Example input

```json
{}
```

#### Result

The tool returns the canonical `ark.get_organization_ach_settings` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_get_organization_settings

`ark.get_organization_settings`

Get tenant-admin organization settings, billing profile fields, and operational toggles. Sensitive payment fields are masked unless explicitly requested with billing read access.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `admin:read` |
| ARK permissions | None |
| Team visibility | Not entity-scoped |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

_None._

#### Example input

```json
{}
```

#### Result

The tool returns the canonical `ark.get_organization_settings` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_get_person

`ark.get_person`

Get one carrier driver or dispatcher contact by ARK person ID.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `people:read` |
| ARK permissions | `canViewPeople` |
| Team visibility | Not entity-scoped |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `personId` | string | Yes | ARK person ID for a carrier driver or dispatcher contact. | format: uuid |
| `type` | string | No | Optional role discriminator when a person can be both driver and dispatcher. | one of: driver, dispatcher |

#### Example input

```json
{
  "personId": "<personId>"
}
```

#### Result

The tool returns the canonical `ark.get_person` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_get_project44_settings

`ark.get_project44_settings`

Get ARK project44 forwarding settings, enablement state, and platform credential health for tenant-admin troubleshooting.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `admin:read` |
| ARK permissions | None |
| Team visibility | Not entity-scoped |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

_None._

#### Example input

```json
{}
```

#### Result

The tool returns the canonical `ark.get_project44_settings` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_get_quickbooks_status

`ark.get_quickbooks_status`

Get safe ARK QuickBooks connection health, token expiry state, realm presence, missing requirements, and integration config before accounting sync actions.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `billing:read` |
| ARK permissions | `canViewBilling` |
| Team visibility | Not entity-scoped |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

_None._

#### Example input

```json
{}
```

#### Result

The tool returns the canonical `ark.get_quickbooks_status` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_get_revenue_report

`ark.get_revenue_report`

Return permissioned revenue, expense, margin, load-count, trend, category, and entity report data for a date range and visible teams.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `reports:read` |
| ARK permissions | `canViewReports`, `canViewRevenueReport` |
| Team visibility | Required and enforced |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `from` | string | Yes | Inclusive report start date in YYYY-MM-DD format. | - |
| `to` | string | Yes | Inclusive report end date in YYYY-MM-DD format. | - |
| `teamIds` | array<string> | No | Optional visible team IDs. Omit to use all teams available to the connection. | min items: 1; max items: 100 |
| `teamIds[]` | string | No | - | format: uuid |
| `loadStatus` | array<string> | No | - | default: ["Pending","Dispatched","Delivered"]; max items: 50 |
| `loadStatus[]` | string | No | - | min length: 1; max length: 50 |
| `customerId` | string | No | - | format: uuid |
| `salesRepId` | string | No | - | format: uuid |
| `brokerId` | string | No | - | format: uuid |
| `carrierId` | string | No | - | format: uuid |
| `originCity` | string | No | - | min length: 1; max length: 100 |
| `originState` | string | No | - | min length: 1; max length: 50 |
| `destinationCity` | string | No | - | min length: 1; max length: 100 |
| `destinationState` | string | No | - | min length: 1; max length: 50 |
| `loadSize` | string | No | - | min length: 1; max length: 50 |
| `trailer` | string | No | - | min length: 1; max length: 100 |
| `dateFilterType` | string | No | - | one of: delivery_date, created_date, booking_date, pickup_date; default: "delivery_date" |
| `customerCurrency` | string | No | - | one of: USD, CAD, MXN |
| `carrierCurrency` | string | No | - | one of: USD, CAD, MXN |
| `interval` | string | No | - | one of: hour, day, week, month; default: "day" |
| `timezone` | string | No | IANA timezone used for trend bucket boundaries. | default: "UTC"; min length: 1; max length: 100 |
| `includeDetails` | boolean | No | - | default: true |
| `includeTrends` | boolean | No | - | default: true |
| `includeEntities` | boolean | No | - | default: true |

#### Example input

```json
{
  "from": "<from>",
  "to": "<to>"
}
```

#### Result

The tool returns the canonical `ark.get_revenue_report` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_get_rmis_registration_steps

`ark.get_rmis_registration_steps`

Fetch RMIS onboarding registration-step activity by RMIS ID, DOT, MC/MX, intrastate number, or today activity.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `carriers:read` |
| ARK permissions | `canInviteCarrierExternal` |
| Team visibility | Not entity-scoped |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | true |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `rmisCarrierId` | string | No | Optional RMIS carrier ID / InsdID. | min length: 1; max length: 64 |
| `dotNumber` | string | No | Optional DOT number lookup. | min length: 1; max length: 32 |
| `mcNumber` | string | No | Optional MC/MX docket number lookup. | min length: 1; max length: 32 |
| `intraStateNumber` | string | No | Optional RMIS intrastate number. | min length: 1; max length: 64 |
| `allActivityForToday` | boolean | No | Fetch all RMIS activity for today. | default: false |

#### Example input

```json
{}
```

#### Result

The tool returns the canonical `ark.get_rmis_registration_steps` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_get_spot_quote

`ark.get_spot_quote`

Get a visible spot quote with stops, bids, customer quotes, invitations, recent events, and watcher state.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:read` |
| ARK permissions | `canViewLoads` |
| Team visibility | Required and enforced |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `spotQuoteId` | string | Yes | Visible spot quote ID. | format: uuid |

#### Example input

```json
{
  "spotQuoteId": "<spotQuoteId>"
}
```

#### Result

The tool returns the canonical `ark.get_spot_quote` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_get_spot_quote_intelligence

`ark.get_spot_quote_intelligence`

Get lane history, pricing statistics, nearby carrier context, and quote recommendations for a pickup and delivery ZIP pair.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:read` |
| ARK permissions | `canViewLoads` |
| Team visibility | Required and enforced |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `pickupZip` | string | Yes | Pickup ZIP code. One to five digits are accepted and normalized to five. | - |
| `deliveryZip` | string | Yes | Delivery ZIP code. One to five digits are accepted and normalized to five. | - |
| `daysBack` | integer | No | Historical lookback window for lane statistics and recent awarded history. | default: 90; min: 1; max: 365 |
| `carrierRadius` | integer | No | Pickup-radius search in miles for nearby carriers. | default: 150; min: 1; max: 500 |
| `maxCarriers` | integer | No | Maximum nearby carriers to return. | default: 20; min: 1; max: 100 |
| `teamIds` | array<string> | No | Visible team IDs to filter lane history by. Omit to use all visible teams. | min items: 1; max items: 50 |
| `teamIds[]` | string | No | - | format: uuid |

#### Example input

```json
{
  "pickupZip": "<pickupZip>",
  "deliveryZip": "<deliveryZip>"
}
```

#### Result

The tool returns the canonical `ark.get_spot_quote_intelligence` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_get_spot_quote_lane_history

`ark.get_spot_quote_lane_history`

Get awarded quote history, pricing trend, and market activity for a pickup and delivery ZIP lane.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:read` |
| ARK permissions | `canViewLoads` |
| Team visibility | Required and enforced |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `pickupZip` | string | Yes | Pickup ZIP code. One to five digits are accepted and normalized to five. | - |
| `deliveryZip` | string | Yes | Delivery ZIP code. One to five digits are accepted and normalized to five. | - |
| `daysBack` | integer | No | Historical lookback window for lane statistics and awarded history. | default: 90; min: 1; max: 365 |
| `limit` | integer | No | Maximum awarded spot quote history records to return. | default: 50; min: 1; max: 100 |
| `teamIds` | array<string> | No | Visible team IDs to filter lane history by. Omit to use all visible teams. | min items: 1; max items: 50 |
| `teamIds[]` | string | No | - | format: uuid |

#### Example input

```json
{
  "pickupZip": "<pickupZip>",
  "deliveryZip": "<deliveryZip>"
}
```

#### Result

The tool returns the canonical `ark.get_spot_quote_lane_history` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_get_tracking_link

`ark.get_tracking_link`

Get a customer-facing tracking link for the active or selected tracking provider on a visible ARK load.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:dispatch` |
| ARK permissions | `canAssignLoads` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | true |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `loadId` | string | Yes | Visible ARK load ID. | format: uuid |
| `provider` | string | No | Optional tracking provider. Omit to use ARK provider selection. | one of: macropoint, truckertools, internal |

#### Example input

```json
{
  "loadId": "<loadId>"
}
```

#### Result

The tool returns the canonical `ark.get_tracking_link` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_get_tracking_session_metrics

`ark.get_tracking_session_metrics`

Get internal ARK Tracking session metrics and cost counters for billing review, optionally filtered by billing period, load, or session.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `billing:read` |
| ARK permissions | `canViewBilling` |
| Team visibility | Not entity-scoped |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `billingPeriod` | string | No | Optional billing period in YYYY-MM format. | - |
| `loadId` | string | No | Optional ARK load ID filter. | format: uuid |
| `sessionId` | string | No | Optional internal tracking session ID filter. | format: uuid |

#### Example input

```json
{}
```

#### Result

The tool returns the canonical `ark.get_tracking_session_metrics` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_get_tracking_status

`ark.get_tracking_status`

Get active MacroPoint, TruckerTools, or internal ARK tracking sessions for a visible load.

| Requirement | Value |
| --- | --- |
| Preview access | Core preview |
| Scopes | `loads:read` |
| ARK permissions | `canViewLoads` |
| Team visibility | Required and enforced |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `loadId` | string | Yes | - | format: uuid |

#### Example input

```json
{
  "loadId": "<loadId>"
}
```

#### Result

The tool returns the canonical `ark.get_tracking_status` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_get_tracking_update_params

`ark.get_tracking_update_params`

Get the active tracking session ARK would update, its current provider settings, and which update fields that provider supports.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:read` |
| ARK permissions | `canViewLoads` |
| Team visibility | Required and enforced |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `loadId` | string | Yes | Visible ARK load ID. | format: uuid |

#### Example input

```json
{
  "loadId": "<loadId>"
}
```

#### Result

The tool returns the canonical `ark.get_tracking_update_params` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_get_tracking_usage_summary

`ark.get_tracking_usage_summary`

Get internal ARK Tracking usage summary rows for the organization, optionally filtered to one YYYY-MM billing period.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `billing:read` |
| ARK permissions | `canViewBilling` |
| Team visibility | Not entity-scoped |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `billingPeriod` | string | No | Optional billing period in YYYY-MM format. | - |

#### Example input

```json
{}
```

#### Result

The tool returns the canonical `ark.get_tracking_usage_summary` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_get_user_commission_settings

`ark.get_user_commission_settings`

Get default role commission settings and customer-specific commission overrides for an organization user.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `admin:read` |
| ARK permissions | None |
| Team visibility | Not entity-scoped |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `userId` | string | Yes | Organization user ID whose commission settings should be returned. | format: uuid |

#### Example input

```json
{
  "userId": "<userId>"
}
```

#### Result

The tool returns the canonical `ark.get_user_commission_settings` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_get_user_permissions

`ark.get_user_permissions`

List public ARK permissions with enabled state for an organization user before admin access changes.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `admin:read` |
| ARK permissions | None |
| Team visibility | Not entity-scoped |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `userId` | string | Yes | Organization user ID whose permissions should be inspected. | format: uuid |

#### Example input

```json
{
  "userId": "<userId>"
}
```

#### Result

The tool returns the canonical `ark.get_user_permissions` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_get_user_preferences

`ark.get_user_preferences`

Get notification and sound preferences for the connected ARK user.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `notifications:read` |
| ARK permissions | None |
| Team visibility | Not entity-scoped |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

_None._

#### Example input

```json
{}
```

#### Result

The tool returns the canonical `ark.get_user_preferences` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_get_vendor_expense_rebill_state

`ark.get_vendor_expense_rebill_state`

Get linked customer rebill and locked-billing state for Vendor Expenses on a visible ARK load.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:read`, `billing:read` |
| ARK permissions | `canViewLoads`, `canViewBilling` |
| Team visibility | Required and enforced |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `loadId` | string | Yes | Visible ARK load ID. | format: uuid |

#### Example input

```json
{
  "loadId": "<loadId>"
}
```

#### Result

The tool returns the canonical `ark.get_vendor_expense_rebill_state` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_get_work_queue

`ark.get_work_queue`

Summarize the connected user's active operational work queue, including visible open loads and EDI tenders when allowed.

| Requirement | Value |
| --- | --- |
| Preview access | Core preview |
| Scopes | `operations:read`, `loads:read` |
| ARK permissions | `canViewLoads` |
| Team visibility | Required and enforced |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `teamIds` | array<string> | No | - | - |
| `teamIds[]` | string | No | - | format: uuid |
| `includeEdi` | boolean | No | - | default: true |
| `includeLoads` | boolean | No | - | default: true |

#### Example input

```json
{}
```

#### Result

The tool returns the canonical `ark.get_work_queue` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_hold_spot_quote

`ark.hold_spot_quote`

Place a visible active spot quote on hold and notify watchers.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:write` |
| ARK permissions | `canEditLoad` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `spotQuoteId` | string | Yes | Visible active spot quote ID. | format: uuid |
| `reason` | string | Yes | - | min length: 1; max length: 5000 |

#### Example input

```json
{
  "spotQuoteId": "<spotQuoteId>",
  "reason": "<reason>"
}
```

#### Result

The tool returns the canonical `ark.hold_spot_quote` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_hold_spot_quote_bid

`ark.hold_spot_quote_bid`

Place a visible pending spot quote bid on hold when no other bid is held for the same spot quote.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:write` |
| ARK permissions | `canEditLoad` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `bidId` | string | Yes | Visible pending spot quote bid ID. | format: uuid |
| `reason` | string | Yes | - | min length: 1; max length: 5000 |

#### Example input

```json
{
  "bidId": "<bidId>",
  "reason": "<reason>"
}
```

#### Result

The tool returns the canonical `ark.hold_spot_quote_bid` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_import_carriers

`ark.import_carriers`

Import parsed CSV rows as ARK carriers, resolving factoring and payment terms while storing bank and tax fields encrypted without echoing them back.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `carriers:write` |
| ARK permissions | `canCreateCarrier` |
| Team visibility | Not entity-scoped |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `rows` | array<object> | Yes | Parsed CSV rows for carrier import. Each row creates one carrier with address, FMCSA authority, insurance, and payment routing. | min items: 1; max items: 1000 |
| `rows[]` | object | Yes | - | - |
| `rows[].name` | string | Yes | - | min length: 1; max length: 200 |
| `rows[].dbaName` | string \| null | No | - | max length: 200 |
| `rows[].active` | boolean | No | - | default: false |
| `rows[].doNotUse` | boolean | No | - | default: false |
| `rows[].notes` | string \| null | No | - | max length: 5000 |
| `rows[].dispatchEmail` | string \| null | No | Email address or semicolon/comma-separated emails. | - |
| `rows[].dispatchPhone` | string \| null | No | - | max length: 50 |
| `rows[].domicileCountry` | string | No | - | one of: USA, CAN, MEX; default: "USA" |
| `rows[].operatingCountries` | array<string> | No | - | min items: 1; max items: 3 |
| `rows[].operatingCountries[]` | string | No | - | one of: USA, CAN, MEX |
| `rows[].dotNumber` | string \| null | No | DOT number. Required with US operating authority unless mcNumber is provided. | max length: 30 |
| `rows[].mcNumber` | string \| null | No | MC, FF, MX, or numeric authority identifier. | max length: 30 |
| `rows[].scac` | string \| null | No | - | - |
| `rows[].caat` | string \| null | No | Required for carriers operating in Mexico. | max length: 30 |
| `rows[].taxId` | string \| null | No | Sensitive tax ID to store encrypted. Value is never returned. | max length: 100 |
| `rows[].sctPermit` | string \| null | No | - | max length: 100 |
| `rows[].nscNumber` | string \| null | No | Required for carriers operating in Canada. | max length: 100 |
| `rows[].nscProvince` | string \| null | No | Required for carriers operating in Canada. | max length: 100 |
| `rows[].gstHstNumber` | string \| null | No | - | max length: 100 |
| `rows[].defaultCurrency` | string | No | - | one of: USD, CAD, MXN; default: "USD" |
| `rows[].address` | string \| null | No | - | max length: 500 |
| `rows[].address2` | string \| null | No | - | max length: 500 |
| `rows[].city` | string \| null | No | - | max length: 200 |
| `rows[].state` | string \| null | No | - | max length: 20 |
| `rows[].zip` | string \| null | No | - | max length: 30 |
| `rows[].phone` | string \| null | No | - | max length: 50 |
| `rows[].email` | string \| null | No | Email address or semicolon/comma-separated emails. | - |
| `rows[].billingAddress` | string \| null | No | - | max length: 500 |
| `rows[].billingAddress2` | string \| null | No | - | max length: 500 |
| `rows[].billingCity` | string \| null | No | - | max length: 200 |
| `rows[].billingState` | string \| null | No | - | max length: 20 |
| `rows[].billingZip` | string \| null | No | - | max length: 30 |
| `rows[].billingPhone` | string \| null | No | - | max length: 50 |
| `rows[].billingEmail` | string \| null | No | Email address or semicolon/comma-separated emails. | - |
| `rows[].fmcsaBrokerAuthority` | boolean | No | - | default: false |
| `rows[].fmcsaCommonAuthority` | boolean | No | - | default: false |
| `rows[].fmcsaContractAuthority` | boolean | No | - | default: false |
| `rows[].insuranceAutoLiability` | number | No | - | - |
| `rows[].insuranceAutoLiabilityCompany` | string \| null | No | - | max length: 200 |
| `rows[].insuranceAutoLiabilityPolicyNum` | string \| null | No | - | max length: 100 |
| `rows[].insuranceAutoLiabilityExpiration` | string \| null | No | - | max length: 50 |
| `rows[].insuranceGeneralLiability` | number | No | - | - |
| `rows[].insuranceGeneralLiabilityCompany` | string \| null | No | - | max length: 200 |
| `rows[].insuranceGeneralLiabilityPolicyNum` | string \| null | No | - | max length: 100 |
| `rows[].insuranceGeneralLiabilityExpiration` | string \| null | No | - | max length: 50 |
| `rows[].insuranceCargo` | number | No | - | - |
| `rows[].insuranceCargoCompany` | string \| null | No | - | max length: 200 |
| `rows[].insuranceCargoPolicyNum` | string \| null | No | - | max length: 100 |
| `rows[].insuranceCargoExpiration` | string \| null | No | - | max length: 50 |
| `rows[].useFactoring` | boolean | No | - | default: false |
| `rows[].factoringCompanyName` | string \| null | No | Existing factoring company name to resolve when useFactoring is true. | max length: 200 |
| `rows[].paymentTermDays` | integer | No | Required when useFactoring is false. | - |
| `rows[].paymentTermDiscount` | number | No | - | default: 0 |
| `rows[].paymentMethod` | string \| null | No | - | max length: 50 |
| `rows[].bankName` | string \| null | No | - | max length: 100 |
| `rows[].bankType` | string \| null | No | - | max length: 50 |
| `rows[].bankAccountNum` | string \| null | No | Sensitive bank account number to store encrypted. Value is never returned. | max length: 100 |
| `rows[].transitNumber` | string \| null | No | Canadian transit number used with institutionNumber. | max length: 20 |
| `rows[].institutionNumber` | string \| null | No | Canadian institution number used with transitNumber. | max length: 20 |
| `rows[].bankRoutingNum` | string \| null | No | US ABA, Canadian combined routing, or Mexican CLABE. Stored encrypted. | max length: 50 |

#### Example input

```json
{
  "rows": [
    {
      "name": "<name>"
    }
  ]
}
```

#### Result

The tool returns the canonical `ark.import_carriers` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_import_customers

`ark.import_customers`

Import parsed CSV rows as ARK customers, resolving visible teams, matching payment terms, and reporting duplicate skips.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `customers:write` |
| ARK permissions | `canCreateCustomer` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `rows` | array<object> | Yes | Parsed CSV rows for customer import. The tool resolves visible teams, skips duplicate customer names, and links matching payment terms. | min items: 1; max items: 1000 |
| `rows[]` | object | Yes | - | - |
| `rows[].teamName` | string | No | - | max length: 200 |
| `rows[].teamId` | string | No | - | - |
| `rows[].name` | string | Yes | - | min length: 1; max length: 200 |
| `rows[].country` | string | No | - | one of: USA, CAN, MEX; default: "USA" |
| `rows[].defaultCurrency` | string | No | - | one of: USD, CAD, MXN; default: "USD" |
| `rows[].code` | string \| null | No | - | max length: 50 |
| `rows[].notes` | string \| null | No | - | max length: 5000 |
| `rows[].trackingEmail` | string \| null | No | - | max length: 500 |
| `rows[].businessHoursOpen` | string \| null | No | - | max length: 50 |
| `rows[].businessHoursClose` | string \| null | No | - | max length: 50 |
| `rows[].address` | string \| null | No | - | max length: 500 |
| `rows[].address2` | string \| null | No | - | max length: 500 |
| `rows[].city` | string \| null | No | - | max length: 200 |
| `rows[].state` | string \| null | No | - | max length: 20 |
| `rows[].zip` | string \| null | No | - | max length: 30 |
| `rows[].phone` | string \| null | No | - | max length: 50 |
| `rows[].email` | string \| null | No | - | max length: 500 |
| `rows[].insuranceAutoLiability` | number | No | - | - |
| `rows[].insuranceGeneralLiability` | number | No | - | - |
| `rows[].insuranceCargo` | number | No | - | - |
| `rows[].creditFederalId` | string \| null | No | - | max length: 100 |
| `rows[].creditBillingAddress` | string \| null | No | - | max length: 500 |
| `rows[].creditBillingAddress2` | string \| null | No | - | max length: 500 |
| `rows[].creditBillingCity` | string \| null | No | - | max length: 200 |
| `rows[].creditBillingState` | string \| null | No | - | max length: 20 |
| `rows[].creditBillingZip` | string \| null | No | - | max length: 30 |
| `rows[].creditBillingPhone` | string \| null | No | - | max length: 50 |
| `rows[].creditBillingEmail` | string \| null | No | - | max length: 500 |
| `rows[].creditBillingContact` | string \| null | No | - | max length: 200 |
| `rows[].creditApproved` | boolean | No | - | - |
| `rows[].creditLimit` | number | No | - | - |
| `rows[].paymentTermDays` | integer | No | Payment term days to match against an organization payment term. | - |

#### Example input

```json
{
  "rows": [
    {
      "name": "<name>"
    }
  ]
}
```

#### Result

The tool returns the canonical `ark.import_customers` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_import_factoring_companies

`ark.import_factoring_companies`

Import parsed CSV rows as ARK factoring companies, resolving matching payment terms and reporting row-level results without returning raw bank or tax values.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `factoring:write` |
| ARK permissions | `canCreateFactoring` |
| Team visibility | Not entity-scoped |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `rows` | array<object> | Yes | Parsed CSV rows for factoring company import. Each row creates one factoring company. | min items: 1; max items: 1000 |
| `rows[]` | object | Yes | - | - |
| `rows[].name` | string | Yes | - | min length: 1; max length: 200 |
| `rows[].notes` | string \| null | No | - | max length: 5000 |
| `rows[].active` | boolean | No | - | default: true |
| `rows[].billingAddress` | string | No | - | max length: 500 |
| `rows[].billingAddress2` | string | No | - | max length: 500 |
| `rows[].billingCity` | string | No | - | max length: 200 |
| `rows[].billingState` | string | No | - | max length: 20 |
| `rows[].billingZip` | string | No | - | max length: 30 |
| `rows[].billingPhone` | string | No | - | max length: 50 |
| `rows[].billingEmail` | string \| null | No | Email address or semicolon/comma-separated emails. | - |
| `rows[].federalTaxId` | string | No | Sensitive tax ID to store encrypted. Value is never returned. | max length: 100 |
| `rows[].paymentMethod` | string | No | - | max length: 50 |
| `rows[].paymentTermDays` | integer | No | Payment term day count. The import links a matching organization payment term when days and discount match. | - |
| `rows[].paymentTermDiscount` | number | No | - | default: 0 |
| `rows[].bankName` | string | No | - | max length: 100 |
| `rows[].bankType` | string | No | - | max length: 50 |
| `rows[].bankAccountNum` | string | No | Sensitive bank account number to store encrypted. Value is never returned. | max length: 100 |
| `rows[].bankRoutingNum` | string | No | Sensitive bank routing number. Formatting characters are accepted; stored encrypted after validation. | max length: 50 |

#### Example input

```json
{
  "rows": [
    {
      "name": "<name>"
    }
  ]
}
```

#### Result

The tool returns the canonical `ark.import_factoring_companies` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_import_locations

`ark.import_locations`

Import parsed CSV rows as ARK locations, resolving visible teams, exact customer names, and duplicate skips.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `locations:write` |
| ARK permissions | `canCreateLocation` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `rows` | array<object> | Yes | Parsed CSV rows for location import. The tool resolves visible teams, exact customer names, and duplicate locations. | min items: 1; max items: 1000 |
| `rows[]` | object | Yes | - | - |
| `rows[].teamName` | string | No | Visible team name. Required when the actor can access multiple teams unless teamId is provided. | max length: 200 |
| `rows[].teamId` | string | No | Visible team ID. Takes precedence over teamName. | - |
| `rows[].name` | string | Yes | - | min length: 1; max length: 200 |
| `rows[].notes` | string \| null | No | - | max length: 5000 |
| `rows[].internalNotes` | string \| null | No | - | max length: 5000 |
| `rows[].customerName` | string | No | Exact customer name to link within the selected visible team. | max length: 200 |
| `rows[].company` | string \| null | No | - | max length: 200 |
| `rows[].address` | string \| null | No | - | max length: 500 |
| `rows[].address2` | string \| null | No | - | max length: 500 |
| `rows[].city` | string \| null | No | - | max length: 200 |
| `rows[].state` | string \| null | No | - | max length: 20 |
| `rows[].country` | string | No | USA, CAN, or MEX. Common aliases like US, Canada, and MX are accepted. | one of: USA, CAN, MEX; default: "USA" |
| `rows[].zip` | string \| null | No | - | max length: 30 |
| `rows[].phone` | string \| null | No | - | max length: 50 |
| `rows[].email` | string \| null | No | Email address or semicolon/comma-separated emails. | max length: 500 |
| `rows[].latitude` | number | No | - | min: -90; max: 90 |
| `rows[].longitude` | number | No | - | min: -180; max: 180 |
| `rows[].timezoneId` | string \| null | No | - | max length: 100 |

#### Example input

```json
{
  "rows": [
    {
      "name": "<name>"
    }
  ]
}
```

#### Result

The tool returns the canonical `ark.import_locations` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_import_people

`ark.import_people`

Import parsed CSV rows as driver or dispatcher contacts, linking each row to an exact carrier match and reporting skipped rows.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `people:write`, `carriers:read` |
| ARK permissions | `canCreatePerson`, `canViewCarriers` |
| Team visibility | Not entity-scoped |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `rows` | array<object> | Yes | Parsed CSV rows for people import. Each row becomes a driver or dispatcher when an exact carrier match is found. | min items: 1; max items: 1000 |
| `rows[]` | object | Yes | - | - |
| `rows[].firstName` | string | No | Person first name. Required for Dispatcher rows. | - |
| `rows[].lastName` | string | No | Person last name. Required for Dispatcher rows. | - |
| `rows[].email` | string \| null | No | Email address or semicolon/comma-separated emails. Required for Dispatcher rows. | - |
| `rows[].phone` | string | No | - | - |
| `rows[].notes` | string | No | - | - |
| `rows[].carrierName` | string | Yes | Carrier name used for exact matching when carrierMC is absent. | min length: 1 |
| `rows[].carrierMC` | string | No | Carrier MC number used for exact matching first. | - |
| `rows[].carrierDOT` | string | No | Accepted for CSV compatibility; carrier matching uses MC then name. | - |
| `rows[].type` | string | Yes | - | one of: Driver, Dispatcher |

#### Example input

```json
{
  "rows": [
    {
      "carrierName": "<carrierName>",
      "type": "Driver"
    }
  ]
}
```

#### Result

The tool returns the canonical `ark.import_people` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_invite_carrier_provider_onboarding

`ark.invite_carrier_provider_onboarding`

Send a carrier onboarding invitation through Highway, RMIS, or MyCarrierPortal with the provider-specific fields required by ARK.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `carriers:write` |
| ARK permissions | `canInviteCarrierExternal` |
| Team visibility | Not entity-scoped |
| Approval policy | ask_before_send |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | true |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `provider` | string | Yes | External carrier onboarding provider that should send the invitation. | one of: highway, rmis, mycarrierportal |
| `email` | string | Yes | Carrier contact email that receives the provider invitation. | format: email; max length: 254 |
| `carrierId` | string | No | Optional ARK carrier ID to link provider invitation state. | format: uuid |
| `dotNumber` | string | No | Optional DOT number lookup. | min length: 1; max length: 32 |
| `mcNumber` | string | No | Optional MC/MX docket number lookup. | min length: 1; max length: 32 |
| `highwayCarrierId` | string | No | Highway carrier ID when using the Highway provider. | min length: 1; max length: 64 |
| `highwayExternalId` | string | No | Highway external ID when using the Highway provider. | min length: 1; max length: 100 |
| `companyName` | string | No | RMIS company name. | min length: 1; max length: 200 |
| `contactName` | string | No | RMIS carrier contact name. | min length: 1; max length: 200 |
| `createUserName` | string | No | RMIS sender name. | min length: 1; max length: 200 |
| `createUserEmail` | string | No | RMIS sender email. | format: email; max length: 254 |
| `clientMemberId` | string | No | Optional RMIS ClientMemberID. | min length: 1; max length: 100 |

#### Example input

```json
{
  "provider": "highway",
  "email": "<email>"
}
```

#### Result

The tool returns the canonical `ark.invite_carrier_provider_onboarding` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_invite_driver_app

`ark.invite_driver_app`

Create or link a driver mobile-app account and record broker-confirmed SMS consent for the driver invite workflow.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `people:write` |
| ARK permissions | `one of: canCreatePerson`, `one of: canEditPerson` |
| Team visibility | Not entity-scoped |
| Approval policy | ask_before_send |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | true |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `driverId` | string | Yes | Driver record ID returned as recordId by ark_search_people for type=driver. | format: uuid |
| `consentConfirmed` | boolean | Yes | Must be true after the broker has confirmed SMS consent. | - |
| `consentMethod` | string | No | How the broker confirmed driver SMS consent. | one of: verbal, written, electronic; default: "verbal" |

#### Example input

```json
{
  "driverId": "<driverId>",
  "consentConfirmed": true
}
```

#### Result

The tool returns the canonical `ark.invite_driver_app` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_invite_user

`ark.invite_user`

Invite a broker user or reactivate an inactive organization user, then assign teams in the same admin action.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `admin:write` |
| ARK permissions | None |
| Team visibility | Not entity-scoped |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | true |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `email` | string | Yes | Email address for the invited or reactivated user. | format: email; max length: 320 |
| `firstName` | string | Yes | User first name. | min length: 2; max length: 100 |
| `lastName` | string | Yes | User last name. | min length: 2; max length: 100 |
| `teamIds` | array<string> | No | Team IDs to assign. Omit only when the organization has a single team. | min items: 1; max items: 100 |
| `teamIds[]` | string | No | - | format: uuid |
| `defaultTeamId` | string | No | Default team ID. Required when the organization has multiple teams. | format: uuid |

#### Example input

```json
{
  "email": "<email>",
  "firstName": "<firstName>",
  "lastName": "<lastName>"
}
```

#### Result

The tool returns the canonical `ark.invite_user` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_list_active_integrations

`ark.list_active_integrations`

List active ARK integration providers for the organization before attempting provider-specific workflows.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `context:read` |
| ARK permissions | None |
| Team visibility | Not entity-scoped |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

_None._

#### Example input

```json
{}
```

#### Result

The tool returns the canonical `ark.list_active_integrations` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_list_agent_sessions

`ark.list_agent_sessions`

List MCP and hosted-agent sessions for the connected user with status, budget counters, and client metadata.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `agents:read` |
| ARK permissions | None |
| Team visibility | Not entity-scoped |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `status` | string | No | Optional exact session status filter. | one of: active, completed, stopped, expired, failed |
| `includeInactive` | boolean | No | Include non-active sessions when status is omitted. | default: false |
| `limit` | integer | No | - | default: 50; min: 1; max: 100 |

#### Example input

```json
{}
```

#### Result

The tool returns the canonical `ark.list_agent_sessions` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_list_aging_details

`ark.list_aging_details`

List unpaid invoice or settlement detail rows for one AR customer or AP carrier aging summary row with search, currency, pagination, and sort controls.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `reports:read` |
| ARK permissions | `canViewReports`, `canViewAgingReport` |
| Team visibility | Required and enforced |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `direction` | string | Yes | receivables expects a customer entityId. payables expects a carrier entityId. | one of: receivables, payables |
| `entityId` | string | Yes | Customer ID for receivables or carrier ID for payables. | format: uuid |
| `teamIds` | array<string> | No | Optional visible team IDs. Omit to use all teams available to the connection. | min items: 1; max items: 100 |
| `teamIds[]` | string | No | - | format: uuid |
| `search` | string | No | - | max length: 200 |
| `currencyCode` | string | No | - | one of: USD, CAD, MXN |
| `page` | integer | No | - | default: 1; min: 1 |
| `pageSize` | integer | No | - | default: 25; min: 1; max: 500 |
| `sortColumn` | string | No | - | one of: docNumber, amountDue, ageDays, bucket, status, pickupNumber, loadNumber, settlementNumber; default: "ageDays" |
| `sortDirection` | string | No | - | one of: asc, desc; default: "desc" |

#### Example input

```json
{
  "direction": "receivables",
  "entityId": "<entityId>"
}
```

#### Result

The tool returns the canonical `ark.list_aging_details` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_list_aging_summary

`ark.list_aging_summary`

List AR customer or AP carrier aging summary rows with search, bucket, hold, currency, team, pagination, and sort controls.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `reports:read` |
| ARK permissions | `canViewReports`, `canViewAgingReport` |
| Team visibility | Required and enforced |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `direction` | string | Yes | receivables lists customer AR aging. payables lists carrier AP aging. | one of: receivables, payables |
| `teamIds` | array<string> | No | Optional visible team IDs. Omit to use all teams available to the connection. | min items: 1; max items: 100 |
| `teamIds[]` | string | No | - | format: uuid |
| `search` | string | No | - | max length: 200 |
| `bucket` | string | No | - | one of: 0-30, 31-60, 61-90, 90+ |
| `onHoldOnly` | boolean | No | - | - |
| `currencyCode` | string | No | - | one of: USD, CAD, MXN |
| `page` | integer | No | - | default: 1; min: 1 |
| `pageSize` | integer | No | - | default: 25; min: 1; max: 500 |
| `sortColumn` | string | No | - | one of: entityName, currencyCode, totalOutstanding, oldestAgeDays, oldestBucket, itemCount, onHoldCount; default: "totalOutstanding" |
| `sortDirection` | string | No | - | one of: asc, desc; default: "desc" |

#### Example input

```json
{
  "direction": "receivables"
}
```

#### Result

The tool returns the canonical `ark.list_aging_summary` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_list_approval_requests

`ark.list_approval_requests`

List pending or resolved MCP and hosted-agent action requests for the connected user.

| Requirement | Value |
| --- | --- |
| Preview access | Core preview |
| Scopes | `agents:read` |
| ARK permissions | None |
| Team visibility | Not entity-scoped |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `status` | string | No | - | one of: pending, approved, rejected, expired, cancelled, consumed |
| `sessionId` | string | No | - | format: uuid |
| `includeResolved` | boolean | No | - | default: false |
| `limit` | integer | No | - | default: 50; min: 1; max: 100 |

#### Example input

```json
{}
```

#### Result

The tool returns the canonical `ark.list_approval_requests` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_list_audit_exports

`ark.list_audit_exports`

List recent audit export requests visible to the connected user.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `audit:export` |
| ARK permissions | `canViewAuditTimeline`, `canExportAuditLog` |
| Team visibility | Not entity-scoped |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `limit` | integer | No | - | default: 25; min: 1; max: 100 |

#### Example input

```json
{}
```

#### Result

The tool returns the canonical `ark.list_audit_exports` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_list_carrier_ach_files

`ark.list_carrier_ach_files`

List visible ARK carrier ACH/NACHA batches for reconciliation, filtered by status, effective date, file name, or batch number.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:read`, `billing:read` |
| ARK permissions | `canViewLoads`, `canViewBilling` |
| Team visibility | Required and enforced |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `status` | string | No | Optional ACH/NACHA batch status filter. | one of: GENERATED, UPLOADED, PROCESSED, REJECTED |
| `dateFrom` | string | No | Optional effective-date start filter in YYYY-MM-DD format. | - |
| `dateTo` | string | No | Optional effective-date end filter in YYYY-MM-DD format. | - |
| `search` | string | No | Optional file name or batch number search. | min length: 1; max length: 100 |
| `limit` | integer | No | - | default: 25; min: 1; max: 100 |
| `offset` | integer | No | - | default: 0; min: 0 |

#### Example input

```json
{}
```

#### Result

The tool returns the canonical `ark.list_carrier_ach_files` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_list_carrier_files

`ark.list_carrier_files`

List files and compliance documents attached to a visible ARK carrier.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `carriers:read` |
| ARK permissions | `canViewCarriers` |
| Team visibility | Not entity-scoped |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `carrierId` | string | Yes | Visible ARK carrier ID. | format: uuid |
| `type` | string | No | Optional carrier document type filter. | min length: 1; max length: 100 |
| `limit` | integer | No | - | default: 50; min: 1; max: 100 |
| `cursor` | string | No | - | - |

#### Example input

```json
{
  "carrierId": "<carrierId>"
}
```

#### Result

The tool returns the canonical `ark.list_carrier_files` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_list_carrier_invites

`ark.list_carrier_invites`

List ARK carrier onboarding invites with status, DOT, email, expiration, submission, and linked-carrier state.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `carriers:read` |
| ARK permissions | `canInviteCarrier` |
| Team visibility | Not entity-scoped |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `status` | string | No | Optional carrier invite status filter. | one of: all, pending, submitted, approved, rejected, expired, cancelled; default: "all" |
| `query` | string | No | Optional search by invite email, legal name, DOT, or MC number. | min length: 1; max length: 100 |
| `limit` | integer | No | - | default: 25; min: 1; max: 100 |
| `offset` | integer | No | - | default: 0; min: 0 |

#### Example input

```json
{}
```

#### Result

The tool returns the canonical `ark.list_carrier_invites` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_list_carrier_payments

`ark.list_carrier_payments`

List visible ARK carrier payable rows with billing, POD, hold, settlement, and NACHA metadata before AP actions.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:read`, `billing:read` |
| ARK permissions | `canViewLoads`, `canViewBilling` |
| Team visibility | Required and enforced |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `status` | string | No | Optional carrier payment status filter. | one of: DELIVERED, READY, PENDING, PAID |
| `carrierId` | string | No | Optional carrier ID filter. | format: uuid |
| `customerId` | string | No | Optional customer ID filter. | format: uuid |
| `factoringId` | string | No | Optional factoring company ID filter. | format: uuid |
| `paymentMethod` | string | No | Optional payment method filter, such as ACH or Check. | max length: 50 |
| `payHold` | string | No | - | one of: all, yes, no; default: "all" |
| `hasBillingInfo` | string | No | - | one of: all, yes, no; default: "all" |
| `hasPod` | string | No | - | one of: all, yes, no; default: "all" |
| `dueDateFrom` | string | No | - | - |
| `dueDateTo` | string | No | - | - |
| `paidDateFrom` | string | No | - | - |
| `paidDateTo` | string | No | - | - |
| `search` | string | No | Optional search across load number, carrier, customer, factoring company, invoice, settlement, reference, vendor invoice, and document number. | min length: 1; max length: 100 |
| `limit` | integer | No | - | default: 25; min: 1; max: 100 |
| `offset` | integer | No | - | default: 0; min: 0 |

#### Example input

```json
{}
```

#### Result

The tool returns the canonical `ark.list_carrier_payments` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_list_carrier_reviews

`ark.list_carrier_reviews`

List broker-entered ARK carrier reviews with current rating and on-time metrics.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `carriers:read` |
| ARK permissions | `canViewCarriers` |
| Team visibility | Not entity-scoped |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `carrierId` | string | Yes | Visible ARK carrier ID. | format: uuid |
| `limit` | integer | No | - | default: 50; min: 1; max: 100 |
| `cursor` | string | No | - | - |

#### Example input

```json
{
  "carrierId": "<carrierId>"
}
```

#### Result

The tool returns the canonical `ark.list_carrier_reviews` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_list_carrier_settlements

`ark.list_carrier_settlements`

List visible ARK carrier settlement groups with AP recipient, due date, paid date, amount, and NACHA metadata.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:read`, `billing:read` |
| ARK permissions | `canViewLoads`, `canViewBilling` |
| Team visibility | Required and enforced |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `status` | string | No | Optional carrier settlement status filter. | one of: PENDING, PAID |
| `carrierId` | string | No | Optional carrier ID filter. | format: uuid |
| `customerId` | string | No | Optional customer ID filter across settlement payment rows. | format: uuid |
| `factoringId` | string | No | Optional factoring company ID filter. | format: uuid |
| `paymentMethod` | string | No | Optional payment method filter, such as ACH or Check. | max length: 50 |
| `dueDateFrom` | string | No | - | - |
| `dueDateTo` | string | No | - | - |
| `paidDateFrom` | string | No | - | - |
| `paidDateTo` | string | No | - | - |
| `nachaFileId` | string | No | Optional NACHA file ID filter. | format: uuid |
| `nachaBatchNumber` | integer | No | Optional NACHA batch number filter. | min: 1 |
| `search` | string | No | Optional search across settlement number, load number, carrier, customer, factoring company, invoice, reference, vendor invoice, document number, and NACHA batch. | min length: 1; max length: 100 |
| `limit` | integer | No | - | default: 25; min: 1; max: 100 |
| `offset` | integer | No | - | default: 0; min: 0 |

#### Example input

```json
{}
```

#### Result

The tool returns the canonical `ark.list_carrier_settlements` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_list_carrier_verified_dispatch_emails

`ark.list_carrier_verified_dispatch_emails`

Fetch MyCarrierPortal verified dispatcher email addresses for a visible ARK carrier.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `carriers:read` |
| ARK permissions | `canViewCarriers` |
| Team visibility | Not entity-scoped |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | true |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `carrierId` | string | Yes | Visible ARK carrier ID whose MyCarrierPortal verified dispatch emails should be fetched. | format: uuid |

#### Example input

```json
{
  "carrierId": "<carrierId>"
}
```

#### Result

The tool returns the canonical `ark.list_carrier_verified_dispatch_emails` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_list_customer_payments

`ark.list_customer_payments`

List visible ARK customer billing rows with invoice, payment, hold, POD, remit profile, and carrier payment context before AR actions.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:read`, `billing:read` |
| ARK permissions | `canViewLoads`, `canViewBilling` |
| Team visibility | Required and enforced |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `status` | string | No | Optional customer payment status filter. | one of: DELIVERED, READY, INVOICED, FACTORED, PAID |
| `customerId` | string | No | Optional customer ID filter. | format: uuid |
| `payHold` | string | No | - | one of: all, yes, no; default: "all" |
| `hasPod` | string | No | - | one of: all, yes, no; default: "all" |
| `deliveryDateFrom` | string | No | - | - |
| `deliveryDateTo` | string | No | - | - |
| `invoicedDateFrom` | string | No | - | - |
| `invoicedDateTo` | string | No | - | - |
| `paidDateFrom` | string | No | - | - |
| `paidDateTo` | string | No | - | - |
| `search` | string | No | Optional search across load number, customer, invoice, reference, document number, remit profile, pickup number, PO, BOL, origin, and destination. | min length: 1; max length: 100 |
| `limit` | integer | No | - | default: 25; min: 1; max: 100 |
| `offset` | integer | No | - | default: 0; min: 0 |

#### Example input

```json
{}
```

#### Result

The tool returns the canonical `ark.list_customer_payments` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_list_dat_private_network_groups

`ark.list_dat_private_network_groups`

List DAT private-network groups available to the current user or organization credentials for load-board posting decisions.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:read` |
| ARK permissions | `canViewLoads` |
| Team visibility | Not entity-scoped |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | true |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `forceRefresh` | boolean | No | When true, bypass the short-lived DAT private-network group cache. | default: false |

#### Example input

```json
{}
```

#### Result

The tool returns the canonical `ark.list_dat_private_network_groups` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_list_dispatch_notes

`ark.list_dispatch_notes`

List broker-entered notes for a visible ARK load dispatch with creator context and newest-first pagination.

| Requirement | Value |
| --- | --- |
| Preview access | Core preview |
| Scopes | `loads:read` |
| ARK permissions | `canViewLoads` |
| Team visibility | Required and enforced |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `loadId` | string | Yes | - | format: uuid |
| `dispatchId` | string | Yes | - | format: uuid |
| `limit` | integer | No | - | default: 50; min: 1; max: 100 |
| `cursor` | string | No | - | min length: 1; max length: 512 |
| `beforeCreatedAt` | string | No | - | format: date-time |

#### Example input

```json
{
  "loadId": "<loadId>",
  "dispatchId": "<dispatchId>"
}
```

#### Result

The tool returns the canonical `ark.list_dispatch_notes` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_list_edi_partner_connections

`ark.list_edi_partner_connections`

List broker-admin EDI partner setup requests, active assignments, transport/routing identifiers, and shipper-to-customer mappings.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `edi:read` |
| ARK permissions | `canAdminEdi` |
| Team visibility | Not entity-scoped |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `includeRequests` | boolean | No | Include open and reviewed partner connection requests. | default: true |
| `includeConnections` | boolean | No | Include active EDI partner assignments and shipper mappings. | default: true |

#### Example input

```json
{}
```

#### Result

The tool returns the canonical `ark.list_edi_partner_connections` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_list_edi_tenders

`ark.list_edi_tenders`

List visible inbound EDI load tenders with customer mapping, load linkage, acknowledgments, decisions, and latest status context.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `edi:read` |
| ARK permissions | `canViewEdi` |
| Team visibility | Not entity-scoped |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `status` | string | No | Optional tender status filter. | one of: received, accepted, rejected |
| `includeTestEnvironments` | boolean | No | Include tenders from EDI test environment profiles. | default: false |
| `limit` | integer | No | - | default: 100; min: 1; max: 200 |

#### Example input

```json
{}
```

#### Result

The tool returns the canonical `ark.list_edi_tenders` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_list_invoice_remit_profiles

`ark.list_invoice_remit_profiles`

List organization invoice remit profiles with default status, routing mode, remit email, address, and version snapshot context.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `billing:read` |
| ARK permissions | `canViewBilling` |
| Team visibility | Not entity-scoped |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `includeInactive` | boolean | No | Include deactivated remit profiles for audit or historical review. | default: false |

#### Example input

```json
{}
```

#### Result

The tool returns the canonical `ark.list_invoice_remit_profiles` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_list_load_bids

`ark.list_load_bids`

List carrier bids for a visible load with carrier, amount, status, notes, expiration, and creator context.

| Requirement | Value |
| --- | --- |
| Preview access | Core preview |
| Scopes | `loads:read` |
| ARK permissions | `canViewLoads` |
| Team visibility | Required and enforced |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `loadId` | string | Yes | - | format: uuid |
| `includeExpired` | boolean | No | - | default: false |
| `limit` | integer | No | - | default: 50; min: 1; max: 100 |
| `offset` | integer | No | - | default: 0; min: 0; max: 10000 |

#### Example input

```json
{
  "loadId": "<loadId>"
}
```

#### Result

The tool returns the canonical `ark.list_load_bids` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_list_load_board_postings

`ark.list_load_board_postings`

List DAT, Truckstop, and Sylectus posting readiness and posting summaries for visible load or spot-load IDs.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:read` |
| ARK permissions | `canViewLoads` |
| Team visibility | Required and enforced |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | true |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `sourceIds` | array<string> | Yes | Load IDs, or spot-load IDs when sourceType is spot_load. | min items: 1; max items: 100 |
| `sourceIds[]` | string | Yes | - | format: uuid |
| `sourceType` | string | No | - | one of: load, spot_load; default: "load" |

#### Example input

```json
{
  "sourceIds": [
    "<sourceIds>"
  ]
}
```

#### Result

The tool returns the canonical `ark.list_load_board_postings` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_list_load_board_user_mappings

`ark.list_load_board_user_mappings`

List active organization users and their DAT or Sylectus seat mappings for load-board posting setup.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `admin:read` |
| ARK permissions | None |
| Team visibility | Not entity-scoped |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `provider` | string | Yes | Load-board provider whose ARK user seat mappings should be listed. | one of: dat, sylectus |

#### Example input

```json
{
  "provider": "dat"
}
```

#### Result

The tool returns the canonical `ark.list_load_board_user_mappings` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_list_load_files

`ark.list_load_files`

List files and documents attached to a visible ARK load.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:read` |
| ARK permissions | `canViewLoads` |
| Team visibility | Required and enforced |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `loadId` | string | Yes | Visible ARK load ID. | format: uuid |
| `type` | string | No | Optional document type filter. | min length: 1; max length: 100 |
| `limit` | integer | No | - | default: 50; min: 1; max: 100 |
| `cursor` | string | No | - | - |

#### Example input

```json
{
  "loadId": "<loadId>"
}
```

#### Result

The tool returns the canonical `ark.list_load_files` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_list_load_stops

`ark.list_load_stops`

List visible pickup, delivery, and intermediate stops for an ARK load with scheduled and actual timing.

| Requirement | Value |
| --- | --- |
| Preview access | Core preview |
| Scopes | `loads:read` |
| ARK permissions | `canViewLoads` |
| Team visibility | Required and enforced |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `loadId` | string | Yes | - | format: uuid |
| `limit` | integer | No | - | default: 100; min: 1; max: 100 |

#### Example input

```json
{
  "loadId": "<loadId>"
}
```

#### Result

The tool returns the canonical `ark.list_load_stops` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_list_notifications

`ark.list_notifications`

List notifications for the connected user, optionally grouped by spot quote/load context.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `notifications:read` |
| ARK permissions | None |
| Team visibility | Not entity-scoped |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `includeRead` | boolean | No | Include notifications already marked as read. | default: false |
| `groupByLoad` | boolean | No | Also return notifications grouped by spot quote/load context. | default: false |
| `limit` | integer | No | Maximum number of notifications to return. | default: 50; min: 1; max: 100 |

#### Example input

```json
{}
```

#### Result

The tool returns the canonical `ark.list_notifications` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_list_pay_holds

`ark.list_pay_holds`

List visible active or resolved ARK pay holds and claims with load, customer, value, note, and creator context.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:read`, `billing:read` |
| ARK permissions | `canViewLoads`, `one of: canViewBilling`, `one of: canViewPayHoldsReport`, `one of: canEditLoad`, `one of: canMakeAdjustments` |
| Team visibility | Required and enforced |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `status` | string | No | Optional pay hold status filter. | one of: active, resolved, all; default: "active" |
| `claimType` | string | No | Optional claim vs hold filter. | one of: claim, hold, all; default: "all" |
| `valueFrom` | number | No | - | min: 0 |
| `valueTo` | number | No | - | min: 0 |
| `loadNumberFrom` | number | No | - | min: 0 |
| `loadNumberTo` | number | No | - | min: 0 |
| `createdBy` | string | No | Optional creator user ID filter. | format: uuid |
| `currency` | string | No | Optional carrier currency filter. | one of: USD, CAD, MXN |
| `search` | string | No | Optional search across load number, customer, notes, pickup number, PO, BOL, creator name, and creator email. | min length: 1; max length: 100 |
| `limit` | integer | No | - | default: 25; min: 1; max: 100 |
| `offset` | integer | No | - | default: 0; min: 0 |

#### Example input

```json
{}
```

#### Result

The tool returns the canonical `ark.list_pay_holds` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_list_payment_destinations

`ark.list_payment_destinations`

List ARK carrier and factoring payment destinations for billing review, masked by default unless sensitive fields are requested.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `billing:read` |
| ARK permissions | `canViewBilling` |
| Team visibility | Not entity-scoped |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `carrierIds` | array<string> | No | Carrier IDs whose payment destinations should be returned. | default: []; max items: 100 |
| `carrierIds[]` | string | No | - | format: uuid |
| `factoringCompanyIds` | array<string> | No | Factoring company IDs whose payment destinations should be returned. | default: []; max items: 100 |
| `factoringCompanyIds[]` | string | No | - | format: uuid |

#### Example input

```json
{}
```

#### Result

The tool returns the canonical `ark.list_payment_destinations` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_list_payment_terms

`ark.list_payment_terms`

List organization payment terms used by customer, carrier, and factoring payment routing.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `billing:read` |
| ARK permissions | `canViewBilling` |
| Team visibility | Not entity-scoped |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `includeDeleted` | boolean | No | Include archived payment terms. | default: false |

#### Example input

```json
{}
```

#### Result

The tool returns the canonical `ark.list_payment_terms` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_list_pod_review_queue

`ark.list_pod_review_queue`

List visible loads with proof-of-delivery file and review status context for billing compliance work.

| Requirement | Value |
| --- | --- |
| Preview access | Core preview |
| Scopes | `loads:read`, `billing:read` |
| ARK permissions | `canViewLoads`, `canViewBilling` |
| Team visibility | Required and enforced |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `status` | string | No | - | one of: all, missing, pending_review, approved, rejected, revision_required; default: "all" |
| `query` | string | No | - | min length: 1; max length: 100 |
| `limit` | integer | No | - | default: 50; min: 1; max: 100 |
| `offset` | integer | No | - | default: 0; min: 0; max: 9007199254740991 |

#### Example input

```json
{}
```

#### Result

The tool returns the canonical `ark.list_pod_review_queue` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_list_quickbooks_carrier_mappings

`ark.list_quickbooks_carrier_mappings`

List ARK carriers and their QuickBooks vendor mapping state for setup, unmapped-entity cleanup, and sync troubleshooting.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `billing:read` |
| ARK permissions | `canViewBilling` |
| Team visibility | Not entity-scoped |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `mappingStatus` | string | No | Filter by whether the ARK entity currently has a QuickBooks mapping. | one of: all, mapped, unmapped; default: "all" |
| `search` | string | No | Optional entity name search. Carrier mapping search also checks MC and DOT numbers. | min length: 1; max length: 100 |
| `limit` | integer | No | - | default: 25; min: 1; max: 100 |
| `offset` | integer | No | - | default: 0; min: 0 |

#### Example input

```json
{}
```

#### Result

The tool returns the canonical `ark.list_quickbooks_carrier_mappings` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_list_quickbooks_customer_mappings

`ark.list_quickbooks_customer_mappings`

List ARK customers and their QuickBooks customer mapping state for setup, unmapped-entity cleanup, and sync troubleshooting.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `billing:read` |
| ARK permissions | `canViewBilling` |
| Team visibility | Not entity-scoped |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `mappingStatus` | string | No | Filter by whether the ARK entity currently has a QuickBooks mapping. | one of: all, mapped, unmapped; default: "all" |
| `search` | string | No | Optional entity name search. Carrier mapping search also checks MC and DOT numbers. | min length: 1; max length: 100 |
| `limit` | integer | No | - | default: 25; min: 1; max: 100 |
| `offset` | integer | No | - | default: 0; min: 0 |

#### Example input

```json
{}
```

#### Result

The tool returns the canonical `ark.list_quickbooks_customer_mappings` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_list_quickbooks_reference_data

`ark.list_quickbooks_reference_data`

List QuickBooks accounts, customers, custom fields, payment accounts, items, terms, tax codes, or vendors for ARK accounting setup, mapping, and sync troubleshooting.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `billing:read` |
| ARK permissions | `canViewBilling` |
| Team visibility | Not entity-scoped |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | true |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `resource` | string | Yes | QuickBooks reference data to fetch. Use customers/vendors for manual entity mapping and payment_accounts for bank and other-current-asset accounts used in payment routing. | one of: accounts, customers, custom_fields, payment_accounts, items, terms, tax_codes, vendors |
| `search` | string | No | Optional QuickBooks display-name, name, SKU, or account-number search. | min length: 1; max length: 100 |
| `maxResults` | integer | No | - | default: 100; min: 1; max: 1000 |
| `accountType` | string | No | Optional QuickBooks AccountType filter for resource=accounts. | max length: 100 |
| `classification` | string | No | Optional QuickBooks Classification filter for resource=accounts. | max length: 100 |
| `category` | string | No | Use vendor_expense to list Expense and Cost of Goods Sold accounts. | one of: vendor_expense |
| `itemType` | string | No | Optional QuickBooks item Type filter for resource=items. | one of: Service, Inventory, NonInventory |
| `includeConfig` | boolean | No | When resource=payment_accounts, include the configured default payment account ID. | default: false |
| `accountUsage` | string | No | Which default payment account config to return when includeConfig is true. | one of: carrier, customer; default: "carrier" |

#### Example input

```json
{
  "resource": "accounts"
}
```

#### Result

The tool returns the canonical `ark.list_quickbooks_reference_data` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_list_quickbooks_sync_jobs

`ark.list_quickbooks_sync_jobs`

List visible ARK QuickBooks sync jobs with operation, status, retryability, active-sync count, and per-item error context for accounting workflow monitoring.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:read`, `billing:read` |
| ARK permissions | `canViewLoads`, `canViewBilling` |
| Team visibility | Required and enforced |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `status` | string | No | Optional exact QuickBooks sync job status filter. | one of: queued, enqueue_failed, processing, retrying, succeeded, partial_failed, failed, stuck, canceled |
| `statusGroup` | string | No | Status group to list when status is omitted. Actionable includes failed, stuck, enqueue-failed, and active jobs. | one of: actionable, active, terminal, all; default: "actionable" |
| `operation` | string | No | Optional QuickBooks sync operation filter. | one of: customer_invoice_create, customer_invoice_mark_paid, customer_payment_create, carrier_bill_create, carrier_bill_mark_paid, carrier_settlement_create, customer_invoice_update, carrier_bill_update |
| `includeItems` | boolean | No | Include per-item sync status and error details. | default: true |
| `search` | string | No | Optional search across job IDs, operation, status, error text, item labels, and QuickBooks entity IDs. | min length: 1; max length: 100 |
| `limit` | integer | No | - | default: 25; min: 1; max: 100 |
| `offset` | integer | No | - | default: 0; min: 0 |

#### Example input

```json
{}
```

#### Result

The tool returns the canonical `ark.list_quickbooks_sync_jobs` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_list_spot_quotes

`ark.list_spot_quotes`

List visible spot quotes with bid summaries, stops, customer context, and watcher state for the connected actor.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:read` |
| ARK permissions | `canViewLoads` |
| Team visibility | Required and enforced |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `teamIds` | array<string> | No | Visible team IDs to filter by. Omit to use all visible teams. | min items: 1; max items: 50 |
| `teamIds[]` | string | No | - | format: uuid |
| `statuses` | array<string> | No | Spot quote statuses to include. | min items: 1; max items: 7 |
| `statuses[]` | string | No | - | one of: new, quoting, quoted_pending, won, lost, cancelled, expired |
| `includeRetained` | boolean | No | Include internally retained terminal rows. | default: false |
| `retainedOnly` | boolean | No | Only return internally retained terminal rows. | default: false |
| `limit` | integer | No | - | default: 50; min: 1; max: 200 |

#### Example input

```json
{}
```

#### Result

The tool returns the canonical `ark.list_spot_quotes` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_list_user_backup_users

`ark.list_user_backup_users`

List backup users copied on outgoing emails where the selected organization broker is the broker of record.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `admin:read` |
| ARK permissions | None |
| Team visibility | Not entity-scoped |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `userId` | string | Yes | Broker user ID whose backup-user assignments should be listed. | format: uuid |

#### Example input

```json
{
  "userId": "<userId>"
}
```

#### Result

The tool returns the canonical `ark.list_user_backup_users` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_list_visible_teams

`ark.list_visible_teams`

List team IDs and names visible to the connected ARK user.

| Requirement | Value |
| --- | --- |
| Preview access | Core preview |
| Scopes | `context:read` |
| ARK permissions | None |
| Team visibility | Required and enforced |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `query` | string | No | - | min length: 1; max length: 100 |

#### Example input

```json
{}
```

#### Result

The tool returns the canonical `ark.list_visible_teams` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_lock_load

`ark.lock_load`

Lock a visible available ARK load for dispatch or manual editing.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:write` |
| ARK permissions | `canAssignLoads` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `loadId` | string | Yes | Visible available ARK load ID. | format: uuid |
| `trigger` | string | No | - | one of: manual, auto_dispatch_open; default: "manual" |

#### Example input

```json
{
  "loadId": "<loadId>"
}
```

#### Result

The tool returns the canonical `ark.lock_load` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_lookup_spot_quote_zip_coordinates

`ark.lookup_spot_quote_zip_coordinates`

Resolve ZIP codes to centroid coordinates used by spot quote lane, distance, and carrier-search workflows.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:read` |
| ARK permissions | `canViewLoads` |
| Team visibility | Not entity-scoped |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `zipCodes` | array<string> | Yes | ZIP codes to resolve to spot quote centroid coordinates. | min items: 1; max items: 100 |
| `zipCodes[]` | string | Yes | - | - |

#### Example input

```json
{
  "zipCodes": [
    "<zipCodes>"
  ]
}
```

#### Result

The tool returns the canonical `ark.lookup_spot_quote_zip_coordinates` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_mark_all_notifications_read

`ark.mark_all_notifications_read`

Mark all unread notifications for the connected user as read.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `notifications:write` |
| ARK permissions | None |
| Team visibility | Not entity-scoped |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

_None._

#### Example input

```json
{}
```

#### Result

The tool returns the canonical `ark.mark_all_notifications_read` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_mark_carrier_payment_ready

`ark.mark_carrier_payment_ready`

Validate a delivered carrier payment, optionally save a vendor invoice number, assign dispatch pay rows, and move the payment to READY for packet creation.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:read`, `billing:write` |
| ARK permissions | `canViewLoads`, `canViewBilling`, `canMakeAdjustments` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `loadId` | string | Yes | Visible ARK load ID whose carrier payment should be marked READY. | format: uuid |
| `dispatchId` | string | Yes | Visible dispatch ID for the carrier payment. | format: uuid |
| `carrierPaymentId` | string | No | Optional carrier payment ID. Omit to use the carrier payment for the load dispatch. | format: uuid |
| `vendorInvoiceNumber` | string \| null | No | Optional vendor invoice number to save before moving the payment to READY. | max length: 100 |

#### Example input

```json
{
  "loadId": "<loadId>",
  "dispatchId": "<dispatchId>"
}
```

#### Result

The tool returns the canonical `ark.mark_carrier_payment_ready` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_mark_carrier_payments_ready

`ark.mark_carrier_payments_ready`

Validate selected delivered carrier payments, optionally save vendor invoice numbers, assign dispatch pay rows, move them to READY, and optionally queue QuickBooks bill creation.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:read`, `billing:write` |
| ARK permissions | `canViewLoads`, `canViewBilling`, `canMakeAdjustments` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | true |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `payments` | array<object> | Yes | Carrier payment IDs to move to READY. Each payment must be visible, DELIVERED, not on hold, have billing info, and have a POD unless exempt. | min items: 1; max items: 100 |
| `payments[]` | object | Yes | - | - |
| `payments[].carrierPaymentId` | string | Yes | Visible DELIVERED carrier payment ID. | format: uuid |
| `payments[].vendorInvoiceNumber` | string \| null | No | Optional vendor invoice number to save before moving this payment to READY. | max length: 100 |
| `queueQuickBooksSync` | boolean | No | Also queue QuickBooks carrier bill creation for the marked-ready payments. | default: false |

#### Example input

```json
{
  "payments": [
    {
      "carrierPaymentId": "<carrierPaymentId>"
    }
  ]
}
```

#### Result

The tool returns the canonical `ark.mark_carrier_payments_ready` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_mark_dispatch_tonu_delivered

`ark.mark_dispatch_tonu_delivered`

Mark an active ARK dispatch TONU and delivered, set carrier/customer TONU fees, run deliver-and-bill, and stop configured tracking sessions.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:dispatch` |
| ARK permissions | `canAssignLoads` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_send |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | true |
| Open-world side effect | true |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `loadId` | string | Yes | Visible ARK load ID. | format: uuid |
| `dispatchId` | string | Yes | Active dispatch ID for the visible load. | format: uuid |
| `carrierTonuFee` | number | Yes | Carrier TONU fee to replace dispatch pay with. | min: 0 |
| `customerTonuFee` | number \| null | No | Optional customer TONU fee to add or replace depending on action. | min: 0 |

#### Example input

```json
{
  "loadId": "<loadId>",
  "dispatchId": "<dispatchId>",
  "carrierTonuFee": 0
}
```

#### Result

The tool returns the canonical `ark.mark_dispatch_tonu_delivered` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_mark_dispatch_tonu_recovered

`ark.mark_dispatch_tonu_recovered`

Mark an active ARK dispatch TONU and recovered, set carrier/customer TONU fees, return the load to Available, and stop configured tracking sessions.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:dispatch` |
| ARK permissions | `canAssignLoads` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_send |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | true |
| Open-world side effect | true |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `loadId` | string | Yes | Visible ARK load ID. | format: uuid |
| `dispatchId` | string | Yes | Active dispatch ID for the visible load. | format: uuid |
| `carrierTonuFee` | number | Yes | Carrier TONU fee to replace dispatch pay with. | min: 0 |
| `customerTonuFee` | number \| null | No | Optional customer TONU fee to add or replace depending on action. | min: 0 |

#### Example input

```json
{
  "loadId": "<loadId>",
  "dispatchId": "<dispatchId>",
  "carrierTonuFee": 0
}
```

#### Result

The tool returns the canonical `ark.mark_dispatch_tonu_recovered` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_mark_load_delivered

`ark.mark_load_delivered`

Mark a visible dispatched ARK load delivered, create delivery billing records, close the active dispatch, stop active tracking, and run configured delivery side effects.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:write` |
| ARK permissions | `one of: canEditLoad`, `one of: canAssignLoads` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_send |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | true |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `loadId` | string | Yes | Visible dispatched ARK load ID to mark delivered using the deliver-and-bill workflow. | format: uuid |

#### Example input

```json
{
  "loadId": "<loadId>"
}
```

#### Result

The tool returns the canonical `ark.mark_load_delivered` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_mark_notification_read

`ark.mark_notification_read`

Mark one notification for the connected user as read.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `notifications:write` |
| ARK permissions | None |
| Team visibility | Not entity-scoped |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `notificationId` | string | Yes | Notification ID to mark read. | format: uuid |

#### Example input

```json
{
  "notificationId": "<notificationId>"
}
```

#### Result

The tool returns the canonical `ark.mark_notification_read` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_mark_spot_quote_lost

`ark.mark_spot_quote_lost`

Mark a visible open spot quote lost and reject the pending customer quote through the same transactional workflow as the website.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:write` |
| ARK permissions | `canEditLoad` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `spotQuoteId` | string | Yes | Visible spot quote ID. | format: uuid |
| `reason` | string | No | Optional reason to store with the lost spot quote. | max length: 500 |
| `lostToCompetitor` | boolean | No | - | default: false |

#### Example input

```json
{
  "spotQuoteId": "<spotQuoteId>"
}
```

#### Result

The tool returns the canonical `ark.mark_spot_quote_lost` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_move_carrier_payment_back_to_delivered

`ark.move_carrier_payment_back_to_delivered`

Move a READY ARK carrier payment back to DELIVERED, clear dispatch pay assignment, and remove local QuickBooks carrier bill mappings.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:read`, `billing:write` |
| ARK permissions | `canViewLoads`, `canViewBilling`, `canMakeAdjustments` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `loadId` | string | Yes | Visible ARK load ID whose carrier payment should move back to DELIVERED. | format: uuid |
| `dispatchId` | string | Yes | Visible dispatch ID for the carrier payment. | format: uuid |
| `carrierPaymentId` | string | No | Optional carrier payment ID. Omit to use the carrier payment for the load dispatch. | format: uuid |

#### Example input

```json
{
  "loadId": "<loadId>",
  "dispatchId": "<dispatchId>"
}
```

#### Result

The tool returns the canonical `ark.move_carrier_payment_back_to_delivered` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_move_carrier_payments_back_to_delivered

`ark.move_carrier_payments_back_to_delivered`

Move selected READY ARK carrier payments back to DELIVERED, release dispatch pay assignments, and remove local QuickBooks carrier bill mappings.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:read`, `billing:write` |
| ARK permissions | `canViewLoads`, `canViewBilling`, `canMakeAdjustments` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `payments` | array<object> | Yes | READY carrier payment IDs to move back to DELIVERED. | min items: 1; max items: 100 |
| `payments[]` | object | Yes | - | - |
| `payments[].carrierPaymentId` | string | Yes | Visible READY carrier payment ID. | format: uuid |

#### Example input

```json
{
  "payments": [
    {
      "carrierPaymentId": "<carrierPaymentId>"
    }
  ]
}
```

#### Result

The tool returns the canonical `ark.move_carrier_payments_back_to_delivered` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_move_customer_payment_back_to_delivered

`ark.move_customer_payment_back_to_delivered`

Move a ready ARK customer payment back to DELIVERED, clearing packet/payment amount and releasing linked customer pay rows.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:read`, `billing:write` |
| ARK permissions | `canViewLoads`, `canViewBilling`, `canMakeAdjustments` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `loadId` | string | Yes | Visible ARK load ID whose customer payment should move back to DELIVERED. | format: uuid |
| `customerPaymentId` | string | Yes | Customer payment ID to move back from READY to DELIVERED. | format: uuid |

#### Example input

```json
{
  "loadId": "<loadId>",
  "customerPaymentId": "<customerPaymentId>"
}
```

#### Result

The tool returns the canonical `ark.move_customer_payment_back_to_delivered` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_move_customer_payments_back_to_delivered

`ark.move_customer_payments_back_to_delivered`

Move selected READY ARK customer payments back to DELIVERED in one AR workflow, clearing packet/payment amounts and releasing linked customer pay rows.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:read`, `billing:write` |
| ARK permissions | `canViewLoads`, `canViewBilling`, `canMakeAdjustments` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | true |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `customerPaymentIds` | array<string> | Yes | Visible READY customer payment IDs to move back to DELIVERED. | min items: 1; max items: 100 |
| `customerPaymentIds[]` | string | Yes | - | format: uuid |

#### Example input

```json
{
  "customerPaymentIds": [
    "<customerPaymentIds>"
  ]
}
```

#### Result

The tool returns the canonical `ark.move_customer_payments_back_to_delivered` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_override_load_status

`ark.override_load_status`

Change a visible load from Pending to Dispatched using the same status override rule as the ARK UI.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:write` |
| ARK permissions | `canOverrideLoadStatus` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `loadId` | string | Yes | Visible ARK load ID. | format: uuid |
| `fromStatus` | string | Yes | Current status required for the override. | one of: Pending |
| `toStatus` | string | Yes | Target status supported by the status override action. | one of: Dispatched |

#### Example input

```json
{
  "loadId": "<loadId>",
  "fromStatus": "Pending",
  "toStatus": "Dispatched"
}
```

#### Result

The tool returns the canonical `ark.override_load_status` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_perform_load_board_action

`ark.perform_load_board_action`

Post, refresh, update, or remove DAT, Truckstop, or Sylectus load-board postings using the same ARK workflow as the UI.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:write` |
| ARK permissions | `canEditLoad` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_send |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | true |
| Open-world side effect | true |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `provider` | string | Yes | Load-board provider to act on. | one of: dat, truckstop, sylectus |
| `action` | string | Yes | Post, refresh, update, or remove the provider posting. | one of: post, refresh, update, remove |
| `sourceIds` | array<string> | Yes | Load IDs, or spot-load IDs when sourceType is spot_load. | min items: 1; max items: 2500 |
| `sourceIds[]` | string | Yes | - | format: uuid |
| `sourceType` | string | No | - | one of: load, spot_load; default: "load" |
| `draftOverridesByLoadId` | object | No | Optional posting draft overrides keyed by load or spot-load ID. | - |

#### Example input

```json
{
  "provider": "dat",
  "action": "post",
  "sourceIds": [
    "<sourceIds>"
  ]
}
```

#### Result

The tool returns the canonical `ark.perform_load_board_action` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_preflight_carrier_remittance_email

`ark.preflight_carrier_remittance_email`

Check whether selected ARK carrier payments or settlements are ready to send grouped carrier or factoring remittance emails.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:read`, `billing:read` |
| ARK permissions | `canViewLoads`, `canViewBilling` |
| Team visibility | Required and enforced |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `remittanceType` | string | Yes | Use payment with carrierPaymentIds for selected payments, or settlement with settlementNumbers for existing carrier settlements. | one of: payment, settlement |
| `carrierPaymentIds` | array<string> | No | Visible carrier payment IDs when remittanceType is payment. | min items: 1; max items: 100 |
| `carrierPaymentIds[]` | string | No | - | format: uuid |
| `settlementNumbers` | array<integer> | No | Visible carrier settlement numbers when remittanceType is settlement. | min items: 1; max items: 50 |
| `settlementNumbers[]` | integer | No | - | min: 1 |

#### Example input

```json
{
  "remittanceType": "payment"
}
```

#### Result

The tool returns the canonical `ark.preflight_carrier_remittance_email` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_prepare_carrier_file_upload

`ark.prepare_carrier_file_upload`

Create a signed upload URL and pending upload record for attaching a file to a visible ARK carrier.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `carriers:write` |
| ARK permissions | `canEditCarrier` |
| Team visibility | Not entity-scoped |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | true |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `carrierId` | string | Yes | Visible ARK carrier ID. | format: uuid |
| `fileName` | string | Yes | - | min length: 1; max length: 255 |
| `fileType` | string | Yes | Carrier document type such as W9, Insurance, Authority, Contract, or Other. | min length: 1; max length: 100 |
| `mimeType` | string | Yes | - | min length: 1; max length: 255 |

#### Example input

```json
{
  "carrierId": "<carrierId>",
  "fileName": "<fileName>",
  "fileType": "<fileType>",
  "mimeType": "<mimeType>"
}
```

#### Result

The tool returns the canonical `ark.prepare_carrier_file_upload` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_prepare_load_file_upload

`ark.prepare_load_file_upload`

Create a signed upload URL and pending upload record for attaching a file to a visible ARK load.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:write` |
| ARK permissions | `canEditLoad` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | true |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `loadId` | string | Yes | Visible ARK load ID. | format: uuid |
| `fileName` | string | Yes | - | min length: 1; max length: 255 |
| `fileType` | string | Yes | Document type such as POD, BOL, Load Tender, or Other. | min length: 1; max length: 100 |
| `mimeType` | string | Yes | - | min length: 1; max length: 255 |

#### Example input

```json
{
  "loadId": "<loadId>",
  "fileName": "<fileName>",
  "fileType": "<fileType>",
  "mimeType": "<mimeType>"
}
```

#### Result

The tool returns the canonical `ark.prepare_load_file_upload` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_prepare_organization_logo_upload

`ark.prepare_organization_logo_upload`

Prepare a signed upload URL for replacing the organization online logo or paper/PDF logo. Upload the PNG to the returned signedUrl, then call finalize_organization_logo_upload.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `admin:write` |
| ARK permissions | None |
| Team visibility | Not entity-scoped |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | true |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `logoType` | string | Yes | Use standard for the online app logo or paper for PDF/document logos. | one of: standard, paper |
| `fileName` | string | No | Original PNG filename for traceability. | min length: 1; max length: 200 |
| `mimeType` | string | No | Organization logos must be PNG files. | default: "image/png" |

#### Example input

```json
{
  "logoType": "standard"
}
```

#### Result

The tool returns the canonical `ark.prepare_organization_logo_upload` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_preview_carrier_invite

`ark.preview_carrier_invite`

Check FMCSA carrier details, existing ARK carrier conflicts, rejected history, and pending invites before sending an onboarding invite.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `carriers:read` |
| ARK permissions | `canInviteCarrier` |
| Team visibility | Not entity-scoped |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | true |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `dotNumber` | string | Yes | US DOT number to check against FMCSA and existing ARK carrier invites. | min length: 1; max length: 20 |

#### Example input

```json
{
  "dotNumber": "<dotNumber>"
}
```

#### Result

The tool returns the canonical `ark.preview_carrier_invite` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_preview_carrier_provider_onboarding

`ark.preview_carrier_provider_onboarding`

Preview a carrier in Highway, RMIS, or MyCarrierPortal before sending an external onboarding invitation, including provider risk and contact context.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `carriers:read` |
| ARK permissions | `canInviteCarrierExternal` |
| Team visibility | Not entity-scoped |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | true |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `provider` | string | Yes | External carrier onboarding provider to preview. | one of: highway, rmis, mycarrierportal |
| `dotNumber` | string | No | Optional DOT number lookup. | min length: 1; max length: 32 |
| `mcNumber` | string | No | Optional MC/MX docket number lookup. | min length: 1; max length: 32 |
| `highwayCarrierId` | string | No | Highway carrier ID when using the Highway provider. | min length: 1; max length: 64 |
| `highwayExternalId` | string | No | Highway external ID when using the Highway provider. | min length: 1; max length: 100 |
| `email` | string | No | Optional contact email to include in provider advisory checks. | format: email; max length: 254 |
| `includeCarrierData` | boolean | No | For MyCarrierPortal, include detailed carrier enrichment data. | default: false |

#### Example input

```json
{
  "provider": "highway"
}
```

#### Result

The tool returns the canonical `ark.preview_carrier_provider_onboarding` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_queue_quickbooks_sync_job

`ark.queue_quickbooks_sync_job`

Queue an ARK QuickBooks sync workflow for customer invoices, customer payments, carrier bills, carrier payments, carrier settlements, or update syncs after validating visibility and skipping unsupported zero-dollar payment receipts.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:read`, `billing:write` |
| ARK permissions | `canViewLoads`, `canViewBilling`, `canMakeAdjustments` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | true |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `operation` | string | Yes | QuickBooks sync workflow to queue. Required fields depend on the selected operation. | one of: customer_invoice_create, customer_invoice_mark_paid, customer_payment_create, carrier_bill_create, carrier_bill_mark_paid, carrier_settlement_create, customer_invoice_update, carrier_bill_update |
| `paymentIds` | array<string> | No | Visible ARK customer or carrier payment IDs for the selected sync operation. | min items: 1; max items: 50 |
| `paymentIds[]` | string | No | - | format: uuid |
| `depositToAccountId` | string | No | QuickBooks deposit account ID for customer_invoice_mark_paid. | min length: 1; max length: 100 |
| `settlementNumbers` | array<integer> | No | Carrier settlement numbers for carrier_settlement_create. | min items: 1; max items: 10 |
| `settlementNumbers[]` | integer | No | - | min: 1 |
| `referenceNumber` | string | No | Optional carrier settlement payment reference number. | min length: 1; max length: 100 |
| `paidDate` | string | No | Optional carrier settlement paid date as YYYY-MM-DD. | - |
| `loadId` | string | No | Visible ARK load ID for customer_invoice_update or carrier_bill_update. | format: uuid |
| `paymentId` | string | No | Optional customer payment ID for customer_invoice_update. When omitted, ARK uses the latest customer payment for the load. | format: uuid |
| `dispatchId` | string | No | Visible ARK dispatch ID for carrier_bill_update. | format: uuid |

#### Example input

```json
{
  "operation": "customer_invoice_create"
}
```

#### Result

The tool returns the canonical `ark.queue_quickbooks_sync_job` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_reconcile_load_board_posting_preview

`ark.reconcile_load_board_posting_preview`

Persist or clear DAT/Sylectus draft-preview failure records after load or spot quote edits.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:write` |
| ARK permissions | `canEditLoad` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `sourceId` | string | Yes | Load ID, or spot-load ID when sourceType is spot_load. | format: uuid |
| `provider` | string | No | Load-board provider whose draft-preview failure should be reconciled. | one of: dat, sylectus; default: "dat" |
| `sourceType` | string | No | - | one of: load, spot_load; default: "load" |

#### Example input

```json
{
  "sourceId": "<sourceId>"
}
```

#### Result

The tool returns the canonical `ark.reconcile_load_board_posting_preview` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_record_carrier_payment

`ark.record_carrier_payment`

Record a READY or INVOICED ARK carrier payment as PAID for a visible load dispatch, assigning or reusing its settlement number and saving paid date/reference details.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:read`, `billing:write` |
| ARK permissions | `canViewLoads`, `canViewBilling`, `canMakeAdjustments` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `loadId` | string | Yes | Visible ARK load ID whose carrier payment should be recorded. | format: uuid |
| `dispatchId` | string | Yes | Visible dispatch ID for the carrier payment. | format: uuid |
| `carrierPaymentId` | string | No | Optional carrier payment ID. Omit to use the carrier payment for the load dispatch. | format: uuid |
| `referenceNumber` | string \| null | No | Optional payment reference number. | max length: 100 |
| `paidDate` | string | Yes | Payment date in YYYY-MM-DD format. | - |

#### Example input

```json
{
  "loadId": "<loadId>",
  "dispatchId": "<dispatchId>",
  "paidDate": "<paidDate>"
}
```

#### Result

The tool returns the canonical `ark.record_carrier_payment` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_record_carrier_payments

`ark.record_carrier_payments`

Record selected READY or INVOICED ARK carrier payments as PAID in one AP workflow, with optional QuickBooks bill payment sync.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:read`, `billing:write` |
| ARK permissions | `canViewLoads`, `canViewBilling`, `canMakeAdjustments` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | true |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `carrierPaymentIds` | array<string> | Yes | Visible READY or INVOICED carrier payment IDs to mark PAID. | min items: 1; max items: 100 |
| `carrierPaymentIds[]` | string | Yes | - | format: uuid |
| `referenceNumber` | string \| null | No | Optional payment reference number applied to every selected payment. | max length: 100 |
| `paidDate` | string | Yes | Payment date in YYYY-MM-DD format. | - |
| `queueQuickBooksSync` | boolean | No | Also queue QuickBooks carrier bill payment sync for positive-value bills. | default: false |

#### Example input

```json
{
  "carrierPaymentIds": [
    "<carrierPaymentIds>"
  ],
  "paidDate": "<paidDate>"
}
```

#### Result

The tool returns the canonical `ark.record_carrier_payments` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_record_carrier_settlement_payment

`ark.record_carrier_settlement_payment`

Record one or more PENDING ARK carrier settlements as PAID across the visible loads in those settlements.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:read`, `billing:write` |
| ARK permissions | `canViewLoads`, `canViewBilling`, `canMakeAdjustments` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `settlementNumbers` | array<integer> | Yes | Pending carrier settlement numbers to record as paid. | min items: 1; max items: 50 |
| `settlementNumbers[]` | integer | Yes | - | min: 1 |
| `referenceNumber` | string \| null | No | Optional payment reference number. | max length: 100 |
| `paidDate` | string | Yes | Payment date in YYYY-MM-DD format. | - |

#### Example input

```json
{
  "settlementNumbers": [
    1
  ],
  "paidDate": "<paidDate>"
}
```

#### Result

The tool returns the canonical `ark.record_carrier_settlement_payment` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_record_customer_payment

`ark.record_customer_payment`

Record an invoiced or factored ARK customer payment as PAID for a visible load, with paid date and optional reference number.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:read`, `billing:write` |
| ARK permissions | `canViewLoads`, `canViewBilling`, `canMakeAdjustments` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `loadId` | string | Yes | Visible ARK load ID whose customer payment should be recorded. | format: uuid |
| `customerPaymentId` | string | No | Optional customer payment ID. Omit to use the latest payment for the load. | format: uuid |
| `referenceNumber` | string \| null | No | Optional payment reference number. | max length: 100 |
| `paidDate` | string | Yes | Payment date in YYYY-MM-DD format. | - |

#### Example input

```json
{
  "loadId": "<loadId>",
  "paidDate": "<paidDate>"
}
```

#### Result

The tool returns the canonical `ark.record_customer_payment` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_record_customer_payments

`ark.record_customer_payments`

Record selected invoiced or factored ARK customer payments as PAID in one AR workflow, with optional QuickBooks customer payment sync.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:read`, `billing:write` |
| ARK permissions | `canViewLoads`, `canViewBilling`, `canMakeAdjustments` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | true |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `customerPaymentIds` | array<string> | Yes | Visible INVOICED or FACTORED customer payment IDs to mark PAID. | min items: 1; max items: 100 |
| `customerPaymentIds[]` | string | Yes | - | format: uuid |
| `referenceNumber` | string \| null | No | Optional payment reference number applied to every selected payment. | max length: 100 |
| `paidDate` | string | Yes | Payment date in YYYY-MM-DD format. | - |
| `queueQuickBooksSync` | boolean | No | Also queue QuickBooks customer payment sync for positive-value invoices. | default: false |
| `depositToAccountId` | string | No | QuickBooks deposit account ID used when queueQuickBooksSync is true. | max length: 100 |

#### Example input

```json
{
  "customerPaymentIds": [
    "<customerPaymentIds>"
  ],
  "paidDate": "<paidDate>"
}
```

#### Result

The tool returns the canonical `ark.record_customer_payments` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_record_load_stop_event

`ark.record_load_stop_event`

Record or clear an actual arrival or departure time for a visible dispatched ARK load stop and run configured milestone side effects.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:write` |
| ARK permissions | `one of: canEditLoad`, `one of: canAssignLoads` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_send |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | true |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `loadId` | string | Yes | Visible dispatched ARK load ID. | format: uuid |
| `stopId` | string | Yes | Visible ARK load stop ID. | format: uuid |
| `eventType` | string | Yes | Actual milestone to record or clear. | one of: arrival, departure |
| `action` | string | No | - | one of: set, clear; default: "set" |
| `occurredAt` | string | No | Required when action is set. Omit when action is clear. | format: date-time |

#### Example input

```json
{
  "loadId": "<loadId>",
  "stopId": "<stopId>",
  "eventType": "arrival"
}
```

#### Result

The tool returns the canonical `ark.record_load_stop_event` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_regenerate_carrier_ach_file

`ark.regenerate_carrier_ach_file`

Regenerate an ACH/NACHA file from existing PENDING ARK carrier settlements, updating the effective paid date without creating a duplicate ACH batch record.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:read`, `billing:write` |
| ARK permissions | `canViewLoads`, `canViewBilling`, `canMakeAdjustments` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `settlementNumbers` | array<integer> | Yes | Existing visible PENDING carrier settlement numbers to regenerate. | min items: 1; max items: 50 |
| `settlementNumbers[]` | integer | Yes | - | min: 1 |
| `effectiveDate` | string | Yes | ACH effective date in YYYY-MM-DD format. | - |
| `includeFileContent` | boolean | No | When true, return the raw NACHA file and reconciliation CSV in the initial response. These include sensitive bank payment data and are redacted from idempotent replays. | default: false |

#### Example input

```json
{
  "settlementNumbers": [
    1
  ],
  "effectiveDate": "<effectiveDate>"
}
```

#### Result

The tool returns the canonical `ark.regenerate_carrier_ach_file` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_reject_carrier_onboarding

`ark.reject_carrier_onboarding`

Reject a carrier submitted through self-service onboarding, mark the carrier do-not-use, update the invite, and notify the carrier.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `carriers:write` |
| ARK permissions | `canApproveCarrier` |
| Team visibility | Not entity-scoped |
| Approval policy | ask_before_send |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | true |
| Open-world side effect | true |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `carrierId` | string | Yes | ARK carrier ID pending self-service onboarding review. | format: uuid |
| `rejectionNote` | string | No | Optional internal rejection note sent to the carrier when provided. | max length: 2000 |

#### Example input

```json
{
  "carrierId": "<carrierId>"
}
```

#### Result

The tool returns the canonical `ark.reject_carrier_onboarding` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_reject_load_bid

`ark.reject_load_bid`

Reject a pending carrier bid for a visible ARK load with a broker-provided reason.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:dispatch` |
| ARK permissions | `one of: canEditLoad`, `one of: canAssignLoads` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `loadId` | string | Yes | Visible ARK load ID for the bid. | format: uuid |
| `bidId` | string | Yes | Pending load bid ID to reject. | format: uuid |
| `rejectionReason` | string | Yes | Broker-facing reason for rejecting the bid. | min length: 1; max length: 500 |

#### Example input

```json
{
  "loadId": "<loadId>",
  "bidId": "<bidId>",
  "rejectionReason": "<rejectionReason>"
}
```

#### Result

The tool returns the canonical `ark.reject_load_bid` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_reject_spot_quote_bid

`ark.reject_spot_quote_bid`

Reject a visible pending spot quote bid and optionally store the rejection message.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:write` |
| ARK permissions | `canEditLoad` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | true |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `bidId` | string | Yes | Visible pending spot quote bid ID. | format: uuid |
| `message` | string | No | Optional rejection reason. | max length: 5000 |

#### Example input

```json
{
  "bidId": "<bidId>"
}
```

#### Result

The tool returns the canonical `ark.reject_spot_quote_bid` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_reject_spot_quote_customer_quote

`ark.reject_spot_quote_customer_quote`

Reject a visible pending customer quote through the transactional quote rejection workflow.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:write` |
| ARK permissions | `canEditLoad` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | true |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `quoteId` | string | Yes | Visible pending customer quote ID. | format: uuid |
| `reason` | string | No | Optional rejection reason. | max length: 5000 |
| `lostToCompetitor` | boolean \| null | No | Set true when this rejection should also mark the spot quote lost. | - |

#### Example input

```json
{
  "quoteId": "<quoteId>"
}
```

#### Result

The tool returns the canonical `ark.reject_spot_quote_customer_quote` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_reopen_spot_quote

`ark.reopen_spot_quote`

Move a visible lost spot quote back to the active workflow using the same transactional workflow as the website.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:write` |
| ARK permissions | `canEditLoad` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `spotQuoteId` | string | Yes | Visible lost spot quote ID. | format: uuid |

#### Example input

```json
{
  "spotQuoteId": "<spotQuoteId>"
}
```

#### Result

The tool returns the canonical `ark.reopen_spot_quote` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_repower_load

`ark.repower_load`

Repower an active ARK dispatch by closing it, inserting a repower pickup stop, returning the load to Available, and stopping configured tracking sessions.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:dispatch` |
| ARK permissions | `canAssignLoads` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_send |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | true |
| Open-world side effect | true |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `loadId` | string | Yes | Visible ARK load ID. | format: uuid |
| `dispatchId` | string | Yes | Active dispatch ID for the visible load. | format: uuid |
| `address` | string | Yes | - | min length: 1; max length: 500 |
| `city` | string | Yes | - | min length: 1; max length: 200 |
| `state` | string | Yes | - | min length: 1; max length: 20 |
| `zip` | string | Yes | - | min length: 1; max length: 30 |
| `comment` | string | No | - | default: ""; max length: 5000 |
| `latitude` | number \| null | No | - | - |
| `longitude` | number \| null | No | - | - |
| `timezoneId` | string \| null | No | - | max length: 100 |
| `country` | string | No | - | one of: USA, CAN, MEX; default: "USA" |

#### Example input

```json
{
  "loadId": "<loadId>",
  "dispatchId": "<dispatchId>",
  "address": "<address>",
  "city": "<city>",
  "state": "<state>",
  "zip": "<zip>"
}
```

#### Result

The tool returns the canonical `ark.repower_load` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_request_audit_export

`ark.request_audit_export`

Create a permissioned audit export request for a bounded date range and selected audit filters.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `audit:export` |
| ARK permissions | `canViewAuditTimeline`, `canExportAuditLog` |
| Team visibility | Not entity-scoped |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `view` | string | No | Audit view to search. | one of: activity, security, payments, integrations, exports, diagnostics; default: "activity" |
| `domainView` | string | No | Optional domain-specific audit projection. | one of: load.case_file, load.spot_quote_funnel, load.carrier_award, load.dispatch_exceptions, load.load_board, load.tracking, carrier.trust, carrier.onboarding, carrier.payment_risk, carrier.compliance_documents, carrier.provider_monitoring, carrier.rejections_dnu, finance.payment_ledger, finance.ap_settlement, finance.ar_invoice_payment, finance.nacha, finance.quickbooks, finance.pay_holds, finance.report_snapshots, integration.edi_trace, integration.tracking_visibility, integration.settings, evidence.documents, evidence.pod_review, customer.account, customer.locations, people.activity, admin.security, admin.org_config, admin.internal_tools, audit.exports, audit.operations |
| `q` | string | No | - | min length: 1; max length: 200 |
| `from` | string | Yes | - | format: date-time |
| `to` | string | Yes | - | format: date-time |
| `subjectType` | string | No | - | min length: 1; max length: 100 |
| `subjectId` | string | No | - | min length: 1; max length: 200 |
| `actorType` | string | No | - | min length: 1; max length: 100 |
| `actorUserId` | string | No | - | format: uuid |
| `eventKey` | string | No | - | min length: 1; max length: 200 |
| `eventFamily` | string | No | - | min length: 1; max length: 100 |
| `visibilityClass` | string | No | - | one of: business, security, admin, operational |
| `source` | string | No | - | min length: 1; max length: 100 |
| `provider` | string | No | - | min length: 1; max length: 100 |
| `correlationId` | string | No | - | min length: 1; max length: 200 |
| `transactionId` | string | No | - | - |
| `idempotencyKey` | string | No | - | min length: 1; max length: 200 |
| `requestId` | string | No | - | min length: 1; max length: 200 |
| `teamId` | string | No | - | format: uuid |
| `reason` | string | Yes | Business reason for exporting audit data. | min length: 1; max length: 500 |
| `format` | string | No | - | one of: json, csv; default: "json" |

#### Example input

```json
{
  "from": "2026-07-16T14:00:00Z",
  "to": "2026-07-16T14:00:00Z",
  "reason": "<reason>"
}
```

#### Result

The tool returns the canonical `ark.request_audit_export` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_request_edi_partner_connection

`ark.request_edi_partner_connection`

Request EDI trading-partner setup for a broker organization using the same workflow as the Connections page.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `edi:write` |
| ARK permissions | `canAdminEdi` |
| Team visibility | Not entity-scoped |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `partnerDisplayName` | string | Yes | Trading partner display name, such as CH Robinson or Uber Freight. | min length: 1; max length: 200 |
| `requestNotes` | string \| null | No | Optional setup notes for the ARK/broker EDI admin workflow. | max length: 5000 |

#### Example input

```json
{
  "partnerDisplayName": "<partnerDisplayName>"
}
```

#### Result

The tool returns the canonical `ark.request_edi_partner_connection` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_resend_carrier_invite

`ark.resend_carrier_invite`

Resend a pending carrier onboarding invite email and extend the invite expiration window.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `carriers:write` |
| ARK permissions | `canInviteCarrier` |
| Team visibility | Not entity-scoped |
| Approval policy | ask_before_send |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | true |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `inviteId` | string | Yes | Carrier invite ID. | format: uuid |

#### Example input

```json
{
  "inviteId": "<inviteId>"
}
```

#### Result

The tool returns the canonical `ark.resend_carrier_invite` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_resolve_pay_hold

`ark.resolve_pay_hold`

Resolve an active pay hold or claim for a visible ARK load after the billing issue has been cleared.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:read`, `billing:write` |
| ARK permissions | `canViewLoads`, `canMakeAdjustments`, `one of: canViewBilling`, `one of: canViewPayHoldsReport`, `one of: canEditLoad`, `one of: canMakeAdjustments` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `loadId` | string | Yes | Visible ARK load ID whose active pay hold should be resolved. | format: uuid |
| `payHoldId` | string | Yes | Exact active pay hold ID to resolve. | format: uuid |

#### Example input

```json
{
  "loadId": "<loadId>",
  "payHoldId": "<payHoldId>"
}
```

#### Result

The tool returns the canonical `ark.resolve_pay_hold` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_resolve_tracking_driver_conflict

`ark.resolve_tracking_driver_conflict`

Switch an active dispatch to the app-linked duplicate-phone driver and start internal ARK Tracking in one workflow.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:dispatch` |
| ARK permissions | `canAssignLoads` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_send |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | true |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `loadId` | string | Yes | Visible ARK load ID. | format: uuid |
| `dispatchId` | string | Yes | Visible active dispatch whose driver should be switched. | format: uuid |
| `targetDriverId` | string | Yes | App-linked driver ID suggested by the tracking conflict response. | format: uuid |
| `emailCopiesTo` | string \| null | No | - | max length: 1000 |
| `notes` | string \| null | No | - | max length: 5000 |

#### Example input

```json
{
  "loadId": "<loadId>",
  "dispatchId": "<dispatchId>",
  "targetDriverId": "<targetDriverId>"
}
```

#### Result

The tool returns the canonical `ark.resolve_tracking_driver_conflict` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_restore_load

`ark.restore_load`

Restore an archived visible ARK load and move dispatch-backed archived loads without active dispatches back to Available.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:write` |
| ARK permissions | `canDeleteLoad` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `loadId` | string | Yes | Archived visible ARK load ID to restore. | format: uuid |

#### Example input

```json
{
  "loadId": "<loadId>"
}
```

#### Result

The tool returns the canonical `ark.restore_load` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_retry_quickbooks_sync_job

`ark.retry_quickbooks_sync_job`

Retry a visible failed ARK QuickBooks sync job by resetting retryable items, requeueing the worker, and recording the retry lifecycle event.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:read`, `billing:write` |
| ARK permissions | `canViewLoads`, `canViewBilling`, `canMakeAdjustments` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | true |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `jobId` | string | Yes | Visible failed QuickBooks sync job ID to retry. | format: uuid |

#### Example input

```json
{
  "jobId": "<jobId>"
}
```

#### Result

The tool returns the canonical `ark.retry_quickbooks_sync_job` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_save_load_route_segments

`ark.save_load_route_segments`

Replace stored route geometry segments for a visible ARK load using precomputed section mileage, duration, and encoded polyline data.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:write` |
| ARK permissions | `canEditLoad` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `loadId` | string | Yes | Visible ARK load ID whose route geometry should be replaced. | format: uuid |
| `routeParamsHash` | string \| null | No | Stable hash of the route parameters. Required when sections are provided. | min length: 1 |
| `sections` | array<object> | No | - | default: []; max items: 25 |
| `sections[]` | object | No | - | - |
| `sections[].miles` | number | No | - | min: 0 |
| `sections[].durationSeconds` | integer | No | - | min: 0 |
| `sections[].typicalDurationSeconds` | integer \| null | No | - | min: 0 |
| `sections[].encodedPolyline` | string | No | - | min length: 1 |
| `clearExisting` | boolean | No | - | default: false |

#### Example input

```json
{
  "loadId": "<loadId>"
}
```

#### Result

The tool returns the canonical `ark.save_load_route_segments` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_search

`ark.search`

Search across available ARK loads, customers, carriers, locations, users, and docs with one query.

| Requirement | Value |
| --- | --- |
| Preview access | Core preview |
| Scopes | `context:read` |
| ARK permissions | None |
| Team visibility | Not entity-scoped |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `query` | string | Yes | - | min length: 2; max length: 100 |
| `domains` | array<string> | No | - | min items: 1; max items: 7 |
| `domains[]` | string | No | - | one of: loads, customers, carriers, locations, users, people, docs |
| `limitPerDomain` | integer | No | - | default: 5; min: 1; max: 10 |

#### Example input

```json
{
  "query": "<query>"
}
```

#### Result

The tool returns the canonical `ark.search` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_search_audit_events

`ark.search_audit_events`

Search the permissioned ARK audit timeline by view, domain, subject, actor, event, provider, trace, team, date range, or text query.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `audit:read` |
| ARK permissions | `canViewAuditTimeline` |
| Team visibility | Not entity-scoped |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `view` | string | No | Audit view to search. | one of: activity, security, payments, integrations, exports, diagnostics; default: "activity" |
| `domainView` | string | No | Optional domain-specific audit projection. | one of: load.case_file, load.spot_quote_funnel, load.carrier_award, load.dispatch_exceptions, load.load_board, load.tracking, carrier.trust, carrier.onboarding, carrier.payment_risk, carrier.compliance_documents, carrier.provider_monitoring, carrier.rejections_dnu, finance.payment_ledger, finance.ap_settlement, finance.ar_invoice_payment, finance.nacha, finance.quickbooks, finance.pay_holds, finance.report_snapshots, integration.edi_trace, integration.tracking_visibility, integration.settings, evidence.documents, evidence.pod_review, customer.account, customer.locations, people.activity, admin.security, admin.org_config, admin.internal_tools, audit.exports, audit.operations |
| `q` | string | No | - | min length: 1; max length: 200 |
| `from` | string | No | - | format: date-time |
| `to` | string | No | - | format: date-time |
| `subjectType` | string | No | - | min length: 1; max length: 100 |
| `subjectId` | string | No | - | min length: 1; max length: 200 |
| `actorType` | string | No | - | min length: 1; max length: 100 |
| `actorUserId` | string | No | - | format: uuid |
| `eventKey` | string | No | - | min length: 1; max length: 200 |
| `eventFamily` | string | No | - | min length: 1; max length: 100 |
| `visibilityClass` | string | No | - | one of: business, security, admin, operational |
| `source` | string | No | - | min length: 1; max length: 100 |
| `provider` | string | No | - | min length: 1; max length: 100 |
| `correlationId` | string | No | - | min length: 1; max length: 200 |
| `transactionId` | string | No | - | - |
| `idempotencyKey` | string | No | - | min length: 1; max length: 200 |
| `requestId` | string | No | - | min length: 1; max length: 200 |
| `teamId` | string | No | - | format: uuid |
| `cursorOccurredAt` | string | No | - | format: date-time |
| `cursorId` | string | No | - | format: uuid |
| `limit` | integer | No | - | default: 50; min: 1; max: 100 |

#### Example input

```json
{}
```

#### Result

The tool returns the canonical `ark.search_audit_events` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_search_carriers

`ark.search_carriers`

Search active visible ARK carriers by name, code, DOT number, MC number, SCAC, phone, or email.

| Requirement | Value |
| --- | --- |
| Preview access | Core preview |
| Scopes | `carriers:read` |
| ARK permissions | `canViewCarriers` |
| Team visibility | Not entity-scoped |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `query` | string | No | - | min length: 1; max length: 100 |
| `active` | boolean | No | - | - |
| `includeDoNotUse` | boolean | No | - | default: false |
| `limit` | integer | No | - | default: 25; min: 1; max: 100 |
| `cursor` | string | No | - | min length: 1 |

#### Example input

```json
{}
```

#### Result

The tool returns the canonical `ark.search_carriers` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_search_customers

`ark.search_customers`

Search visible ARK customers by name, code, and team visibility.

| Requirement | Value |
| --- | --- |
| Preview access | Core preview |
| Scopes | `customers:read` |
| ARK permissions | `canViewCustomers` |
| Team visibility | Required and enforced |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `query` | string | No | - | min length: 1; max length: 100 |
| `teamIds` | array<string> | No | - | - |
| `teamIds[]` | string | No | - | format: uuid |
| `limit` | integer | No | - | default: 25; min: 1; max: 100 |
| `cursor` | string | No | - | min length: 1 |

#### Example input

```json
{}
```

#### Result

The tool returns the canonical `ark.search_customers` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_search_docs

`ark.search_docs`

Search ARK support and developer documentation for product, workflow, API, and MCP questions.

| Requirement | Value |
| --- | --- |
| Preview access | Core preview |
| Scopes | `docs:read` |
| ARK permissions | None |
| Team visibility | Not entity-scoped |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `query` | string | Yes | - | min length: 2; max length: 200 |
| `limit` | integer | No | - | default: 5; min: 1; max: 10 |

#### Example input

```json
{
  "query": "<query>"
}
```

#### Result

The tool returns the canonical `ark.search_docs` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_search_factoring_companies

`ark.search_factoring_companies`

Search ARK factoring companies so agents can identify carrier payment destinations before updating carrier payment routing.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `factoring:read` |
| ARK permissions | `canViewFactoring` |
| Team visibility | Not entity-scoped |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `query` | string | No | Optional factoring company name or notes search text. | min length: 1; max length: 100 |
| `includeDeleted` | boolean | No | Include deleted factoring companies. | default: false |
| `limit` | integer | No | - | default: 25; min: 1; max: 100 |
| `cursor` | string | No | Pagination cursor returned by the previous search. | - |

#### Example input

```json
{}
```

#### Result

The tool returns the canonical `ark.search_factoring_companies` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_search_loads

`ark.search_loads`

Search visible ARK loads by load number, reference fields, customer, status, and team.

| Requirement | Value |
| --- | --- |
| Preview access | Core preview |
| Scopes | `loads:read` |
| ARK permissions | `canViewLoads` |
| Team visibility | Required and enforced |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `query` | string | No | - | min length: 1; max length: 100 |
| `status` | string | No | - | min length: 1; max length: 50 |
| `teamIds` | array<string> | No | - | - |
| `teamIds[]` | string | No | - | format: uuid |
| `limit` | integer | No | - | default: 25; min: 1; max: 100 |
| `cursor` | string | No | - | min length: 1 |

#### Example input

```json
{}
```

#### Result

The tool returns the canonical `ark.search_loads` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_search_locations

`ark.search_locations`

Search visible ARK locations by facility, address, city, customer, or contact details for load stop resolution.

| Requirement | Value |
| --- | --- |
| Preview access | Core preview |
| Scopes | `locations:read` |
| ARK permissions | `canViewLocations` |
| Team visibility | Required and enforced |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `query` | string | No | - | min length: 1; max length: 100 |
| `teamIds` | array<string> | No | - | - |
| `teamIds[]` | string | No | - | format: uuid |
| `countryCodes` | array<string> | No | - | - |
| `countryCodes[]` | string | No | - | one of: USA, CAN, MEX |
| `limit` | integer | No | - | default: 25; min: 1; max: 100 |
| `cursor` | string | No | - | min length: 1 |

#### Example input

```json
{}
```

#### Result

The tool returns the canonical `ark.search_locations` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_search_people

`ark.search_people`

Search organization carrier contacts, including drivers and dispatchers linked to carriers.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `people:read` |
| ARK permissions | `canViewPeople` |
| Team visibility | Not entity-scoped |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `type` | string | No | Carrier people type to include. | one of: all, driver, dispatcher; default: "all" |
| `query` | string | No | Optional driver, dispatcher, email, phone, note, or carrier search text. | min length: 1; max length: 100 |
| `carrierId` | string | No | Optional carrier ID to limit people results. | format: uuid |
| `limit` | integer | No | - | default: 25; min: 1; max: 100 |
| `offset` | integer | No | - | default: 0; min: 0 |

#### Example input

```json
{}
```

#### Result

The tool returns the canonical `ark.search_people` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_search_spot_quote_nearby_carriers

`ark.search_spot_quote_nearby_carriers`

Find carriers near a ZIP code from ARK carrier location history for quote outreach and bid targeting.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:read` |
| ARK permissions | `canViewLoads` |
| Team visibility | Required and enforced |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `zipCode` | string | Yes | Pickup ZIP code to search around. | - |
| `radiusMiles` | integer | No | Carrier search radius in miles. | default: 150; min: 1; max: 500 |
| `limit` | integer | No | Maximum nearby carriers to return. | default: 50; min: 1; max: 100 |

#### Example input

```json
{
  "zipCode": "<zipCode>"
}
```

#### Result

The tool returns the canonical `ark.search_spot_quote_nearby_carriers` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_search_users

`ark.search_users`

Search active ARK users visible through the connected team scope by name, email, role, or team.

| Requirement | Value |
| --- | --- |
| Preview access | Core preview |
| Scopes | `people:read` |
| ARK permissions | `canViewPeople` |
| Team visibility | Required and enforced |
| Approval policy | none |
| ARK approval request | Not required |
| Idempotency | Not required |
| Read-only | true |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `query` | string | No | - | min length: 1; max length: 100 |
| `teamIds` | array<string> | No | - | - |
| `teamIds[]` | string | No | - | format: uuid |
| `roles` | array<string> | No | - | - |
| `roles[]` | string | No | - | min length: 1; max length: 50 |
| `includeInactive` | boolean | No | - | default: false |
| `limit` | integer | No | - | default: 25; min: 1; max: 100 |
| `cursor` | string | No | - | min length: 1 |

#### Example input

```json
{}
```

#### Result

The tool returns the canonical `ark.search_users` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_send_carrier_remittance_email

`ark.send_carrier_remittance_email`

Send carrier or factoring remittance emails for selected ARK carrier payments or settlement numbers using grouped AP remittance details.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:read`, `billing:write` |
| ARK permissions | `canViewLoads`, `canViewBilling`, `canMakeAdjustments` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_send |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | true |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `remittanceType` | string | Yes | Use payment with carrierPaymentIds for selected payments, or settlement with settlementNumbers for existing carrier settlements. | one of: payment, settlement |
| `carrierPaymentIds` | array<string> | No | Visible carrier payment IDs when remittanceType is payment. | min items: 1; max items: 100 |
| `carrierPaymentIds[]` | string | No | - | format: uuid |
| `settlementNumbers` | array<integer> | No | Visible carrier settlement numbers when remittanceType is settlement. | min items: 1; max items: 50 |
| `settlementNumbers[]` | integer | No | - | min: 1 |
| `paymentDate` | string | Yes | Payment date shown in the remittance email, in YYYY-MM-DD format. | - |

#### Example input

```json
{
  "remittanceType": "payment",
  "paymentDate": "<paymentDate>"
}
```

#### Result

The tool returns the canonical `ark.send_carrier_remittance_email` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_send_custom_email

`ark.send_custom_email`

Send a custom ARK TMS email from the organization sender with optional storage or inline attachments.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:write` |
| ARK permissions | `canViewLoads` |
| Team visibility | Not entity-scoped |
| Approval policy | ask_before_send |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | true |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `to` | string \| array<string> | Yes | - | - |
| `cc` | string \| array<string> | No | - | - |
| `bcc` | string \| array<string> | No | - | - |
| `subject` | string | No | - | default: ""; max length: 500 |
| `body` | string | No | - | default: ""; max length: 100000 |
| `htmlBody` | string | No | - | max length: 250000 |
| `replyTo` | string \| object | No | - | - |
| `storageAttachments` | array<object> | No | - | max items: 25 |
| `storageAttachments[]` | object | No | - | - |
| `storageAttachments[].path` | string | No | - | max length: 2000 |
| `storageAttachments[].name` | string | No | - | max length: 255 |
| `storageAttachments[].type` | string | No | - | max length: 255 |
| `inlineAttachments` | array<object> | No | - | max items: 10 |
| `inlineAttachments[]` | object | No | - | - |
| `inlineAttachments[].name` | string | No | - | max length: 255 |
| `inlineAttachments[].type` | string | No | - | max length: 255 |
| `inlineAttachments[].base64` | string | No | - | max length: 20000000 |

#### Example input

```json
{
  "to": "<to>"
}
```

#### Result

The tool returns the canonical `ark.send_custom_email` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_send_customer_invoice

`ark.send_customer_invoice`

Send the customer invoice email using the attached ARK billing packet, mark the customer payment invoiced, and optionally queue QuickBooks invoice sync.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:read`, `billing:write` |
| ARK permissions | `canViewLoads`, `canViewBilling`, `canMakeAdjustments` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_send |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | true |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `loadId` | string | Yes | Visible ARK load ID whose customer invoice should be sent. | format: uuid |
| `customerPaymentId` | string | No | Optional customer payment ID. Omit to use the latest payment for the load. | format: uuid |
| `queueQuickBooksSync` | boolean | No | Queue QuickBooks customer invoice sync after the invoice email is sent. | default: false |

#### Example input

```json
{
  "loadId": "<loadId>"
}
```

#### Result

The tool returns the canonical `ark.send_customer_invoice` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_send_customer_invoices

`ark.send_customer_invoices`

Send selected READY ARK customer invoice emails in one AR workflow, mark successful payments INVOICED, return per-payment failures, and optionally queue QuickBooks invoice sync.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:read`, `billing:write` |
| ARK permissions | `canViewLoads`, `canViewBilling`, `canMakeAdjustments` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_send |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | true |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `customerPaymentIds` | array<string> | Yes | Visible READY customer payment IDs whose invoice emails should be sent in one AR workflow. | min items: 1; max items: 100 |
| `customerPaymentIds[]` | string | Yes | - | format: uuid |
| `queueQuickBooksSync` | boolean | No | Queue QuickBooks customer invoice sync after each successful invoice email. | default: false |

#### Example input

```json
{
  "customerPaymentIds": [
    "<customerPaymentIds>"
  ]
}
```

#### Result

The tool returns the canonical `ark.send_customer_invoices` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_send_load_location_notification

`ark.send_load_location_notification`

Send a manual location-update notification for a visible ARK load using configured tracking notification recipients and throttle rules.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:write` |
| ARK permissions | `one of: canEditLoad`, `one of: canAssignLoads` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_send |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | true |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `loadId` | string | Yes | Visible ARK load ID whose recipients should receive a location update. | format: uuid |
| `city` | string | Yes | City for the manually reported location. | min length: 1; max length: 200 |
| `state` | string | Yes | State or province for the manually reported location. | min length: 1; max length: 20 |
| `country` | string | No | - | one of: USA, CAN, MEX; default: "USA" |
| `latitude` | number \| null | No | - | min: -90; max: 90 |
| `longitude` | number \| null | No | - | min: -180; max: 180 |
| `timezoneId` | string \| null | No | IANA timezone ID for the location timestamp, when known. | max length: 100 |
| `locationDateTime` | string | No | ISO timestamp for the manually reported location. Defaults to now. | format: date-time |

#### Example input

```json
{
  "loadId": "<loadId>",
  "city": "<city>",
  "state": "<state>"
}
```

#### Result

The tool returns the canonical `ark.send_load_location_notification` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_send_rate_confirmation

`ark.send_rate_confirmation`

Send an existing ARK rate confirmation file to the dispatch contact, optionally as an e-sign request.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:dispatch` |
| ARK permissions | `canAssignLoads` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_send |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | true |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `loadId` | string | Yes | Visible ARK load ID. | format: uuid |
| `dispatchId` | string | Yes | Dispatch ID for the rate confirmation recipient. | format: uuid |
| `fileId` | string | Yes | Existing rate confirmation file ID attached to the dispatch. | format: uuid |
| `esign` | boolean | No | When true, send an e-sign link instead of a PDF attachment. | default: false |

#### Example input

```json
{
  "loadId": "<loadId>",
  "dispatchId": "<dispatchId>",
  "fileId": "<fileId>"
}
```

#### Result

The tool returns the canonical `ark.send_rate_confirmation` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_send_spot_quote_invitations

`ark.send_spot_quote_invitations`

Create carrier invitation records for a visible spot quote and send the requested email or in-app notifications.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:write` |
| ARK permissions | `canEditLoad` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_send |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | true |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `spotQuoteId` | string | Yes | Visible spot quote ID. | format: uuid |
| `invitations` | array<object> | Yes | - | min items: 1; max items: 100 |
| `invitations[]` | object | Yes | - | - |
| `invitations[].driverUserId` | string | No | Required when channel is in_app. | format: uuid |
| `invitations[].carrierId` | string | Yes | - | format: uuid |
| `invitations[].channel` | string | Yes | - | one of: in_app, email |
| `invitations[].message` | string | Yes | - | min length: 1; max length: 5000 |
| `invitations[].email` | string | No | Required when channel is email. | format: email |
| `invitations[].pushNotification` | object | No | Required when channel is in_app. | - |
| `invitations[].pushNotification.title` | string | No | - | min length: 1; max length: 120 |
| `invitations[].pushNotification.body` | string | No | - | min length: 1; max length: 500 |

#### Example input

```json
{
  "spotQuoteId": "<spotQuoteId>",
  "invitations": [
    {
      "carrierId": "<carrierId>",
      "channel": "in_app",
      "message": "<message>"
    }
  ]
}
```

#### Result

The tool returns the canonical `ark.send_spot_quote_invitations` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_send_tracking_link_email

`ark.send_tracking_link_email`

Send a customer-facing tracking link email for the active or selected tracking provider on a visible ARK load.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:dispatch` |
| ARK permissions | `canAssignLoads` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_send |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | true |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `loadId` | string | Yes | Visible ARK load ID. | format: uuid |
| `recipientEmail` | string | Yes | Recipient email address for the tracking link. | format: email; max length: 500 |
| `recipientName` | string | No | - | min length: 1; max length: 200 |
| `message` | string \| null | No | - | max length: 5000 |
| `senderName` | string | No | - | min length: 1; max length: 200 |
| `provider` | string | No | Optional tracking provider. Omit to use ARK provider selection. | one of: macropoint, truckertools, internal |

#### Example input

```json
{
  "loadId": "<loadId>",
  "recipientEmail": "<recipientEmail>"
}
```

#### Result

The tool returns the canonical `ark.send_tracking_link_email` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_set_customer_billing_requirements

`ark.set_customer_billing_requirements`

Replace the required billing packet document types for a visible ARK customer with the exact provided list.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `customers:write` |
| ARK permissions | `canEditCustomer` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `customerId` | string | Yes | Visible ARK customer ID. | format: uuid |
| `requiredBillingPacketFileTypes` | array<string> | Yes | Exact required billing packet document types for the customer. Send an empty array to clear requirements. | max items: 50 |
| `requiredBillingPacketFileTypes[]` | string | Yes | - | one of: BOL, Load Tender, Rate Approval, Lumper Receipt, POD, Other |

#### Example input

```json
{
  "customerId": "<customerId>",
  "requiredBillingPacketFileTypes": [
    "BOL"
  ]
}
```

#### Result

The tool returns the canonical `ark.set_customer_billing_requirements` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_set_customer_managers

`ark.set_customer_managers`

Replace the assigned manager users for a visible customer with the exact provided ARK user list.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `customers:write` |
| ARK permissions | `canEditCustomer` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `customerId` | string | Yes | Visible ARK customer ID. | format: uuid |
| `managerIds` | array<string> | Yes | Exact active ARK user IDs to assign as customer managers. Send an empty array to clear managers. | max items: 100 |
| `managerIds[]` | string | Yes | - | format: uuid |

#### Example input

```json
{
  "customerId": "<customerId>",
  "managerIds": [
    "<managerIds>"
  ]
}
```

#### Result

The tool returns the canonical `ark.set_customer_managers` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_set_customer_project44_mapping

`ark.set_customer_project44_mapping`

Create, update, or deactivate the tenant-admin project44 customer mapping for a visible ARK customer.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `customers:write` |
| ARK permissions | `canEditCustomer` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `customerId` | string | Yes | Visible ARK customer ID. | format: uuid |
| `active` | boolean | Yes | Whether project44 forwarding is active for this customer mapping. | - |
| `project44CustomerId` | string | No | project44 customer ID. Required when active is true. | min length: 1; max length: 200 |

#### Example input

```json
{
  "customerId": "<customerId>",
  "active": false
}
```

#### Result

The tool returns the canonical `ark.set_customer_project44_mapping` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_set_customer_team_visibility

`ark.set_customer_team_visibility`

Replace the visible-team mappings for a customer while preserving existing mappings outside the connection team scope.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `customers:write` |
| ARK permissions | `canEditCustomer` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `customerId` | string | Yes | Visible ARK customer ID. | format: uuid |
| `teamIds` | array<string> | Yes | Visible ARK team IDs to set for the customer. Existing customer mappings outside the connection team scope are preserved and returned. | min items: 1; max items: 100 |
| `teamIds[]` | string | Yes | - | format: uuid |

#### Example input

```json
{
  "customerId": "<customerId>",
  "teamIds": [
    "<teamIds>"
  ]
}
```

#### Result

The tool returns the canonical `ark.set_customer_team_visibility` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_set_default_invoice_remit_profile

`ark.set_default_invoice_remit_profile`

Set the organization default invoice remit profile used when customers do not have customer-specific remit defaults.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `billing:write` |
| ARK permissions | `canViewBilling`, `canMakeAdjustments` |
| Team visibility | Not entity-scoped |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `profileId` | string | Yes | Active invoice remit profile ID to make the organization default. | format: uuid |

#### Example input

```json
{
  "profileId": "<profileId>"
}
```

#### Result

The tool returns the canonical `ark.set_default_invoice_remit_profile` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_set_load_notification_settings

`ark.set_load_notification_settings`

Create or update tracking notification settings for a visible ARK load.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:write` |
| ARK permissions | `canEditLoad` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `loadId` | string | Yes | Visible ARK load ID whose tracking notification settings should be saved. | format: uuid |
| `emails` | array<string> | Yes | Recipient email addresses for tracking notifications. | min items: 1; max items: 50 |
| `emails[]` | string | Yes | - | format: email; max length: 500 |
| `enabled` | boolean | Yes | Whether tracking notifications are enabled for this load. | - |
| `notifyOnArrival` | boolean | No | Whether arrival events should send notifications. | default: true |
| `notifyOnDeparture` | boolean | No | Whether departure events should send notifications. | default: true |
| `notificationIntervalMinutes` | integer | No | Minimum interval between location-update notifications. | default: 120; min: 15; max: 1440 |
| `notes` | string \| null | No | - | max length: 5000 |

#### Example input

```json
{
  "loadId": "<loadId>",
  "emails": [
    "<emails>"
  ],
  "enabled": false
}
```

#### Result

The tool returns the canonical `ark.set_load_notification_settings` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_set_user_backup_users

`ark.set_user_backup_users`

Replace a broker user's backup-user assignments for absence coverage and outgoing email CC workflows.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `admin:write` |
| ARK permissions | None |
| Team visibility | Not entity-scoped |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `userId` | string | Yes | Broker user ID whose backup-user assignments should be replaced. | format: uuid |
| `backupUserIds` | array<string> | Yes | Replacement backup user IDs. Use an empty array to clear all backup users. | max items: 50 |
| `backupUserIds[]` | string | Yes | - | format: uuid |

#### Example input

```json
{
  "userId": "<userId>",
  "backupUserIds": [
    "<backupUserIds>"
  ]
}
```

#### Result

The tool returns the canonical `ark.set_user_backup_users` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_start_agent_session

`ark.start_agent_session`

Create an MCP or hosted-agent session record for run tracking, budgets, approval linkage, and audit attribution.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `agents:write` |
| ARK permissions | None |
| Team visibility | Not entity-scoped |
| Approval policy | draft_only |
| ARK approval request | Not required |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `title` | string | No | Optional short label for the agent session. | min length: 1; max length: 160 |
| `goal` | string | No | User-approved goal or work description for the session. | min length: 1; max length: 2000 |
| `clientName` | string | No | AI client or hosted-agent name. | min length: 1; max length: 160 |
| `clientSessionId` | string | No | Client-provided session identifier to link repeated calls. | min length: 1; max length: 200 |
| `maxToolCalls` | integer | No | Optional tool-call budget for the session. | min: 1; max: 10000 |
| `expiresInMinutes` | integer | No | Minutes before the session should expire. | default: 480; min: 5; max: 43200 |
| `metadata` | object | No | Non-secret session metadata. | - |

#### Example input

```json
{}
```

#### Result

The tool returns the canonical `ark.start_agent_session` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_start_tracking

`ark.start_tracking`

Start MacroPoint, TruckerTools, or internal ARK tracking for a visible dispatched load.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:dispatch` |
| ARK permissions | `canAssignLoads` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_send |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | true |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `loadId` | string | Yes | Visible ARK load ID. | format: uuid |
| `provider` | string | No | Optional tracking provider. Omit to use ARK provider selection. | one of: macropoint, truckertools, internal |
| `trackStartDateTime` | string | No | Tracking start date/time. Required for MacroPoint start. | max length: 100 |
| `trackDurationHours` | number | No | - | min: 1; max: 720 |
| `trackIntervalMinutes` | integer | No | - | min: 5; max: 1440 |
| `emailCopiesTo` | string \| null | No | - | max length: 1000 |
| `notes` | string \| null | No | - | max length: 5000 |
| `minTemp` | number \| null | No | - | - |
| `maxTemp` | number \| null | No | - | - |
| `tempUoM` | string | No | - | one of: fahrenheit, celsius |
| `dispatchId` | string | No | Required when starting internal ARK tracking. | format: uuid |
| `geofenceRadiusMiles` | number | No | - | min: 0.1; max: 50 |
| `consentConfirmed` | boolean | No | - | - |
| `consentMethod` | string | No | - | one of: verbal, written, electronic |

#### Example input

```json
{
  "loadId": "<loadId>"
}
```

#### Result

The tool returns the canonical `ark.start_tracking` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_stop_agent_session

`ark.stop_agent_session`

Stop an active MCP or hosted-agent session for the connected user.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `agents:write` |
| ARK permissions | None |
| Team visibility | Not entity-scoped |
| Approval policy | draft_only |
| ARK approval request | Not required |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `sessionId` | string | Yes | Active agent session ID to stop. | format: uuid |
| `reason` | string | No | Optional reason recorded in session metadata. | min length: 1; max length: 1000 |

#### Example input

```json
{
  "sessionId": "<sessionId>"
}
```

#### Result

The tool returns the canonical `ark.stop_agent_session` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_stop_tracking

`ark.stop_tracking`

Stop the active tracking session for a visible load or a specific provider tracking ID.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:dispatch` |
| ARK permissions | `canAssignLoads` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_send |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | true |
| Open-world side effect | true |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `loadId` | string | Yes | Visible ARK load ID. | format: uuid |
| `provider` | string | No | Optional tracking provider. Omit to use ARK provider selection. | one of: macropoint, truckertools, internal |
| `trackingId` | string | No | Optional active provider tracking ID for update or stop. | max length: 200 |

#### Example input

```json
{
  "loadId": "<loadId>"
}
```

#### Result

The tool returns the canonical `ark.stop_tracking` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_stop_tracking_for_inactive_dispatch

`ark.stop_tracking_for_inactive_dispatch`

Stop active tracking sessions after a visible dispatch or deleted load has already become inactive.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:dispatch` |
| ARK permissions | `canAssignLoads` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_send |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | true |
| Open-world side effect | true |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `loadId` | string | Yes | Visible ARK load ID. | format: uuid |
| `dispatchId` | string \| null | No | Inactive dispatch ID. Required unless reason is load_delete. | format: uuid |
| `reason` | string | No | - | one of: cancel_dispatch, tonu_recover, tonu_deliver, repower, load_delete, dispatch_inactive; default: "dispatch_inactive" |

#### Example input

```json
{
  "loadId": "<loadId>"
}
```

#### Result

The tool returns the canonical `ark.stop_tracking_for_inactive_dispatch` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_sync_carrier_provider_profile

`ark.sync_carrier_provider_profile`

Sync an ARK carrier profile, packet documents, compliance, insurance, identity, and payment evidence from Highway, RMIS, or MyCarrierPortal.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `carriers:write` |
| ARK permissions | `canEditCarrier` |
| Team visibility | Not entity-scoped |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | true |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `provider` | string | Yes | External onboarding and monitoring provider to sync from. | one of: highway, rmis, mycarrierportal |
| `carrierId` | string | No | Optional existing ARK carrier ID to refresh from the provider. | format: uuid |
| `dotNumber` | string | No | Optional DOT number lookup for provider sync. | max length: 32 |
| `mcNumber` | string | No | Optional MC/MX docket number lookup for provider sync. | max length: 32 |
| `highwayCarrierId` | string | No | Highway carrier ID when syncing from Highway. | max length: 64 |
| `highwayExternalId` | string | No | Highway external ID when syncing from Highway. | max length: 100 |
| `rmisCarrierId` | string | No | RMIS carrier ID when syncing from RMIS. | max length: 64 |

#### Example input

```json
{
  "provider": "highway"
}
```

#### Result

The tool returns the canonical `ark.sync_carrier_provider_profile` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_take_edi_tender_action

`ark.take_edi_tender_action`

Accept or reject a visible inbound EDI tender. This is a write action and should require human approval by default.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `edi:write` |
| ARK permissions | `canTakeEdiTenderAction` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | true |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `tenderId` | string | Yes | Inbound EDI tender ID. | format: uuid |
| `decision` | string | Yes | Tender decision to apply. | one of: accept, reject |

#### Example input

```json
{
  "tenderId": "<tenderId>",
  "decision": "accept"
}
```

#### Result

The tool returns the canonical `ark.take_edi_tender_action` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_test_project44_connection

`ark.test_project44_connection`

Validate project44 platform credentials by fetching an access token. Forced refreshes consume project44 token generation quota.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `admin:write` |
| ARK permissions | None |
| Team visibility | Not entity-scoped |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | true |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `forceRefresh` | boolean | No | Force a fresh project44 token request. This consumes token generation quota. | default: true |

#### Example input

```json
{}
```

#### Result

The tool returns the canonical `ark.test_project44_connection` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_undeliver_billing_load

`ark.undeliver_billing_load`

Move a delivered ARK load back out of billing when billing state is still unadvanced, reopening the operational load workflow.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:read`, `billing:write` |
| ARK permissions | `canViewLoads`, `canViewBilling`, `canMakeAdjustments` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `loadId` | string | Yes | Visible delivered ARK load ID to move back out of Billing. | format: uuid |

#### Example input

```json
{
  "loadId": "<loadId>"
}
```

#### Result

The tool returns the canonical `ark.undeliver_billing_load` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_unhold_spot_quote

`ark.unhold_spot_quote`

Release a hold from a visible held spot quote and notify watchers.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:write` |
| ARK permissions | `canEditLoad` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `spotQuoteId` | string | Yes | Visible spot quote ID. | format: uuid |

#### Example input

```json
{
  "spotQuoteId": "<spotQuoteId>"
}
```

#### Result

The tool returns the canonical `ark.unhold_spot_quote` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_unhold_spot_quote_bid

`ark.unhold_spot_quote_bid`

Release the hold on a visible held spot quote bid.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:write` |
| ARK permissions | `canEditLoad` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `bidId` | string | Yes | Visible held spot quote bid ID. | format: uuid |

#### Example input

```json
{
  "bidId": "<bidId>"
}
```

#### Result

The tool returns the canonical `ark.unhold_spot_quote_bid` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_unlock_load

`ark.unlock_load`

Release your ARK load lock or manager-override another user lock when allowed.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:write` |
| ARK permissions | `canAssignLoads` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `loadId` | string | Yes | Visible ARK load ID. | format: uuid |
| `trigger` | string | No | - | one of: manual, form_close, dispatch_complete, manager_override; default: "manual" |

#### Example input

```json
{
  "loadId": "<loadId>"
}
```

#### Result

The tool returns the canonical `ark.unlock_load` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_unwatch_spot_quote

`ark.unwatch_spot_quote`

Remove the connected actor as a watcher for a visible spot quote.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:write` |
| ARK permissions | `canViewLoads` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `spotQuoteId` | string | Yes | Visible spot quote ID. | format: uuid |

#### Example input

```json
{
  "spotQuoteId": "<spotQuoteId>"
}
```

#### Result

The tool returns the canonical `ark.unwatch_spot_quote` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_update_billed_load_details

`ark.update_billed_load_details`

Update a visible ARK load after customer billing has started, regenerate the revised customer invoice when billing is READY or INVOICED, and optionally queue a QuickBooks customer invoice update.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:read`, `loads:write`, `billing:write` |
| ARK permissions | `canViewLoads`, `canEditLoad`, `canViewBilling`, `canMakeAdjustments` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | true |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `loadId` | string | Yes | Visible ARK load ID whose billed details should be updated. | format: uuid |
| `customerId` | string \| null | No | Customer ID to assign to the load, or null to clear. | format: uuid |
| `teamId` | string | No | Visible team ID to assign to the load. | format: uuid |
| `brokerId` | string \| null | No | - | format: uuid |
| `customerServiceRepId` | string \| null | No | - | format: uuid |
| `temperature` | number \| null | No | - | - |
| `internalComments` | string \| null | No | - | max length: 5000 |
| `externalComments` | string \| null | No | - | max length: 5000 |
| `hotComments` | string \| null | No | - | max length: 5000 |
| `pickupNumber` | string \| null | No | - | max length: 100 |
| `purchaseOrderNumber` | string \| null | No | - | max length: 100 |
| `billOfLading` | string \| null | No | - | max length: 100 |
| `product` | string \| null | No | - | max length: 200 |
| `value` | number \| null | No | - | - |
| `description` | string \| null | No | - | max length: 5000 |
| `size` | string \| null | No | - | max length: 100 |
| `trailer` | string \| null | No | - | max length: 100 |
| `weight` | number \| null | No | - | - |
| `weightUnit` | string | No | - | one of: lbs, kg |
| `length` | number \| null | No | - | - |
| `width` | number \| null | No | - | - |
| `height` | number \| null | No | - | - |
| `numberOfPieces` | integer \| null | No | - | min: 0 |
| `hazmat` | boolean | No | - | - |
| `docHigh` | boolean | No | - | - |
| `stackable` | boolean | No | - | - |
| `tsa` | boolean | No | - | - |
| `teamDriverRequired` | boolean | No | - | - |
| `miles` | number \| null | No | - | min: 0 |
| `maximumBuyAmount` | number \| null | No | Maximum carrier buy amount for load-board and market-intelligence workflows. | min: 0 |
| `customerCurrency` | string | No | - | one of: USD, CAD, MXN |
| `carrierCurrency` | string | No | - | one of: USD, CAD, MXN |
| `customerPay` | array<object> | No | Replacement customer-pay lines. Omit to leave customer pay unchanged. | max items: 100 |
| `customerPay[]` | object | No | - | - |
| `customerPay[].id` | string | No | Existing customer-pay line ID. Omit to create a new line. | format: uuid |
| `customerPay[].name` | string | No | - | min length: 1; max length: 200 |
| `customerPay[].price` | number \| null | No | - | - |
| `customerPay[].rateType` | string \| null | No | - | max length: 50 |
| `customerPay[].unitPrice` | number \| null | No | - | - |
| `customerPay[].quantity` | number \| null | No | - | - |
| `customerPay[].uom` | string \| null | No | - | max length: 50 |
| `stops` | array<object> | No | Replacement stop list. Omit to leave stops unchanged. | min items: 2; max items: 50 |
| `stops[]` | object | No | - | - |
| `stops[].id` | string | No | Existing stop ID. Omit to create a new stop. | format: uuid |
| `stops[].locationId` | string | No | - | format: uuid |
| `stops[].index` | integer | No | - | min: 0 |
| `stops[].type` | string | No | - | min length: 1; max length: 50 |
| `stops[].referenceNumber` | string \| null | No | - | max length: 100 |
| `stops[].pieces` | integer \| null | No | - | min: 0 |
| `stops[].arrivalTime` | string \| null | No | - | format: date-time |
| `stops[].arrivalTime2` | string \| null | No | - | format: date-time |
| `stops[].weight` | number \| null | No | - | min: 0 |
| `stops[].comment` | string \| null | No | - | max length: 5000 |
| `stops[].schedulingType` | string \| null | No | - | one of: fcfs, appointment, null |
| `stops[].milesToNextStop` | number \| null | No | - | min: 0 |
| `stops[].durationToNextStopSeconds` | integer \| null | No | - | min: 0 |
| `refreshCustomerBilling` | boolean | No | When true, regenerate the revised customer invoice for READY or INVOICED customer payments after updating the load. | default: true |
| `queueQuickBooksSync` | boolean | No | When true, queue a QuickBooks customer_invoice_update job after refreshing the revised invoice. | default: true |
| `invoiceRemitProfileId` | string | No | Optional invoice remit profile ID to use for the regenerated revised invoice. | format: uuid |
| `invoiceFileName` | string | No | Optional regenerated revised invoice PDF file name. | max length: 200 |

#### Example input

```json
{
  "loadId": "<loadId>"
}
```

#### Result

The tool returns the canonical `ark.update_billed_load_details` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_update_carrier

`ark.update_carrier`

Update an ARK carrier profile with operating-country validation and dispatch fields.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `carriers:write` |
| ARK permissions | `canEditCarrier` |
| Team visibility | Not entity-scoped |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `carrierId` | string | Yes | ARK carrier ID. | format: uuid |
| `name` | string | No | Carrier legal or operating name. | min length: 1; max length: 200 |
| `dbaName` | string \| null | No | - | max length: 200 |
| `code` | string \| null | No | - | max length: 50 |
| `notes` | string \| null | No | - | max length: 5000 |
| `dotNum` | string \| null | No | US DOT number. Required with MC for US carriers unless MC is provided. | max length: 30 |
| `mcNum` | string \| null | No | MC, FF, MX, or numeric authority identifier. | max length: 30 |
| `dispatchEmail` | string \| null | No | - | max length: 500 |
| `dispatchPhone` | string \| null | No | - | max length: 50 |
| `domicileCountry` | string | No | - | one of: USA, CAN, MEX; default: "USA" |
| `operatingCountries` | array<string> | No | - | min items: 1; max items: 3 |
| `operatingCountries[]` | string | No | - | one of: USA, CAN, MEX |
| `scac` | string \| null | No | - | max length: 30 |
| `caat` | string \| null | No | Required for carriers operating in Mexico. | max length: 100 |
| `sctPermit` | string \| null | No | - | max length: 100 |
| `nscNumber` | string \| null | No | Required for carriers operating in Canada. | max length: 100 |
| `nscProvince` | string \| null | No | Required for carriers operating in Canada. | max length: 100 |
| `gstHstNumber` | string \| null | No | - | max length: 100 |
| `defaultCurrency` | string | No | - | one of: USD, CAD, MXN; default: "USD" |

#### Example input

```json
{
  "carrierId": "<carrierId>"
}
```

#### Result

The tool returns the canonical `ark.update_carrier` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_update_carrier_ach_file_status

`ark.update_carrier_ach_file_status`

Update a visible ARK carrier ACH/NACHA batch status after bank upload, processing, or rejection. This does not move linked carrier payments back to READY.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:read`, `billing:write` |
| ARK permissions | `canViewLoads`, `canViewBilling`, `canMakeAdjustments` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `nachaFileId` | string | Yes | NACHA file ID returned by ACH generation or listing. | format: uuid |
| `status` | string | Yes | New ACH/NACHA batch status. | one of: GENERATED, UPLOADED, PROCESSED, REJECTED |

#### Example input

```json
{
  "nachaFileId": "<nachaFileId>",
  "status": "GENERATED"
}
```

#### Result

The tool returns the canonical `ark.update_carrier_ach_file_status` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_update_carrier_payment_due_date

`ark.update_carrier_payment_due_date`

Update the due date for an unpaid ARK carrier payment tied to a visible load dispatch.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:read`, `billing:write` |
| ARK permissions | `canViewLoads`, `canViewBilling`, `canMakeAdjustments` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `loadId` | string | Yes | Visible ARK load ID whose carrier payment due date should be updated. | format: uuid |
| `dispatchId` | string | Yes | Visible dispatch ID for the carrier payment. | format: uuid |
| `carrierPaymentId` | string | No | Optional carrier payment ID. Omit to use the carrier payment for the load dispatch. | format: uuid |
| `dueDate` | string | Yes | New due date in YYYY-MM-DD format. | - |

#### Example input

```json
{
  "loadId": "<loadId>",
  "dispatchId": "<dispatchId>",
  "dueDate": "<dueDate>"
}
```

#### Result

The tool returns the canonical `ark.update_carrier_payment_due_date` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_update_carrier_vendor_invoice_number

`ark.update_carrier_vendor_invoice_number`

Update the vendor invoice number for a DELIVERED or READY ARK carrier payment tied to a visible load dispatch.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:read`, `billing:write` |
| ARK permissions | `canViewLoads`, `canViewBilling`, `canMakeAdjustments` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `loadId` | string | Yes | Visible ARK load ID whose carrier vendor invoice number should be updated. | format: uuid |
| `dispatchId` | string | Yes | Visible dispatch ID for the carrier payment. | format: uuid |
| `carrierPaymentId` | string | No | Optional carrier payment ID. Omit to use the carrier payment for the load dispatch. | format: uuid |
| `vendorInvoiceNumber` | string \| null | Yes | Vendor invoice number to save. Use null to clear it. | max length: 100 |

#### Example input

```json
{
  "loadId": "<loadId>",
  "dispatchId": "<dispatchId>",
  "vendorInvoiceNumber": "<vendorInvoiceNumber>"
}
```

#### Result

The tool returns the canonical `ark.update_carrier_vendor_invoice_number` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_update_carrier_vendor_invoice_numbers

`ark.update_carrier_vendor_invoice_numbers`

Update vendor invoice numbers for selected DELIVERED or READY ARK carrier payments in one billing-grid workflow.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:read`, `billing:write` |
| ARK permissions | `canViewLoads`, `canViewBilling`, `canMakeAdjustments` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `payments` | array<object> | Yes | Carrier payment vendor invoice number updates to apply in one AP workflow. | min items: 1; max items: 100 |
| `payments[]` | object | Yes | - | - |
| `payments[].carrierPaymentId` | string | Yes | Visible DELIVERED or READY carrier payment ID. | format: uuid |
| `payments[].vendorInvoiceNumber` | string \| null | Yes | Vendor invoice number to save. Use null or an empty string to clear it. | max length: 100 |

#### Example input

```json
{
  "payments": [
    {
      "carrierPaymentId": "<carrierPaymentId>",
      "vendorInvoiceNumber": "<vendorInvoiceNumber>"
    }
  ]
}
```

#### Result

The tool returns the canonical `ark.update_carrier_vendor_invoice_numbers` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_update_customer

`ark.update_customer`

Update a visible ARK customer profile and optionally replace its visible team mappings.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `customers:write` |
| ARK permissions | `canEditCustomer` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `customerId` | string | Yes | Visible ARK customer ID. | format: uuid |
| `name` | string | No | Customer name. | min length: 2; max length: 200 |
| `code` | string \| null | No | Optional customer code. | max length: 50 |
| `type` | string \| null | No | Optional customer type. | max length: 50 |
| `country` | string | No | - | one of: USA, CAN, MEX; default: "USA" |
| `defaultCurrency` | string | No | - | one of: USD, CAD, MXN; default: "USD" |
| `trackingEmail` | string \| null | No | Tracking email or delimited email list. | max length: 500 |
| `notes` | string \| null | No | - | max length: 5000 |
| `businessHoursOpen` | string \| null | No | - | max length: 50 |
| `businessHoursClose` | string \| null | No | - | max length: 50 |
| `paymentTermId` | string \| null | No | Optional payment term ID. | format: uuid |
| `defaultInvoiceRemitProfileId` | string \| null | No | Optional customer-specific invoice remit profile ID. Use null to inherit the organization default. | format: uuid |

#### Example input

```json
{
  "customerId": "<customerId>"
}
```

#### Result

The tool returns the canonical `ark.update_customer` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_update_dispatch

`ark.update_dispatch`

Update an existing ARK dispatch carrier, dispatcher, driver, equipment, currency, and optional dispatch pay, then reconcile tracking and QuickBooks side effects.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:dispatch` |
| ARK permissions | `canAssignLoads` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_send |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | true |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `loadId` | string | Yes | Visible ARK load ID to dispatch. | format: uuid |
| `carrierId` | string | Yes | Active organization carrier ID to book on the load. | format: uuid |
| `dispatcher` | object | Yes | - | - |
| `dispatcher.id` | string \| null | No | Existing ARK dispatcher or driver ID when known. | format: uuid |
| `dispatcher.firstName` | string | Yes | - | min length: 1; max length: 100 |
| `dispatcher.lastName` | string \| null | No | - | max length: 100 |
| `dispatcher.email` | string | Yes | - | format: email; max length: 500 |
| `dispatcher.phone` | string \| null | No | - | max length: 50 |
| `driver` | object \| null | Yes | Current driver details, or null to explicitly clear the driver. | - |
| `truckNumber` | string \| null | Yes | - | max length: 100 |
| `trailerNumber` | string \| null | Yes | - | max length: 100 |
| `dispatchPay` | array<object> | No | Optional replacement dispatch pay items. Omit to leave dispatch pay unchanged. | max items: 100 |
| `dispatchPay[]` | object | No | - | - |
| `dispatchPay[].id` | string | No | - | format: uuid |
| `dispatchPay[].name` | string | No | Carrier-facing charge name. | min length: 1; max length: 200 |
| `dispatchPay[].price` | number \| null | No | - | - |
| `dispatchPay[].rateType` | string \| null | No | - | max length: 50 |
| `dispatchPay[].unitPrice` | number \| null | No | - | - |
| `dispatchPay[].quantity` | number \| null | No | - | - |
| `dispatchPay[].uom` | string \| null | No | - | max length: 50 |
| `dispatchId` | string | Yes | Visible ARK dispatch ID to update. | format: uuid |
| `carrierCurrency` | string | Yes | Current carrier currency to preserve or explicitly change. | one of: USD, CAD, MXN |
| `updateTracking` | boolean | No | Explicitly update active tracking provider data after the dispatch changes. | default: false |
| `queueQuickBooksSync` | boolean | No | Explicitly queue a QuickBooks carrier bill update when a mapped bill is updateable. | default: false |

#### Example input

```json
{
  "loadId": "<loadId>",
  "carrierId": "<carrierId>",
  "dispatcher": {
    "firstName": "<firstName>",
    "email": "<email>"
  },
  "driver": {},
  "truckNumber": "<truckNumber>",
  "trailerNumber": "<trailerNumber>",
  "dispatchId": "<dispatchId>",
  "carrierCurrency": "USD"
}
```

#### Result

The tool returns the canonical `ark.update_dispatch` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_update_edi_partner_connection

`ark.update_edi_partner_connection`

Update an EDI partner connection status, transport identifiers, AS2/ISA/GS routing values, and setup notes.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `edi:write` |
| ARK permissions | `canAdminEdi` |
| Team visibility | Not entity-scoped |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `connectionId` | string | Yes | EDI partner assignment ID. | format: uuid |
| `partnerDisplayName` | string | No | - | min length: 1; max length: 200 |
| `requestNotes` | string \| null | No | - | max length: 5000 |
| `onboardingStatus` | string | No | - | one of: requested, internal_review, testing, active, suspended, error, archived |
| `transportStatus` | string | No | - | one of: pending, configured, testing, active, suspended, error |
| `assignmentStatus` | string | No | - | one of: active, suspended, archived |
| `serverKey` | string \| null | No | - | max length: 200 |
| `agreementId` | string \| null | No | - | max length: 200 |
| `connectorId` | string \| null | No | - | max length: 200 |
| `inboundAs2Identity` | string \| null | No | - | max length: 200 |
| `outboundAs2Identity` | string \| null | No | - | max length: 200 |
| `isaSenderId` | string \| null | No | - | max length: 50 |
| `isaReceiverId` | string \| null | No | - | max length: 50 |
| `gsSenderId` | string \| null | No | - | max length: 50 |
| `gsReceiverId` | string \| null | No | - | max length: 50 |
| `routingDiscriminator` | string \| null | No | - | max length: 100 |

#### Example input

```json
{
  "connectionId": "<connectionId>"
}
```

#### Result

The tool returns the canonical `ark.update_edi_partner_connection` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_update_factoring_company

`ark.update_factoring_company`

Update an ARK factoring company and set or clear sensitive payment fields without echoing them back.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `factoring:write` |
| ARK permissions | `canEditFactoring` |
| Team visibility | Not entity-scoped |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `factoringCompanyId` | string | Yes | ARK factoring company ID. | format: uuid |
| `active` | boolean | No | - | default: true |
| `name` | string | No | Factoring company name. | min length: 1; max length: 200 |
| `notes` | string \| null | No | - | max length: 5000 |
| `billingAddress` | object \| null | No | Optional billing address. Omit to leave unchanged on updates. | - |
| `federalTaxId` | string \| null | No | Sensitive tax ID to set. Use null to clear; value is never returned. | max length: 100 |
| `paymentMethod` | string \| null | No | - | max length: 50 |
| `paymentTermId` | string | No | - | format: uuid |
| `bankName` | string \| null | No | - | max length: 100 |
| `bankType` | string \| null | No | - | max length: 50 |
| `bankAccountNum` | string \| null | No | Sensitive bank account number to set. Use null to clear; value is never returned. | max length: 100 |
| `bankRoutingNum` | string \| null | No | Sensitive 9-digit routing number to set. Use null to clear; value is never returned. | max length: 50 |

#### Example input

```json
{
  "factoringCompanyId": "<factoringCompanyId>"
}
```

#### Result

The tool returns the canonical `ark.update_factoring_company` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_update_integration_settings

`ark.update_integration_settings`

Update organization-level ARK Tracking, DAT, Sylectus, MacroPoint, TruckerTools, MyCarrierPortal, RMIS, or Highway settings and credentials.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `admin:write` |
| ARK permissions | None |
| Team visibility | Not entity-scoped |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | true |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `provider` | string | Yes | Integration provider to update. | one of: ark_tracking, dat, highway, macropoint, mycarrierportal, rmis, sylectus, truckertools |
| `enabled` | boolean | No | Enablement flag used by ARK Tracking. | - |
| `clientId` | string | No | Provider username, service account username, Corp ID, or client identifier. | - |
| `clientSecret` | string | No | Provider password, API password, or API key secret. | - |
| `apiKey` | string | No | Provider API key for integrations such as Highway. | - |
| `config` | object | No | Provider-specific settings object. Use the provider settings docs or current settings tool for expected keys. | - |

#### Example input

```json
{
  "provider": "ark_tracking"
}
```

#### Result

The tool returns the canonical `ark.update_integration_settings` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_update_invoice_remit_profile

`ark.update_invoice_remit_profile`

Update an organization invoice remit profile and create the next version used by future customer invoice snapshots.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `billing:write` |
| ARK permissions | `canViewBilling`, `canMakeAdjustments` |
| Team visibility | Not entity-scoped |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `profileId` | string | Yes | Invoice remit profile ID to update. | format: uuid |
| `type` | string | No | Profile type. Factoring profiles require remitEmail. | one of: standard, factoring, subsidiary, other |
| `name` | string | No | Display name, such as Standard Remit or Apex Capital. | min length: 1; max length: 200 |
| `remitEmail` | string \| null | No | Email used when invoices should route to the remit profile. | format: email; max length: 500 |
| `invoiceInstructions` | string \| null | No | Remittance instructions shown on generated customer invoices. | max length: 5000 |
| `sendToRemitEmail` | boolean | No | When true, customer invoice email routing uses remitEmail. | - |
| `billingAddress` | object \| null | No | Remit mailing address. Use null to clear it. | - |
| `billingAddress.id` | string \| null | No | Existing remit address ID when updating the current address. | format: uuid |
| `billingAddress.address` | string \| null | No | - | max length: 500 |
| `billingAddress.address2` | string \| null | No | - | max length: 500 |
| `billingAddress.city` | string \| null | No | - | max length: 200 |
| `billingAddress.state` | string \| null | No | - | max length: 20 |
| `billingAddress.zip` | string \| null | No | - | max length: 30 |
| `billingAddress.country` | string \| null | No | - | one of: USA, CAN, MEX, null |
| `billingAddress.phone` | string \| null | No | - | max length: 50 |
| `billingAddress.fax` | string \| null | No | - | max length: 50 |
| `billingAddress.email` | string \| null | No | - | max length: 500 |

#### Example input

```json
{
  "profileId": "<profileId>"
}
```

#### Result

The tool returns the canonical `ark.update_invoice_remit_profile` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_update_load_board_user_connection

`ark.update_load_board_user_connection`

Validate or save the current user DAT or Sylectus load-board seat connection used by posting workflows.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:write` |
| ARK permissions | `canEditLoad` |
| Team visibility | Not entity-scoped |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | true |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `provider` | string | Yes | Load-board provider connection to update for the current user. | one of: dat, sylectus |
| `username` | string | No | DAT username when provider is dat. | min length: 1; max length: 200 |
| `sylectusUserId` | string | No | Sylectus user ID when provider is sylectus. | min length: 1; max length: 200 |

#### Example input

```json
{
  "provider": "dat"
}
```

#### Result

The tool returns the canonical `ark.update_load_board_user_connection` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_update_load_board_user_mappings

`ark.update_load_board_user_mappings`

Save DAT usernames or Sylectus user IDs for ARK users so posting workflows use the right load-board seat.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `admin:write` |
| ARK permissions | None |
| Team visibility | Not entity-scoped |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `provider` | string | Yes | Load-board provider whose ARK user seat mappings should be updated. | one of: dat, sylectus |
| `mappings` | array<object> | Yes | - | min items: 1; max items: 500 |
| `mappings[]` | object | Yes | - | - |
| `mappings[].userId` | string | Yes | ARK user ID to map to a provider seat. | format: uuid |
| `mappings[].externalUserId` | string | No | DAT username or Sylectus user ID. Use an empty string to clear the mapping. | default: ""; max length: 200 |

#### Example input

```json
{
  "provider": "dat",
  "mappings": [
    {
      "userId": "<userId>"
    }
  ]
}
```

#### Result

The tool returns the canonical `ark.update_load_board_user_mappings` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_update_load_details

`ark.update_load_details`

Update a visible ARK load revision, including customer, team, reps, commodity, dimensions, currencies, customer-pay lines, and optional full stop replacement.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:write` |
| ARK permissions | `canEditLoad` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `loadId` | string | Yes | Visible ARK load ID. | format: uuid |
| `customerId` | string \| null | No | Customer ID to assign to the load, or null to clear. | format: uuid |
| `teamId` | string | No | Visible team ID to assign to the load. | format: uuid |
| `brokerId` | string \| null | No | - | format: uuid |
| `customerServiceRepId` | string \| null | No | - | format: uuid |
| `temperature` | number \| null | No | - | - |
| `internalComments` | string \| null | No | - | max length: 5000 |
| `externalComments` | string \| null | No | - | max length: 5000 |
| `hotComments` | string \| null | No | - | max length: 5000 |
| `pickupNumber` | string \| null | No | - | max length: 100 |
| `purchaseOrderNumber` | string \| null | No | - | max length: 100 |
| `billOfLading` | string \| null | No | - | max length: 100 |
| `product` | string \| null | No | - | max length: 200 |
| `value` | number \| null | No | - | - |
| `description` | string \| null | No | - | max length: 5000 |
| `size` | string \| null | No | - | max length: 100 |
| `trailer` | string \| null | No | - | max length: 100 |
| `weight` | number \| null | No | - | - |
| `weightUnit` | string | No | - | one of: lbs, kg |
| `length` | number \| null | No | - | - |
| `width` | number \| null | No | - | - |
| `height` | number \| null | No | - | - |
| `numberOfPieces` | integer \| null | No | - | min: 0 |
| `hazmat` | boolean | No | - | - |
| `docHigh` | boolean | No | - | - |
| `stackable` | boolean | No | - | - |
| `tsa` | boolean | No | - | - |
| `teamDriverRequired` | boolean | No | - | - |
| `miles` | number \| null | No | - | min: 0 |
| `maximumBuyAmount` | number \| null | No | Maximum carrier buy amount for load-board and market-intelligence workflows. | min: 0 |
| `customerCurrency` | string | No | - | one of: USD, CAD, MXN |
| `carrierCurrency` | string | No | - | one of: USD, CAD, MXN |
| `customerPay` | array<object> | No | Replacement customer-pay lines. Omit to leave customer pay unchanged. | max items: 100 |
| `customerPay[]` | object | No | - | - |
| `customerPay[].id` | string | No | Existing customer-pay line ID. Omit to create a new line. | format: uuid |
| `customerPay[].name` | string | No | - | min length: 1; max length: 200 |
| `customerPay[].price` | number \| null | No | - | - |
| `customerPay[].rateType` | string \| null | No | - | max length: 50 |
| `customerPay[].unitPrice` | number \| null | No | - | - |
| `customerPay[].quantity` | number \| null | No | - | - |
| `customerPay[].uom` | string \| null | No | - | max length: 50 |
| `stops` | array<object> | No | Replacement stop list. Omit to leave stops unchanged. | min items: 2; max items: 50 |
| `stops[]` | object | No | - | - |
| `stops[].id` | string | No | Existing stop ID. Omit to create a new stop. | format: uuid |
| `stops[].locationId` | string | No | - | format: uuid |
| `stops[].index` | integer | No | - | min: 0 |
| `stops[].type` | string | No | - | min length: 1; max length: 50 |
| `stops[].referenceNumber` | string \| null | No | - | max length: 100 |
| `stops[].pieces` | integer \| null | No | - | min: 0 |
| `stops[].arrivalTime` | string \| null | No | - | format: date-time |
| `stops[].arrivalTime2` | string \| null | No | - | format: date-time |
| `stops[].weight` | number \| null | No | - | min: 0 |
| `stops[].comment` | string \| null | No | - | max length: 5000 |
| `stops[].schedulingType` | string \| null | No | - | one of: fcfs, appointment, null |
| `stops[].milesToNextStop` | number \| null | No | - | min: 0 |
| `stops[].durationToNextStopSeconds` | integer \| null | No | - | min: 0 |

#### Example input

```json
{
  "loadId": "<loadId>"
}
```

#### Result

The tool returns the canonical `ark.update_load_details` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_update_load_stop

`ark.update_load_stop`

Update a visible ARK load stop schedule, reference number, pieces, weight, or comment.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:write` |
| ARK permissions | `canEditLoad` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `loadId` | string | Yes | Visible ARK load ID. | format: uuid |
| `stopId` | string | Yes | Visible ARK load stop ID. | format: uuid |
| `arrivalTime` | string \| null | No | Scheduled start time for the stop window. | format: date-time |
| `arrivalTime2` | string \| null | No | Scheduled end time for the stop window. | format: date-time |
| `schedulingType` | string \| null | No | Stop scheduling mode. | one of: fcfs, appointment, null |
| `referenceNum` | string \| null | No | Stop reference number. | max length: 100 |
| `pieces` | integer \| null | No | - | min: 0 |
| `weight` | number \| null | No | - | min: 0 |
| `comment` | string \| null | No | - | max length: 5000 |

#### Example input

```json
{
  "loadId": "<loadId>",
  "stopId": "<stopId>"
}
```

#### Result

The tool returns the canonical `ark.update_load_stop` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_update_location

`ark.update_location`

Update a visible ARK location profile, address fields, notes, and customer link.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `locations:write` |
| ARK permissions | `canEditLocation` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `locationId` | string | Yes | Visible ARK location ID. | format: uuid |
| `customerId` | string \| null | No | Optional customer linked to this location. | format: uuid |
| `name` | string | No | - | min length: 1; max length: 200 |
| `company` | string \| null | No | - | max length: 200 |
| `address` | string \| null | No | - | max length: 500 |
| `address2` | string \| null | No | - | max length: 500 |
| `city` | string \| null | No | - | max length: 200 |
| `state` | string \| null | No | - | max length: 20 |
| `zip` | string \| null | No | - | max length: 30 |
| `phone` | string \| null | No | - | max length: 50 |
| `email` | string \| null | No | - | max length: 500 |
| `notes` | string \| null | No | - | max length: 5000 |
| `internalNotes` | string \| null | No | - | max length: 5000 |
| `latitude` | number \| null | No | - | - |
| `longitude` | number \| null | No | - | - |
| `timezoneId` | string \| null | No | - | max length: 100 |
| `country` | string | No | - | one of: USA, CAN, MEX; default: "USA" |

#### Example input

```json
{
  "locationId": "<locationId>"
}
```

#### Result

The tool returns the canonical `ark.update_location` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_update_organization_settings

`ark.update_organization_settings`

Update tenant-admin organization profile fields, billing profile fields, and operational toggles. Use partial patches; payment fields require billing:write.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `admin:write` |
| ARK permissions | None |
| Team visibility | Not entity-scoped |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `name` | string | No | - | min length: 1; max length: 200 |
| `mcNumber` | string \| null | No | - | max length: 50 |
| `dotNumber` | string \| null | No | - | max length: 50 |
| `address` | object \| null | No | Primary address patch. Set to null to clear the organization address. | - |
| `billingAddress` | object \| null | No | Billing address patch. Set to null to clear the billing address. | - |
| `invoiceContact` | string \| null | No | Invoice email address or fax number. | max length: 500 |
| `invoiceInstructions` | string \| null | No | - | max length: 5000 |
| `rateconTerms` | string \| null | No | - | max length: 5000 |
| `payment` | object | No | - | - |
| `payment.federalTaxId` | string \| null | No | - | max length: 100 |
| `payment.bankName` | string \| null | No | - | max length: 100 |
| `payment.bankAccountName` | string \| null | No | - | max length: 100 |
| `payment.bankAccountType` | string \| null | No | - | max length: 50 |
| `payment.bankAccountNumber` | string \| null | No | - | max length: 100 |
| `payment.bankRoutingNumber` | string \| null | No | Nine-digit ACH routing number. Requires billing:write. | - |
| `payment.nachaDiscretionaryData` | string \| null | No | - | max length: 20 |
| `payment.nachaCompanyId` | string \| null | No | - | max length: 10 |
| `settings` | object | No | - | - |
| `settings.requireDriverOnEsign` | boolean | No | - | - |
| `settings.forceImportedCarriersInactive` | boolean | No | - | - |
| `settings.loadLocksEnabled` | boolean | No | - | - |
| `settings.loadLockDurationMinutes` | integer | No | - | min: 1; max: 60 |
| `settings.recalculateCarrierDueDateOnReady` | boolean | No | - | - |
| `settings.multiCurrencyEnabled` | boolean | No | - | - |
| `settings.showCarrierOnboardingPanel` | boolean | No | - | - |
| `settings.randomizedLoadNumbersEnabled` | boolean | No | Internal-admin only. | - |

#### Example input

```json
{}
```

#### Result

The tool returns the canonical `ark.update_organization_settings` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_update_person

`ark.update_person`

Update a carrier driver or dispatcher contact profile and optional carrier link.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `people:write` |
| ARK permissions | `canEditPerson` |
| Team visibility | Not entity-scoped |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `personId` | string | Yes | ARK person ID returned by people search/get. | format: uuid |
| `type` | string | Yes | Create or update a carrier driver or dispatcher contact. | one of: driver, dispatcher |
| `carrierId` | string | No | Carrier ID this person should be linked to. | format: uuid |
| `firstName` | string \| null | No | - | max length: 100 |
| `lastName` | string \| null | No | - | max length: 100 |
| `email` | string \| null | No | - | max length: 500 |
| `phone` | string \| null | No | - | max length: 50 |
| `notes` | string \| null | No | - | max length: 5000 |

#### Example input

```json
{
  "personId": "<personId>",
  "type": "driver"
}
```

#### Result

The tool returns the canonical `ark.update_person` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_update_pod_review_status

`ark.update_pod_review_status`

Approve, reject, request revision, or reset review status for a visible proof-of-delivery document.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:read`, `billing:write` |
| ARK permissions | `canViewLoads`, `canViewBilling`, `canMakeAdjustments` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `reviewId` | string | No | Existing document review ID. Provide either reviewId or fileId. | format: uuid |
| `fileId` | string | No | POD file ID when no review exists yet. Provide either reviewId or fileId. | format: uuid |
| `status` | string | Yes | - | one of: pending_review, approved, rejected, revision_required |
| `approvalNotes` | string \| null | No | - | max length: 5000 |
| `rejectionReason` | string \| null | No | Required for rejected and revision_required statuses. | max length: 5000 |
| `priority` | integer | No | - | min: 1; max: 5 |

#### Example input

```json
{
  "status": "pending_review"
}
```

#### Result

The tool returns the canonical `ark.update_pod_review_status` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_update_project44_settings

`ark.update_project44_settings`

Update ARK project44 forwarding enablement and organization-level shipment identifier settings.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `admin:write` |
| ARK permissions | None |
| Team visibility | Not entity-scoped |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `enabled` | boolean | Yes | Whether project44 forwarding is enabled for the organization. | - |
| `config` | object | No | - | - |
| `config.defaultShipmentIdentifierType` | string | No | project44 shipment identifier type. | one of: BILL_OF_LADING, ORDER |
| `config.defaultShipmentIdentifierSource` | string | No | ARK load field used as the project44 shipment identifier. | one of: bill_of_lading, pickup_number, purchase_order_number, load_number |
| `config.positionThrottleSeconds` | integer | No | Minimum seconds between forwarded POSITION events. | min: 1 |
| `config.carrierIdentifierType` | string | No | project44 carrier identifier type. | one of: SCAC, DOT_NUMBER, MC_NUMBER, P44_EU |
| `config.carrierIdentifierValue` | string | No | project44 carrier identifier value required when forwarding is enabled. | max length: 200 |

#### Example input

```json
{
  "enabled": false
}
```

#### Result

The tool returns the canonical `ark.update_project44_settings` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_update_quickbooks_carrier_mappings

`ark.update_quickbooks_carrier_mappings`

Update or clear ARK carrier to QuickBooks vendor mappings using the same conflict checks as the QuickBooks settings UI.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `billing:write` |
| ARK permissions | `canViewBilling`, `canMakeAdjustments` |
| Team visibility | Not entity-scoped |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `mappings` | array<object> | Yes | - | min items: 1; max items: 500 |
| `mappings[]` | object | Yes | - | - |
| `mappings[].tmsEntityId` | string | Yes | ARK customer or carrier ID. | format: uuid |
| `mappings[].qboEntityId` | string \| null | Yes | QuickBooks customer/vendor ID, or null to clear the mapping. | min length: 1; max length: 100 |
| `mappings[].previousQboEntityId` | string \| null | No | Expected current QuickBooks entity ID for optimistic conflict checks. Use null when expecting no existing mapping. | min length: 1; max length: 100 |

#### Example input

```json
{
  "mappings": [
    {
      "tmsEntityId": "<tmsEntityId>",
      "qboEntityId": "<qboEntityId>"
    }
  ]
}
```

#### Result

The tool returns the canonical `ark.update_quickbooks_carrier_mappings` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_update_quickbooks_customer_mappings

`ark.update_quickbooks_customer_mappings`

Update or clear ARK customer to QuickBooks customer mappings using the same conflict checks as the QuickBooks settings UI.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `billing:write` |
| ARK permissions | `canViewBilling`, `canMakeAdjustments` |
| Team visibility | Not entity-scoped |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `mappings` | array<object> | Yes | - | min items: 1; max items: 500 |
| `mappings[]` | object | Yes | - | - |
| `mappings[].tmsEntityId` | string | Yes | ARK customer or carrier ID. | format: uuid |
| `mappings[].qboEntityId` | string \| null | Yes | QuickBooks customer/vendor ID, or null to clear the mapping. | min length: 1; max length: 100 |
| `mappings[].previousQboEntityId` | string \| null | No | Expected current QuickBooks entity ID for optimistic conflict checks. Use null when expecting no existing mapping. | min length: 1; max length: 100 |

#### Example input

```json
{
  "mappings": [
    {
      "tmsEntityId": "<tmsEntityId>",
      "qboEntityId": "<qboEntityId>"
    }
  ]
}
```

#### Result

The tool returns the canonical `ark.update_quickbooks_customer_mappings` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_update_quickbooks_settings

`ark.update_quickbooks_settings`

Update ARK QuickBooks accounting settings, charge mappings, tax-code mappings, payment accounts, terms, and custom field mappings while preserving connected tokens.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `billing:write` |
| ARK permissions | `canViewBilling`, `canMakeAdjustments` |
| Team visibility | Not entity-scoped |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `autoSync` | boolean | No | - | - |
| `customerOnBill` | boolean | No | - | - |
| `printChecksFromQuickBooks` | boolean | No | - | - |
| `bankAccountId` | string | No | - | max length: 100 |
| `customerPaymentAccountId` | string | No | - | max length: 100 |
| `invoiceTermsId` | string | No | - | max length: 100 |
| `defaultBillingTermsId` | string | No | - | max length: 100 |
| `vendorMapping` | object | No | - | - |
| `customerMapping` | object | No | - | - |
| `taxCodeMapping` | object | No | - | - |
| `taxCodeMapping.customer` | object | No | - | - |
| `taxCodeMapping.vendor` | object | No | - | - |
| `customFields` | object | No | - | - |
| `customFields.bills` | object | No | - | - |
| `customFields.bills.loadNumberFieldId` | string | No | - | max length: 100 |
| `customFields.bills.loadNumberFieldName` | string | No | - | max length: 100 |
| `customFields.bills.referenceNumberFieldId` | string | No | - | max length: 100 |
| `customFields.bills.referenceNumberFieldName` | string | No | - | max length: 100 |
| `customFields.invoices` | object | No | - | - |
| `customFields.invoices.loadNumberFieldId` | string | No | - | max length: 100 |
| `customFields.invoices.loadNumberFieldName` | string | No | - | max length: 100 |
| `customFields.invoices.referenceNumberFieldId` | string | No | - | max length: 100 |
| `customFields.invoices.referenceNumberFieldName` | string | No | - | max length: 100 |

#### Example input

```json
{}
```

#### Result

The tool returns the canonical `ark.update_quickbooks_settings` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_update_spot_quote

`ark.update_spot_quote`

Update customer, freight, reference, schedule, and stop details on a visible active spot quote.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:write` |
| ARK permissions | `canEditLoad` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `spotQuoteId` | string | Yes | Visible active spot quote ID. | format: uuid |
| `customerId` | string | No | ARK customer ID for the spot quote. | format: uuid |
| `customerEmail` | string \| null | No | - | format: email; max length: 254 |
| `currency` | string | No | - | one of: USD, CAD, MXN |
| `referenceNumber` | string \| null | No | - | max length: 100 |
| `loadClassification` | string \| null | No | - | max length: 100 |
| `sylectusLoadType` | integer \| null | No | - | - |
| `vehicleType` | string \| null | No | - | max length: 100 |
| `pieces` | integer \| null | No | - | min: 1 |
| `dimensionsLength` | number \| null | No | - | - |
| `dimensionsWidth` | number \| null | No | - | - |
| `dimensionsHeight` | number \| null | No | - | - |
| `dimensionsUnit` | string | No | - | one of: inches, feet |
| `weight` | number \| null | No | - | - |
| `weightUnit` | string | No | - | one of: lbs, kg |
| `stackable` | boolean | No | - | - |
| `hazmat` | boolean | No | - | - |
| `dockHigh` | boolean | No | - | - |
| `teamDriverRequired` | boolean | No | - | - |
| `tsa` | boolean | No | - | - |
| `notesInternal` | string \| null | No | - | max length: 5000 |
| `notesExternal` | string \| null | No | - | max length: 5000 |
| `distanceMiles` | number \| null | No | - | - |
| `stops` | array<object> | No | - | min items: 2; max items: 50 |
| `stops[]` | object | No | - | - |
| `stops[].id` | string | No | Existing stop ID when updating an existing stop. | format: uuid |
| `stops[].sequenceIndex` | integer | No | - | min: 0 |
| `stops[].type` | string | No | - | one of: pickup, drop_off |
| `stops[].city` | string | No | - | min length: 1; max length: 200 |
| `stops[].state` | string | No | - | min length: 1; max length: 50 |
| `stops[].zip` | string \| null | No | - | max length: 30 |
| `stops[].arrivalTime` | string \| null | No | Optional scheduled arrival timestamp. | - |
| `stops[].arrivalTime2` | string \| null | No | Optional scheduled arrival window end timestamp. | - |
| `stops[].timezone` | string \| null | No | - | max length: 100 |
| `stops[].deliveryType` | string \| null | No | - | one of: asap, direct, null |
| `stops[].milesToNextStop` | number \| null | No | - | min: 0 |
| `stops[].durationToNextStopSeconds` | integer \| null | No | - | min: 0 |

#### Example input

```json
{
  "spotQuoteId": "<spotQuoteId>"
}
```

#### Result

The tool returns the canonical `ark.update_spot_quote` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_update_spot_quote_bid

`ark.update_spot_quote_bid`

Update carrier, DOT, MC, price, price-per-mile, or deadhead details on a visible pending spot quote bid.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:write` |
| ARK permissions | `canEditLoad` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `bidId` | string | Yes | Visible pending spot quote bid ID. | format: uuid |
| `carrierId` | string \| null | No | Carrier ID when the carrier already exists in ARK. | format: uuid |
| `carrierName` | string | No | - | min length: 1; max length: 200 |
| `dotNumber` | string | No | Carrier DOT number. | min length: 1; max length: 30 |
| `mcNumber` | string \| null | No | - | max length: 30 |
| `price` | number | No | - | - |
| `pricePerMile` | number \| null | No | - | - |
| `distanceDeadheadMiles` | number \| null | No | - | min: 0 |

#### Example input

```json
{
  "bidId": "<bidId>"
}
```

#### Result

The tool returns the canonical `ark.update_spot_quote_bid` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_update_team

`ark.update_team`

Update an organization team profile and optional team address for admin setup.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `admin:write` |
| ARK permissions | None |
| Team visibility | Not entity-scoped |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `teamId` | string | Yes | Team ID to update. | format: uuid |
| `name` | string | No | Replacement team name. | min length: 1; max length: 200 |
| `notes` | string \| null | No | - | max length: 5000 |
| `address` | object | No | - | - |
| `address.address` | string \| null | No | - | max length: 500 |
| `address.address2` | string \| null | No | - | max length: 500 |
| `address.city` | string \| null | No | - | max length: 200 |
| `address.state` | string \| null | No | - | max length: 50 |
| `address.zip` | string \| null | No | - | max length: 30 |
| `address.phone` | string \| null | No | - | max length: 50 |
| `address.email` | string \| null | No | - | max length: 500 |
| `address.country` | string | No | ISO 3166-1 alpha-3 country code. | one of: USA, CAN, MEX |

#### Example input

```json
"<input>"
```

#### Result

The tool returns the canonical `ark.update_team` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_update_tracking

`ark.update_tracking`

Update timing, notification, notes, driver, equipment, or reefer settings on an active load tracking session.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:dispatch` |
| ARK permissions | `canAssignLoads` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_send |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | true |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `loadId` | string | Yes | Visible ARK load ID. | format: uuid |
| `provider` | string | No | Optional tracking provider. Omit to use ARK provider selection. | one of: macropoint, truckertools, internal |
| `trackingId` | string | No | Optional active provider tracking ID for update or stop. | max length: 200 |
| `trackStartDateTime` | string | No | Tracking start date/time. Required for MacroPoint start. | max length: 100 |
| `trackDurationHours` | number | No | - | min: 1; max: 720 |
| `trackIntervalMinutes` | integer | No | - | min: 5; max: 1440 |
| `emailCopiesTo` | string \| null | No | - | max length: 1000 |
| `notes` | string \| null | No | - | max length: 5000 |
| `minTemp` | number \| null | No | - | - |
| `maxTemp` | number \| null | No | - | - |
| `tempUoM` | string | No | - | one of: fahrenheit, celsius |

#### Example input

```json
{
  "loadId": "<loadId>"
}
```

#### Result

The tool returns the canonical `ark.update_tracking` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_update_user

`ark.update_user`

Update an organization user name and email for admin user management.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `admin:write` |
| ARK permissions | None |
| Team visibility | Not entity-scoped |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `userId` | string | Yes | Organization user ID to update. | format: uuid |
| `email` | string | No | Replacement user email address. | format: email; max length: 320 |
| `firstName` | string | No | Replacement user first name. | min length: 2; max length: 100 |
| `lastName` | string | No | Replacement user last name. | min length: 2; max length: 100 |

#### Example input

```json
"<input>"
```

#### Result

The tool returns the canonical `ark.update_user` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_update_user_commission_settings

`ark.update_user_commission_settings`

Update default role commissions and optionally replace customer-specific commission overrides for an organization user.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `admin:write` |
| ARK permissions | None |
| Team visibility | Not entity-scoped |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `userId` | string | Yes | Organization user ID whose commission settings should be updated. | format: uuid |
| `roleCommissions` | array<object> | No | Default role commission updates. Omitted roles are left unchanged. | max items: 4 |
| `roleCommissions[]` | object | No | - | - |
| `roleCommissions[].role` | string | No | Load role whose default commission should be updated. | one of: Broker, Sales Rep, Customer Service Rep, Manager |
| `roleCommissions[].marginPercentage` | number | No | - | default: 0; min: 0; max: 100 |
| `roleCommissions[].revenuePercentage` | number | No | - | default: 0; min: 0; max: 100 |
| `roleCommissions[].flatRate` | number | No | - | default: 0; min: 0 |
| `overrides` | array<object> | No | Full replacement customer-specific override set. Use an empty array to clear overrides. | max items: 500 |
| `overrides[]` | object | No | - | - |
| `overrides[].customerId` | string | No | Organization customer ID for the commission override. | format: uuid |
| `overrides[].role` | string | No | Load role this customer-specific override applies to. | one of: Broker, Sales Rep, Customer Service Rep, Manager |
| `overrides[].marginPercentage` | number \| null | No | - | default: null; min: 0; max: 100 |
| `overrides[].revenuePercentage` | number \| null | No | - | default: null; min: 0; max: 100 |
| `overrides[].flatRate` | number \| null | No | - | default: null; min: 0 |

#### Example input

```json
"<input>"
```

#### Result

The tool returns the canonical `ark.update_user_commission_settings` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_update_user_permissions

`ark.update_user_permissions`

Replace an organization user's enabled public ARK permissions, applying category view-permission dependencies like the web UI.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `admin:write` |
| ARK permissions | None |
| Team visibility | Not entity-scoped |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `userId` | string | Yes | Organization user ID whose permissions should be replaced. | format: uuid |
| `enabledPermissionIds` | array<string> | Yes | Full replacement list of enabled public ARK permission IDs. Category view permissions are added automatically when required. | max items: 500 |
| `enabledPermissionIds[]` | string | Yes | - | format: uuid |

#### Example input

```json
{
  "userId": "<userId>",
  "enabledPermissionIds": [
    "<enabledPermissionIds>"
  ]
}
```

#### Result

The tool returns the canonical `ark.update_user_permissions` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_update_user_preferences

`ark.update_user_preferences`

Update notification and sound preferences for the connected ARK user.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `notifications:write` |
| ARK permissions | None |
| Team visibility | Not entity-scoped |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `notificationsEnabled` | boolean | No | Whether in-app notifications are enabled for the connected user. | - |
| `soundNewBid` | boolean | No | Whether to play a sound for new carrier bids. | - |
| `soundQuoteAccepted` | boolean | No | Whether to play a sound when a quote is accepted. | - |
| `soundAwardSuccess` | boolean | No | Whether to play a sound when a load is awarded successfully. | - |
| `volume` | number | No | Notification sound volume from 0 to 1. | min: 0; max: 1 |

#### Example input

```json
{}
```

#### Result

The tool returns the canonical `ark.update_user_preferences` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_upsert_load_vendor_expense

`ark.upsert_load_vendor_expense`

Create or update one Vendor Expense on a visible ARK load, optionally adding or changing the linked customer rebill charge.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:read`, `loads:write`, `billing:write` |
| ARK permissions | `canViewLoads`, `canViewBilling`, `canEditLoad`, `canMakeAdjustments` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `loadId` | string | Yes | Visible ARK load ID. | format: uuid |
| `id` | string \| null | No | Existing Vendor Expense ID when updating. | format: uuid |
| `dispatchId` | string \| null | No | Optional dispatch ID when the expense is tied to a specific carrier leg. | format: uuid |
| `category` | string | Yes | - | one of: Lumper, Insurance, Customs / Duties, Customs Broker, Transload / Crossdock, Toll, Permit, Storage, Scale Ticket, Washout, Other |
| `amount` | number | Yes | - | - |
| `vendorName` | string | Yes | - | min length: 1; max length: 200 |
| `paymentMethod` | string | Yes | - | one of: Credit Card, Check, ACH, Cash, EFS / Comcheck, Wire, E-Transfer, Other |
| `paidAt` | string \| null | No | Optional paid date or timestamp captured for the Vendor Expense. | - |
| `referenceNumber` | string \| null | No | - | max length: 200 |
| `description` | string \| null | No | - | max length: 5000 |
| `notes` | string \| null | No | - | max length: 5000 |
| `billCustomer` | boolean | No | When true, create or update the linked customer rebill charge. | default: false |
| `customerChargeName` | string \| null | No | - | max length: 200 |
| `customerChargeAmount` | number \| null | No | - | - |

#### Example input

```json
{
  "loadId": "<loadId>",
  "category": "Lumper",
  "amount": 1,
  "vendorName": "<vendorName>",
  "paymentMethod": "Credit Card"
}
```

#### Result

The tool returns the canonical `ark.upsert_load_vendor_expense` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_upsert_load_vendor_expenses

`ark.upsert_load_vendor_expenses`

Create or update multiple Vendor Expenses for one visible ARK load in a single billing-grid workflow.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:read`, `loads:write`, `billing:write` |
| ARK permissions | `canViewLoads`, `canViewBilling`, `canEditLoad`, `canMakeAdjustments` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `loadId` | string | Yes | Visible ARK load ID shared by every Vendor Expense in the batch. | format: uuid |
| `expenses` | array<object> | Yes | - | min items: 1; max items: 100 |
| `expenses[]` | object | Yes | - | - |
| `expenses[].id` | string \| null | No | Existing Vendor Expense ID when updating. | format: uuid |
| `expenses[].dispatchId` | string \| null | No | Optional dispatch ID when the expense is tied to a specific carrier leg. | format: uuid |
| `expenses[].category` | string | Yes | - | one of: Lumper, Insurance, Customs / Duties, Customs Broker, Transload / Crossdock, Toll, Permit, Storage, Scale Ticket, Washout, Other |
| `expenses[].amount` | number | Yes | - | - |
| `expenses[].vendorName` | string | Yes | - | min length: 1; max length: 200 |
| `expenses[].paymentMethod` | string | Yes | - | one of: Credit Card, Check, ACH, Cash, EFS / Comcheck, Wire, E-Transfer, Other |
| `expenses[].paidAt` | string \| null | No | Optional paid date or timestamp captured for the Vendor Expense. | - |
| `expenses[].referenceNumber` | string \| null | No | - | max length: 200 |
| `expenses[].description` | string \| null | No | - | max length: 5000 |
| `expenses[].notes` | string \| null | No | - | max length: 5000 |
| `expenses[].billCustomer` | boolean | No | When true, create or update the linked customer rebill charge. | default: false |
| `expenses[].customerChargeName` | string \| null | No | - | max length: 200 |
| `expenses[].customerChargeAmount` | number \| null | No | - | - |

#### Example input

```json
{
  "loadId": "<loadId>",
  "expenses": [
    {
      "category": "Lumper",
      "amount": 1,
      "vendorName": "<vendorName>",
      "paymentMethod": "Credit Card"
    }
  ]
}
```

#### Result

The tool returns the canonical `ark.upsert_load_vendor_expenses` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

### ark_watch_spot_quote

`ark.watch_spot_quote`

Add the connected actor as a watcher for a visible spot quote.

| Requirement | Value |
| --- | --- |
| Preview access | Expanded preview |
| Scopes | `loads:write` |
| ARK permissions | `canViewLoads` |
| Team visibility | Required and enforced |
| Approval policy | ask_before_write |
| ARK approval request | Required before execution |
| Idempotency | Required for external execution |
| Read-only | false |
| Destructive | false |
| Open-world side effect | false |
| Rate limit | OAuth MCP credential and organization budgets |

#### Input

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `spotQuoteId` | string | Yes | Visible spot quote ID. | format: uuid |

#### Example input

```json
{
  "spotQuoteId": "<spotQuoteId>"
}
```

#### Result

The tool returns the canonical `ark.watch_spot_quote` operation result in `structuredContent` and mirrors the same JSON as text. Errors set `isError: true` and return a stable error code, message, and optional details.

