# CXT Software MCP by usefulapi (remote · cxt-software.usefulapi.io)

Track and search CXT courier orders, check drivers, propose and save order and route plans.

- Trust score: 61/100 (medium)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-10-25

## Components

- remote · `cxt-software.usefulapi.io`: 61/100 (this document), [markdown](https://verifymcp.io/servers/io-usefulapi-cxt-software/cxt-software.md), [page](https://verifymcp.io/servers/io-usefulapi-cxt-software/cxt-software)

## Channel facts

- Endpoint: `https://cxt-software.usefulapi.io/mcp`
- Transports: `streamable-http`
- Auth: `required`
- Version: `1.0.3`

## Trust breakdown

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

Scored 2026-10-25.

- **Endpoint Security**: 78/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation is enforced on tool calls, advertised via RFC 9728 protected-resource metadata. Discovery is public, which costs nothing: no tool can be invoked without a token.
  - HTTPS enforcement could not be verified: the plaintext port redirected somewhere other than https, so enforcement is unproven.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
  - The authorisation server offers only Dynamic Client Registration (RFC 7591), which MCP 2026-07-28 deprecated in favour of Client ID Metadata Documents.
- **Transport & Reachability**: 0/100
  - Transport check failed: declared streamable-http, but the endpoint redirected instead of responding directly.
- **Schema Quality & AI Usability**: 74/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 2922 tokens (~208/item across 14 items; 14 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 3/100
  - Stability observed for 1 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 96/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 89% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 14 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 15 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 60/100
  - Spec-recency check failed: implements MCP spec 2025-06-18; the latest is 2026-07-28.

## Install

### How do I install the CXT Software MCP by usefulapi server?

CXT Software MCP by usefulapi is a hosted endpoint at https://cxt-software.usefulapi.io/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http io-usefulapi-cxt-software 'https://cxt-software.usefulapi.io/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "io-usefulapi-cxt-software": {
      "url": "https://cxt-software.usefulapi.io/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "io-usefulapi-cxt-software": {
      "type": "http",
      "url": "https://cxt-software.usefulapi.io/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.io-usefulapi-cxt-software]
url = "https://cxt-software.usefulapi.io/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "io-usefulapi-cxt-software": {
      "type": "remote",
      "url": "https://cxt-software.usefulapi.io/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add io-usefulapi-cxt-software --url 'https://cxt-software.usefulapi.io/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  io-usefulapi-cxt-software:
    url: "https://cxt-software.usefulapi.io/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "io-usefulapi-cxt-software": {
      "Transport": "http",
      "Url": "https://cxt-software.usefulapi.io/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add io-usefulapi-cxt-software -t streamable-http -u 'https://cxt-software.usefulapi.io/mcp'
```

### Other

```json
{
  "mcpServers": {
    "io-usefulapi-cxt-software": {
      "type": "http",
      "url": "https://cxt-software.usefulapi.io/mcp"
    }
  }
}
```

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

## Changelog

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

### 2026-10-25 (score 61, 0)

- [functional improvement] Stability: unverified → 0.03
- [functional] Server version: 1.0.0 → 1.0.3

### 2026-10-24 (score 61)

First indexed and scored.

## MCP tools (14)

### `cxt_track_shipments` (~341 tokens)

Track shipments

Track orders and route stops by tracking number: matches a parcel reference, a parcel item barcode, or Reference1/Reference2 of an order or route stop. Returns shipment summaries with status events and proof of delivery as far as the caller's permissions allow: an INET login sees the most detail; with an Operations App login this endpoint is called without credentials (CXT lists only internet users and anonymous callers for it), which returns the limited public tracking view. Costs 1 API credit with the vendor. POST /v2/Shipments/Summaries.

Input parameters:

- `begin_date` (string): A date (2026-10-01) or an ISO 8601 date-time with a timezone, e.g. 2026-10-01T08:00:00Z.
- `end_date` (string): A date (2026-10-01) or an ISO 8601 date-time with a timezone, e.g. 2026-10-01T08:00:00Z.
- `include_partial_match` (boolean): Also return partial matches (default false).
- `page_num` (integer): CXT's pageNum, documented as 'the offset for the records to return' (default 0). When has_more is true, ask for the next records and check the new page does not repeat the previous one (if it does, p…
- `page_size` (integer): Results per page, 1-1000 (default 50).
- `tracking_numbers` (array, required): Tracking numbers, references or barcodes (1-50).

### `cxt_search_shipments` (~400 tokens)

Search orders and route stops

Search orders and route stops by place, address, city, state, postal code, order template, or only by date range. tracking_type says which field search_criteria is matched against: Location (origin/destination or stop name), Address, City, State, Postal (zip or zip+4), Template (order template name), Tracking (references/barcodes) or DateOnly (no criteria: everything between begin_date and end_date). Returns shipment summaries, up to 1000 per page. An INET login sees the most detail; with an Operations App login this endpoint is called without credentials (CXT lists only internet users and anonymous callers for it), so the view is limited. Costs 1 API credit with the vendor. POST /v2/Shipments/Summaries.

Input parameters:

- `begin_date` (string): A date (2026-10-01) or an ISO 8601 date-time with a timezone, e.g. 2026-10-01T08:00:00Z.
- `end_date` (string): A date (2026-10-01) or an ISO 8601 date-time with a timezone, e.g. 2026-10-01T08:00:00Z.
- `include_partial_match` (boolean): Also return partial matches (default false).
- `page_num` (integer): CXT's pageNum, documented as 'the offset for the records to return' (default 0). When has_more is true, ask for the next records and check the new page does not repeat the previous one (if it does, p…
- `page_size` (integer): Results per page, 1-1000 (default 50).
- `search_criteria` (array): Values to match (omit for DateOnly).
- `tracking_type` (string, required): Which field search_criteria matches.

### `cxt_list_recent_orders` (~78 tokens)

List recent orders

The most recent orders of the signed-in INTERNET user (user type INET; the orders of their account). Costs 1 API credit with the vendor. POST /v2/Shipments/Summaries with numRecentOrders.

Input parameters:

- `count` (integer): How many recent orders, 1-1000 (default 25).

### `cxt_get_order` (~119 tokens)

Get order (internet user)

One on-demand order with its status, confirmation, pickup, delivery and proof-of-delivery details, as an INTERNET user sees it (sign in with user type INET). Optionally with the itemized charges. Operations App users should use cxt_get_dispatch_order. Costs 1 API credit with the vendor. GET /v2/Orders/{orderId}/{includeItemizedCharges}.

Input parameters:

- `include_itemized_charges` (boolean): Include the itemized charges (default false).
- `order_id` (number, required): CXT order id.

### `cxt_get_dispatch_order` (~92 tokens)

Get order (Operations App user)

One on-demand order with itemized charges, as an OPERATIONS APP (X Dispatch) user sees it (sign in with user type XDISPATCH): addresses, times, driver, status events, proof of delivery. Costs 1 API credit with the vendor. GET /v2/Dispatch/Orders/{onDemandOrderId}.

Input parameters:

- `order_id` (number, required): CXT on-demand order id.

### `cxt_get_planning_limits` (~69 tokens)

Get itinerary planning limits

The itinerary planning limits of this X Dispatch system: maxAllowedStops (shipments x 2), maxAllowedLocations and maxAllowedPlaceholders. Needs an Operations App user with the ITINERARY_PLANNING_ACCESS permission. GET /v3/ItineraryPlanning/Settings.

### `cxt_validate_drivers` (~90 tokens)

Validate drivers for planning

Check whether drivers are available to be planned: for each driver id, vehicle violations (for example an expired inspection) and HR violations (for example not scheduled), each with isBypassable. Changes nothing. Needs ITINERARY_PLANNING_ACCESS. POST /v3/ItineraryPlanning/Orders/Drivers/Validate.

Input parameters:

- `driver_ids` (array, required): Driver ids to check.

### `cxt_validate_driver_for_orders` (~96 tokens)

Validate a driver for orders

Check one driver against specific orders: vehicle violations, HR violations and capability violations (for example Hazmat or Lift Gate that the driver lacks). Changes nothing. Needs ITINERARY_PLANNING_ACCESS. POST /v3/ItineraryPlanning/Orders/Drivers/{driverId}/Validate.

Input parameters:

- `driver_id` (integer, required): Driver id.
- `order_ids` (array, required): Order ids to check the driver against.

### `cxt_plan_orders` (~235 tokens)

Plan orders onto drivers

Generate a proposed itinerary that assigns on-demand orders to drivers (pickup and delivery stops in sequence, with times, distance and unassigned stops). This only PROPOSES a plan: nothing is dispatched until cxt_save_order_plan is called. Needs ITINERARY_PLANNING_ACCESS. Check the limits with cxt_get_planning_limits first. POST /v3/ItineraryPlanning/Orders.

Input parameters:

- `driver_ids` (array, required): Driver ids to plan onto.
- `end_time` (string, required): Planning window end, local time, e.g. 2026-10-01T18:00:00.
- `enhanced_routing` (string): Enhanced routing (default OFF).
- `goal` (string): Optimization goal (default QUICKEST_ROUTE).
- `max_orders_per_driver` (integer)
- `num_placeholders` (integer): Virtual placeholder drivers (0-1000).
- `order_ids` (array, required): Order ids to plan.
- `start_time` (string, required): Planning window start, local time, e.g. 2026-10-01T08:00:00.

### `cxt_optimize_order_plan` (~212 tokens)

Re-optimize one driver's order plan

Re-optimize a single driver's plan after manual changes (proposal only: nothing is dispatched until cxt_save_order_plan). Needs ITINERARY_PLANNING_ACCESS. POST /v3/ItineraryPlanning/Orders/Optimize.

Input parameters:

- `all_input_order_ids` (array, required): All orders in the planning run.
- `driver_id` (integer, required): Driver id (or the placeholder's id when is_placeholder).
- `end_time` (string, required): Local date-time without timezone, e.g. 2026-10-01T08:00:00.
- `enhanced_routing` (string): Enhanced routing (default OFF).
- `goal` (string): Optimization goal (default QUICKEST_ROUTE).
- `is_placeholder` (boolean): The driver is a placeholder.
- `plan_order_ids` (array, required): Orders currently in this driver's plan.
- `start_time` (string, required): Local date-time without timezone, e.g. 2026-10-01T08:00:00.

### `cxt_plan_routes` (~285 tokens)

Plan route stops

Generate a proposed re-sequencing of the stops of existing routes for one route date (stops move between the output routes, with times, distance and unassigned stops). Proposal only: nothing changes until cxt_save_route_plan is called. Needs ITINERARY_PLANNING_ACCESS. POST /v3/ItineraryPlanning/Routes/{postDate}.

Input parameters:

- `end_time` (string, required): Local date-time without timezone, e.g. 2026-10-01T08:00:00.
- `enhanced_routing` (string): Enhanced routing (default OFF).
- `excluded_stop_ids` (array): Stop ids to leave out of planning.
- `goal` (string): Optimization goal (default QUICKEST_ROUTE).
- `grace_period_per_stop` (integer): Grace period per stop, minutes.
- `input_route_ids` (array, required): Route ids to take stops from.
- `max_stops_per_route` (integer)
- `num_placeholders` (integer)
- `output_route_ids` (array, required): Route ids to assign stops to.
- `post_date` (string, required): Route date, yyyy-mm-dd.
- `service_time_per_stop` (integer): Service time per stop, minutes.
- `start_time` (string, required): Local date-time without timezone, e.g. 2026-10-01T08:00:00.

### `cxt_optimize_route_plan` (~234 tokens)

Re-optimize one route

Re-optimize a single route after manual changes (proposal only: nothing changes until cxt_save_route_plan). Needs ITINERARY_PLANNING_ACCESS. POST /v3/ItineraryPlanning/Routes/{postDate}/Optimize.

Input parameters:

- `end_time` (string, required): Local date-time without timezone, e.g. 2026-10-01T08:00:00.
- `enhanced_routing` (string): Enhanced routing (default OFF).
- `excluded_stop_ids` (array)
- `goal` (string): Optimization goal (default QUICKEST_ROUTE).
- `input_route_ids` (array): Source routes for stops.
- `is_batch_call` (boolean): Batch optimization (default false).
- `is_placeholder` (boolean)
- `plan_stop_ids` (array): Stops currently assigned to this route.
- `post_date` (string, required): Route date, yyyy-mm-dd.
- `route_id` (string, required): Route to optimize.
- `start_time` (string, required): Local date-time without timezone, e.g. 2026-10-01T08:00:00.

### `cxt_save_order_plan` (~194 tokens)

Save order plan (dispatch orders to drivers)

COMMIT an order plan: assigns the orders to the drivers and DISPATCHES them (drivers receive the work in the driver app; customers may be notified by the system's own status rules). Use only after the user has seen and approved the plan from cxt_plan_orders / cxt_optimize_order_plan. Pass each driver's stops from the plan reply: id, type (PICKUP or DELIVERY), sequence and from (the scheduled time). Response is empty on success (204). Needs ITINERARY_PLANNING_ACCESS. POST /v3/ItineraryPlanning/Orders/Save.

Input parameters:

- `confirm` (boolean, required): Must be true: the user approved this plan and wants it dispatched to the drivers now.
- `driver_pay_locked_status` (string): What to do with already locked driver pay: KEEP_LOCKED_AND_DISPATCH or UNLOCK_AND_DISPATCH.
- `plans` (array, required)

### `cxt_save_route_plan` (~196 tokens)

Save route plan (reassign route stops)

COMMIT a route plan for one route date: moves and re-sequences route stops as in the plan and DISPATCHES the changed routes to drivers. Use only after the user has seen and approved the plan from cxt_plan_routes / cxt_optimize_route_plan. Pass each route's stops from the plan reply: id, sequence and from (the scheduled time). Response is empty on success (204). Needs ITINERARY_PLANNING_ACCESS. POST /v3/ItineraryPlanning/Routes/{postDate}/Save.

Input parameters:

- `confirm` (boolean, required): Must be true: the user approved this plan and wants it dispatched to the drivers now.
- `driver_pay_locked_status` (string): What to do with already locked driver pay: KEEP_LOCKED_AND_DISPATCH or UNLOCK_AND_DISPATCH.
- `plans` (array, required)
- `post_date` (string, required): Route date, yyyy-mm-dd.

## Diagnostics

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

## Score history

- 2026-10-25: 61
- 2026-10-24: 61

## Common questions

### What is the CXT Software MCP by usefulapi server?

CXT Software MCP by usefulapi is listed in the public MCP registry as io.usefulapi/cxt-software. Track and search CXT courier orders, check drivers, propose and save order and route plans. This page covers its hosted endpoint (https://cxt-software.usefulapi.io/mcp).

### Is the CXT Software MCP by usefulapi server safe to use?

CXT Software MCP by usefulapi scores 61 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the CXT Software MCP by usefulapi server expose?

CXT Software MCP by usefulapi exposes 14 tools: cxt_track_shipments, cxt_search_shipments, cxt_list_recent_orders, cxt_get_order, cxt_get_dispatch_order, and 9 more. Their descriptions and schemas cost roughly 2,641 tokens of context every time the server is loaded.

### Does the CXT Software MCP by usefulapi server require authentication?

Yes. CXT Software MCP by usefulapi asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.

### Is the CXT Software MCP by usefulapi server still maintained?

CXT Software MCP by usefulapi is still listed as active in the MCP registry. We last reached this channel on 25 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://cxt-software.usefulapi.io/mcp
- Repository: https://github.com/m190/usefulapi-mcp
- Website: https://usefulapi.io/cxt-software/
- Changelog RSS feed: https://verifymcp.io/servers/io-usefulapi-cxt-software/cxt-software.xml
- Changelog JSON feed: https://verifymcp.io/servers/io-usefulapi-cxt-software/cxt-software.json
- HTML version of this page: https://verifymcp.io/servers/io-usefulapi-cxt-software/cxt-software
