Track parcels with TrackingMore: detect couriers, create and read trackings, delivery status.
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
WRITE: register ONE shipment so TrackingMore starts tracking it. This uses one credit of the account's plan (credits beyond the plan are billed by TrackingMore as overage): confirm with the user before creating, and never create trackings in bulk. Fails with 'Tracking No. already exists' if it is already registered. Needs the tracking number and the courier code (use trackingmore_detect_courier if unknown). Some couriers need extra fields (postal code, ship date, key). Returns the new tracking with its id. POST /trackings/create.
TrackingMore courier code, e.g. usps, ups, dhl (see trackingmore_list_couriers / trackingmore_detect_courier).
The shipment's tracking number.
Free-text note.
Label to group shipments. It must be a label you created in the TrackingMore dashboard first, otherwise TrackingMore refuses it (meta 4131).
Short title for the shipment.
Language code for status text, e.g. en.
Your order id in the shop system.
Order date, e.g. 2026-10-01T10:00:00+00:00.
Recipient mobile number, with country code.
Your order number for this shipment.
Tracking key / phone suffix (needed by some couriers).
Recipient name.
Recipient email (TrackingMore can send delivery notifications to it when enabled in the account).
Logistics channel / service name.
Recipient postcode.
Ship date, yyyymmdd (needed by some couriers).
Origin country, ISO 3166 alpha-2.
Recipient postal code (needed by some couriers).
Origin country for couriers that need it, ISO 3166 alpha-2.
Destination country, ISO 3166 alpha-2.
Courier account (needed by some couriers).
Destination country for couriers that need it, ISO 3166 alpha-2.
The server marks this tool as destructive. Running it may delete or overwrite data on the server or in any account you connected with your headers.
WRITE: register ONE shipment so TrackingMore starts tracking it. This uses one credit of the account's plan (credits beyond the plan are billed by TrackingMore as overage): confirm with the user before creating, and never create trackings in bulk. Fails with 'Tracking No. already exists' if it is already registered. Needs the tracking number and the courier code (use trackingmore_detect_courier if unknown). Some couriers need extra fields (postal code, ship date, key). Returns the new tracking with its id. POST /trackings/create.
| Argument | Type | Description |
|---|---|---|
| note | string | Free-text note. |
| label | string | Label to group shipments. It must be a label you created in the TrackingMore dashboard first, otherwise TrackingMore refuses it (meta 4131). |
| title | string | Short title for the shipment. |
| language | string | Language code for status text, e.g. en. |
| order_id | string | Your order id in the shop system. |
| order_date | string | Order date, e.g. 2026-10-01T10:00:00+00:00. |
| courier_code* | string | TrackingMore courier code, e.g. usps, ups, dhl (see trackingmore_list_couriers / trackingmore_detect_courier). |
| customer_sms | string | Recipient mobile number, with country code. |
| order_number | string | Your order number for this shipment. |
| tracking_key | string | Tracking key / phone suffix (needed by some couriers). |
| customer_name | string | Recipient name. |
| customer_email | string | Recipient email (TrackingMore can send delivery notifications to it when enabled in the account). |
| tracking_number* | string | The shipment's tracking number. |
| logistics_channel | string | Logistics channel / service name. |
| recipient_postcode | string | Recipient postcode. |
| tracking_ship_date | string | Ship date, yyyymmdd (needed by some couriers). |
| origin_country_iso2 | string | Origin country, ISO 3166 alpha-2. |
| tracking_postal_code | string | Recipient postal code (needed by some couriers). |
| tracking_origin_country | string | Origin country for couriers that need it, ISO 3166 alpha-2. |
| destination_country_iso2 | string | Destination country, ISO 3166 alpha-2. |
| tracking_courier_account | string | Courier account (needed by some couriers). |
| tracking_destination_country | string | Destination country for couriers that need it, ISO 3166 alpha-2. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"tracking_number",
"courier_code"
],
"properties": {
"note": {
"type": "string",
"maxLength": 1000,
"description": "Free-text note."
},
"label": {
"type": "string",
"maxLength": 200,
"description": "Label to group shipments. It must be a label you created in the TrackingMore dashboard first, otherwise TrackingMore refuses it (meta 4131)."
},
"title": {
"type": "string",
"maxLength": 200,
"description": "Short title for the shipment."
},
"language": {
"type": "string",
"maxLength": 20,
"description": "Language code for status text, e.g. en."
},
"order_id": {
"type": "string",
"maxLength": 200,
"description": "Your order id in the shop system."
},
"order_date": {
"type": "string",
"maxLength": 60,
"description": "Order date, e.g. 2026-10-01T10:00:00+00:00."
},
"courier_code": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "TrackingMore courier code, e.g. usps, ups, dhl (see trackingmore_list_couriers / trackingmore_detect_courier)."
},
"customer_sms": {
"type": "string",
"maxLength": 50,
"description": "Recipient mobile number, with country code."
},
"order_number": {
"type": "string",
"maxLength": 200,
"description": "Your order number for this shipment."
},
"tracking_key": {
"type": "string",
"maxLength": 100,
"description": "Tracking key / phone suffix (needed by some couriers)."
},
"customer_name": {
"type": "string",
"maxLength": 200,
"description": "Recipient name."
},
"customer_email": {
"type": "string",
"maxLength": 254,
"description": "Recipient email (TrackingMore can send delivery notifications to it when enabled in the account)."
},
"tracking_number": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "The shipment's tracking number."
},
"logistics_channel": {
"type": "string",
"maxLength": 200,
"description": "Logistics channel / service name."
},
"recipient_postcode": {
"type": "string",
"maxLength": 30,
"description": "Recipient postcode."
},
"tracking_ship_date": {
"type": "string",
"maxLength": 30,
"description": "Ship date, yyyymmdd (needed by some couriers)."
},
"origin_country_iso2": {
"type": "string",
"maxLength": 2,
"description": "Origin country, ISO 3166 alpha-2."
},
"tracking_postal_code": {
"type": "string",
"maxLength": 30,
"description": "Recipient postal code (needed by some couriers)."
},
"tracking_origin_country": {
"type": "string",
"maxLength": 2,
"description": "Origin country for couriers that need it, ISO 3166 alpha-2."
},
"destination_country_iso2": {
"type": "string",
"maxLength": 2,
"description": "Destination country, ISO 3166 alpha-2."
},
"tracking_courier_account": {
"type": "string",
"maxLength": 100,
"description": "Courier account (needed by some couriers)."
},
"tracking_destination_country": {
"type": "string",
"maxLength": 2,
"description": "Destination country for couriers that need it, ISO 3166 alpha-2."
}
}
}WRITE (destructive): permanently remove one tracking from the TrackingMore account by id. Its checkpoint history is lost; registering the shipment again later uses another credit. Confirm with the user first. DELETE /trackings/delete/{id}.
| Argument | Type | Description |
|---|---|---|
| id* | string | TrackingMore tracking id (the `id` field of a tracking from trackingmore_list_trackings or trackingmore_create_tracking). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "TrackingMore tracking id (the `id` field of a tracking from trackingmore_list_trackings or trackingmore_create_tracking)."
}
}
}Find which couriers a tracking number most likely belongs to (returns matching courier codes and names). Use the code with trackingmore_create_tracking. Does not create anything. POST /couriers/detect.
| Argument | Type | Description |
|---|---|---|
| tracking_number* | string | The shipment's tracking number. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"tracking_number"
],
"properties": {
"tracking_number": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "The shipment's tracking number."
}
}
}The full tracking record of one shipment already registered in the account, including every checkpoint (origin_info / destination_info trackinfo with date, status, details and location). Look it up by tracking number; add courier_code if the number is used by several couriers. A number that was never registered is not found: register it with trackingmore_create_tracking first. GET /trackings/get?tracking_numbers=.
| Argument | Type | Description |
|---|---|---|
| lang | string | Language for status text, e.g. en. |
| courier_code | string | TrackingMore courier code, e.g. usps, ups, dhl (see trackingmore_list_couriers / trackingmore_detect_courier). |
| tracking_number* | string | The shipment's tracking number. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"tracking_number"
],
"properties": {
"lang": {
"type": "string",
"maxLength": 10,
"minLength": 2,
"description": "Language for status text, e.g. en."
},
"courier_code": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "TrackingMore courier code, e.g. usps, ups, dhl (see trackingmore_list_couriers / trackingmore_detect_courier)."
},
"tracking_number": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "The shipment's tracking number."
}
}
}List the carriers TrackingMore supports with their courier_code, name, country, website, phone and the extra fields some of them need. The full list is long (1,000+), so filter with `search` (matches name or code) and/or `country`; replies hold at most `limit` couriers. GET /couriers/all.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Most couriers returned, 1-200 (default 50). |
| offset | integer | Skip this many matches (paging; default 0). |
| search | string | Case-insensitive text in the courier name or code, e.g. 'dhl'. |
| country | string | Courier country, ISO 3166 alpha-2, e.g. US. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 200,
"description": "Most couriers returned, 1-200 (default 50).",
"exclusiveMinimum": 0
},
"offset": {
"type": "integer",
"maximum": 100000,
"minimum": 0,
"description": "Skip this many matches (paging; default 0)."
},
"search": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Case-insensitive text in the courier name or code, e.g. 'dhl'."
},
"country": {
"type": "string",
"maxLength": 2,
"minLength": 2,
"description": "Courier country, ISO 3166 alpha-2, e.g. US."
}
}
}List the shipments already registered in the TrackingMore account, newest first as the API returns them: id, tracking number, courier, delivery_status (pending, notfound, transit, pickup, delivered, undelivered, exception, expired, inforeceived), latest event and milestone dates. Checkpoint lists are left out (use trackingmore_get_tracking for one shipment's full history). Filters: tracking numbers, courier, delivery status, created/updated date range. GET /trackings/get.
| Argument | Type | Description |
|---|---|---|
| lang | string | Language for status text, e.g. en. |
| page | integer | Page number, from 1 (default 1). Sent as pages_amount. |
| limit | integer | Trackings per page, 1-200 (default 40). Sent as items_amount. |
| courier_code | string | TrackingMore courier code, e.g. usps, ups, dhl (see trackingmore_list_couriers / trackingmore_detect_courier). |
| archived_status | string | Archive filter: true = archived trackings, tracking = trackings that are not archived. |
| delivery_status | string | pending, notfound, transit, pickup, delivered, undelivered, exception, expired or inforeceived. |
| created_date_max | string |
WRITE: change the descriptive fields of a registered tracking (order number, customer name/email, title, note, label, language, postal code, ship date ...). Only the fields you pass change; the tracking number and courier cannot be changed here. PUT /trackings/update/{id}.
| Argument | Type | Description |
|---|---|---|
| id* | string | TrackingMore tracking id (the `id` field of a tracking from trackingmore_list_trackings or trackingmore_create_tracking). |
| note | string | Free-text note. |
| label | string | Label to group shipments. It must be a label you created in the TrackingMore dashboard first, otherwise TrackingMore refuses it (meta 4131). |
| title | string | Short title for the shipment. |
| language | string | Language code for status text, e.g. en. |
| order_id | string | Your order id in the shop system. |
| order_date | string | Order date, e.g. 2026-10-01T10:00:00+00:00. |
| customer_sms | string | Recipient mobile number, with country code. |
| A date (yyyy-mm-dd, taken as 00:00:00 UTC) or an ISO 8601 date-time with a timezone, e.g. 2026-10-01T00:00:00+00:00 or 2026-10-01T00:00:00Z. Sent to TrackingMore as YYYY-MM-DDTHH:MM:SS+HH:MM. |
| created_date_min | string | A date (yyyy-mm-dd, taken as 00:00:00 UTC) or an ISO 8601 date-time with a timezone, e.g. 2026-10-01T00:00:00+00:00 or 2026-10-01T00:00:00Z. Sent to TrackingMore as YYYY-MM-DDTHH:MM:SS+HH:MM. |
| tracking_numbers | string | One to 40 tracking numbers, comma-separated (TrackingMore refuses more than 40 per call). |
| updated_date_max | string | A date (yyyy-mm-dd, taken as 00:00:00 UTC) or an ISO 8601 date-time with a timezone, e.g. 2026-10-01T00:00:00+00:00 or 2026-10-01T00:00:00Z. Sent to TrackingMore as YYYY-MM-DDTHH:MM:SS+HH:MM. |
| updated_date_min | string | A date (yyyy-mm-dd, taken as 00:00:00 UTC) or an ISO 8601 date-time with a timezone, e.g. 2026-10-01T00:00:00+00:00 or 2026-10-01T00:00:00Z. Sent to TrackingMore as YYYY-MM-DDTHH:MM:SS+HH:MM. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"lang": {
"type": "string",
"maxLength": 10,
"minLength": 2,
"description": "Language for status text, e.g. en."
},
"page": {
"type": "integer",
"maximum": 100000,
"description": "Page number, from 1 (default 1). Sent as pages_amount.",
"exclusiveMinimum": 0
},
"limit": {
"type": "integer",
"maximum": 200,
"description": "Trackings per page, 1-200 (default 40). Sent as items_amount.",
"exclusiveMinimum": 0
},
"courier_code": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "TrackingMore courier code, e.g. usps, ups, dhl (see trackingmore_list_couriers / trackingmore_detect_courier)."
},
"archived_status": {
"enum": [
"true",
"tracking"
],
"type": "string",
"description": "Archive filter: true = archived trackings, tracking = trackings that are not archived."
},
"delivery_status": {
"type": "string",
"maxLength": 30,
"minLength": 1,
"description": "pending, notfound, transit, pickup, delivered, undelivered, exception, expired or inforeceived."
},
"created_date_max": {
"type": "string",
"description": "A date (yyyy-mm-dd, taken as 00:00:00 UTC) or an ISO 8601 date-time with a timezone, e.g. 2026-10-01T00:00:00+00:00 or 2026-10-01T00:00:00Z. Sent to TrackingMore as YYYY-MM-DDTHH:MM:SS+HH:MM."
},
"created_date_min": {
"type": "string",
"description": "A date (yyyy-mm-dd, taken as 00:00:00 UTC) or an ISO 8601 date-time with a timezone, e.g. 2026-10-01T00:00:00+00:00 or 2026-10-01T00:00:00Z. Sent to TrackingMore as YYYY-MM-DDTHH:MM:SS+HH:MM."
},
"tracking_numbers": {
"type": "string",
"maxLength": 2000,
"minLength": 1,
"description": "One to 40 tracking numbers, comma-separated (TrackingMore refuses more than 40 per call)."
},
"updated_date_max": {
"type": "string",
"description": "A date (yyyy-mm-dd, taken as 00:00:00 UTC) or an ISO 8601 date-time with a timezone, e.g. 2026-10-01T00:00:00+00:00 or 2026-10-01T00:00:00Z. Sent to TrackingMore as YYYY-MM-DDTHH:MM:SS+HH:MM."
},
"updated_date_min": {
"type": "string",
"description": "A date (yyyy-mm-dd, taken as 00:00:00 UTC) or an ISO 8601 date-time with a timezone, e.g. 2026-10-01T00:00:00+00:00 or 2026-10-01T00:00:00Z. Sent to TrackingMore as YYYY-MM-DDTHH:MM:SS+HH:MM."
}
}
}| order_number | string | Your order number for this shipment. |
| tracking_key | string | Tracking key / phone suffix (needed by some couriers). |
| customer_name | string | Recipient name. |
| customer_email | string | Recipient email (TrackingMore can send delivery notifications to it when enabled in the account). |
| logistics_channel | string | Logistics channel / service name. |
| recipient_postcode | string | Recipient postcode. |
| tracking_ship_date | string | Ship date, yyyymmdd (needed by some couriers). |
| origin_country_iso2 | string | Origin country, ISO 3166 alpha-2. |
| tracking_postal_code | string | Recipient postal code (needed by some couriers). |
| tracking_origin_country | string | Origin country for couriers that need it, ISO 3166 alpha-2. |
| destination_country_iso2 | string | Destination country, ISO 3166 alpha-2. |
| tracking_courier_account | string | Courier account (needed by some couriers). |
| tracking_destination_country | string | Destination country for couriers that need it, ISO 3166 alpha-2. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "TrackingMore tracking id (the `id` field of a tracking from trackingmore_list_trackings or trackingmore_create_tracking)."
},
"note": {
"type": "string",
"maxLength": 1000,
"description": "Free-text note."
},
"label": {
"type": "string",
"maxLength": 200,
"description": "Label to group shipments. It must be a label you created in the TrackingMore dashboard first, otherwise TrackingMore refuses it (meta 4131)."
},
"title": {
"type": "string",
"maxLength": 200,
"description": "Short title for the shipment."
},
"language": {
"type": "string",
"maxLength": 20,
"description": "Language code for status text, e.g. en."
},
"order_id": {
"type": "string",
"maxLength": 200,
"description": "Your order id in the shop system."
},
"order_date": {
"type": "string",
"maxLength": 60,
"description": "Order date, e.g. 2026-10-01T10:00:00+00:00."
},
"customer_sms": {
"type": "string",
"maxLength": 50,
"description": "Recipient mobile number, with country code."
},
"order_number": {
"type": "string",
"maxLength": 200,
"description": "Your order number for this shipment."
},
"tracking_key": {
"type": "string",
"maxLength": 100,
"description": "Tracking key / phone suffix (needed by some couriers)."
},
"customer_name": {
"type": "string",
"maxLength": 200,
"description": "Recipient name."
},
"customer_email": {
"type": "string",
"maxLength": 254,
"description": "Recipient email (TrackingMore can send delivery notifications to it when enabled in the account)."
},
"logistics_channel": {
"type": "string",
"maxLength": 200,
"description": "Logistics channel / service name."
},
"recipient_postcode": {
"type": "string",
"maxLength": 30,
"description": "Recipient postcode."
},
"tracking_ship_date": {
"type": "string",
"maxLength": 30,
"description": "Ship date, yyyymmdd (needed by some couriers)."
},
"origin_country_iso2": {
"type": "string",
"maxLength": 2,
"description": "Origin country, ISO 3166 alpha-2."
},
"tracking_postal_code": {
"type": "string",
"maxLength": 30,
"description": "Recipient postal code (needed by some couriers)."
},
"tracking_origin_country": {
"type": "string",
"maxLength": 2,
"description": "Origin country for couriers that need it, ISO 3166 alpha-2."
},
"destination_country_iso2": {
"type": "string",
"maxLength": 2,
"description": "Destination country, ISO 3166 alpha-2."
},
"tracking_courier_account": {
"type": "string",
"maxLength": 100,
"description": "Courier account (needed by some couriers)."
},
"tracking_destination_country": {
"type": "string",
"maxLength": 2,
"description": "Destination country for couriers that need it, ISO 3166 alpha-2."
}
}
}