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.
Available components
Last scanned (4 hours ago)
Scores higher than 46% of remote servers
Reachable. Last reached 25 Oct 2026.
Category E-commerce
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. How we score → Why this is hard to score →
Endpoint Security78
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- 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. View diagnostics → Pass
- HTTPS enforcement could not be verified: the plaintext port redirected somewhere other than https, so enforcement is unproven. View diagnostics → Unverified
- HSTS check failed: the Strict-Transport-Security header is absent. See how to fix → View diagnostics → Fail
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
- The authorisation server offers only Dynamic Client Registration (RFC 7591), which MCP 2026-07-28 deprecated in favour of Client ID Metadata Documents. View diagnostics → Partial
Transport & Reachability0
- Transport check failed: declared streamable-http, but the endpoint redirected instead of responding directly. See how to fix → View diagnostics → Fail
Schema Quality & AI Usability74
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (good).Pass
- 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. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management3
- Stability observed for 1 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage96
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 89% of tool parameters carry a description.Partial
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 14 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 15 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities60
- Spec-recency check failed: implements MCP spec 2025-06-18; the latest is 2026-07-28. See how to fix → Fail
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 25 Oct 26 0
- Stability: unverified → 0.03 ▲ functional
- Server version: 1.0.0 → 1.0.3 functional
- 24 Oct 26 61
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 25 Oct 2026 · Probed https://cxt-software.usefulapi.io/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=usefulapi.io | CN=WE1,O=Google Trust Services,C=US | 13 Sept 2026 | 12 Dec 2026 | ECDSA 256 | ECDSA-SHA256 | d9be3287b0fde9630e825ba1f79bff3f |
| SANs: usefulapi.io, *.usefulapi.io | ||||||
| CN=WE1,O=Google Trust Services,C=US (CA) | CN=GTS Root R4,O=Google Trust Services LLC,C=US | 13 Dec 2023 | 20 Feb 2029 | ECDSA 256 | ECDSA-SHA384 | 7ff31977972c224a76155d13b6d685e3 |
| CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) | CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE | 15 Nov 2023 | 28 Jan 2028 | ECDSA 384 | SHA256-RSA | 7fe530bf331343bedd821610493d8a1b |
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of cxt-software.usefulapi.io. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| io. | present | 38690, 57355 | 8, 8 | Verified |
| usefulapi.io. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication Enforced and verified
The endpoint asked for a token and published valid RFC 9728 metadata describing how to get one.
| Result | Enforced and verified |
|---|---|
| Enforced | On tool calls |
| HTTP status | 302 |
WWW-Authenticate challenge Bearer realm="OAuth", resource_metadata="https://cxt-software.usefulapi.io/.well-known/oauth-protected-resource/mcp"
Bearer realm="OAuth", resource_metadata="https://cxt-software.usefulapi.io/.well-known/oauth-protected-resource/mcp" Protected resource metadata
| Document | https://cxt-software.usefulapi.io/.well-known/oauth-protected-resource/mcp |
|---|---|
| Retrieved | Yes |
| Resource | https://cxt-software.usefulapi.io/mcp |
| Authorisation server | https://cxt-software.usefulapi.io |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://cxt-software.usefulapi.io/mcp | Redirected | 302 | https://usefulapi.io/cxt-software/ |
| http (plaintext) | http://cxt-software.usefulapi.io/mcp | Inconclusive | 302 | http://cxt-software.usefulapi.io/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
cxt_get_dispatch_order Get order (Operations App user) ~92
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}.
| Name | Type | Req | Description |
|---|---|---|---|
| order_id | number | yes | CXT on-demand order id. |
No output schema declared.
No examples provided.
cxt_get_order Get order (internet user) ~119
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}.
| Name | Type | Req | Description |
|---|---|---|---|
| include_itemized_charges | boolean | – | Include the itemized charges (default false). |
| order_id | number | yes | CXT order id. |
No output schema declared.
No examples provided.
cxt_get_planning_limits Get itinerary planning limits ~69
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.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
cxt_list_recent_orders List recent orders ~78
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.
| Name | Type | Req | Description |
|---|---|---|---|
| count | integer | – | How many recent orders, 1-1000 (default 25). |
No output schema declared.
No examples provided.
cxt_optimize_order_plan Re-optimize one driver's order plan ~212
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.
| Name | Type | Req | Description |
|---|---|---|---|
| all_input_order_ids | array | yes | All orders in the planning run. |
| driver_id | integer | yes | Driver id (or the placeholder's id when is_placeholder). |
| end_time | string | yes | 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 | yes | Orders currently in this driver's plan. |
| start_time | string | yes | Local date-time without timezone, e.g. 2026-10-01T08:00:00. |
No output schema declared.
No examples provided.
cxt_optimize_route_plan Re-optimize one route ~234
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.
| Name | Type | Req | Description |
|---|---|---|---|
| end_time | string | yes | 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 | yes | Route date, yyyy-mm-dd. |
| route_id | string | yes | Route to optimize. |
| start_time | string | yes | Local date-time without timezone, e.g. 2026-10-01T08:00:00. |
No output schema declared.
No examples provided.
cxt_plan_orders Plan orders onto drivers ~235
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.
| Name | Type | Req | Description |
|---|---|---|---|
| driver_ids | array | yes | Driver ids to plan onto. |
| end_time | string | yes | 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 | yes | Order ids to plan. |
| start_time | string | yes | Planning window start, local time, e.g. 2026-10-01T08:00:00. |
No output schema declared.
No examples provided.
cxt_plan_routes Plan route stops ~285
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}.
| Name | Type | Req | Description |
|---|---|---|---|
| end_time | string | yes | 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 | yes | Route ids to take stops from. |
| max_stops_per_route | integer | – | – |
| num_placeholders | integer | – | – |
| output_route_ids | array | yes | Route ids to assign stops to. |
| post_date | string | yes | Route date, yyyy-mm-dd. |
| service_time_per_stop | integer | – | Service time per stop, minutes. |
| start_time | string | yes | Local date-time without timezone, e.g. 2026-10-01T08:00:00. |
No output schema declared.
No examples provided.
cxt_save_order_plan Save order plan (dispatch orders to drivers) ~194
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.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | yes | 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 | yes | – |
No output schema declared.
No examples provided.
cxt_save_route_plan Save route plan (reassign route stops) ~196
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.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | yes | 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 | yes | – |
| post_date | string | yes | Route date, yyyy-mm-dd. |
No output schema declared.
No examples provided.
cxt_search_shipments Search orders and route stops ~400
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.
| Name | Type | Req | Description |
|---|---|---|---|
| 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 | yes | Which field search_criteria matches. |
No output schema declared.
No examples provided.
cxt_track_shipments Track shipments ~341
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.
| Name | Type | Req | Description |
|---|---|---|---|
| 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 | yes | Tracking numbers, references or barcodes (1-50). |
No output schema declared.
No examples provided.
cxt_validate_driver_for_orders Validate a driver for orders ~96
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.
| Name | Type | Req | Description |
|---|---|---|---|
| driver_id | integer | yes | Driver id. |
| order_ids | array | yes | Order ids to check the driver against. |
No output schema declared.
No examples provided.
cxt_validate_drivers Validate drivers for planning ~90
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.
| Name | Type | Req | Description |
|---|---|---|---|
| driver_ids | array | yes | Driver ids to check. |
No output schema declared.
No examples provided.
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.
remote · cxt-software.usefulapi.io
claude mcp add --transport http io-usefulapi-cxt-software 'https://cxt-software.usefulapi.io/mcp'
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.