17TRACK MCP by usefulapi
Track parcels across 3000+ carriers with 17TRACK: register numbers, read tracking events and quota.
¿Debería usar esto?
Calidad y seguridad
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"17track": {
"url": "https://17track.usefulapi.io/mcp"
}
}
}Puntos de conexión remotos
https://17track.usefulapi.io/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (9)
🟢track17_get_quota
The account's tracking quota: total, used, remaining, used today, the daily registration limit (0 = no limit) and the free e-mail quota. Each registered tracking number uses 1 quota. POST /getquota.
Esquema de entrada
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢track17_list_tracking_numbers(numbers, carrier, tracking_status, package_status, data_origin, ...)
Search the tracking numbers registered on this account (40 per page) with their carrier, status, registration and last-update times, and latest event. Filter by number(s), carrier, tracking state, package status or registration date. Free: it does not use quota. POST /gettracklist.
Esquema de entrada
{
"type": "object",
"properties": {
"numbers": {
"description": "Only these tracking numbers (up to 200).",
"minItems": 1,
"maxItems": 200,
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Za-z0-9-]{5,50}$",
"description": "Tracking number (5-50 letters, digits or hyphens)."
}
},
"carrier": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9999999,
"description": "17TRACK numeric carrier code (for example 3011 = China Post, 100003 = FedEx). Full list: https://res.17track.net/asset/carrier/info/apicarrier.all.json"
},
"tracking_status": {
"description": "Only numbers currently being tracked, or stopped.",
"type": "string",
"enum": [
"Tracking",
"Stopped"
]
},
"package_status": {
"description": "Only packages in this main status.",
"type": "string",
"enum": [
"NotFound",
"InfoReceived",
"InTransit",
"Expired",
"AvailableForPickup",
"OutForDelivery",
"DeliveryFailure",
"Delivered",
"Exception"
]
},
"data_origin": {
"description": "How the number was added.",
"type": "string",
"enum": [
"Api",
"Manual",
"Import"
]
},
"register_time_from": {
"description": "Registered on or after this date (yyyy-mm-dd).",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"register_time_to": {
"description": "Registered on or before this date (yyyy-mm-dd).",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"order_by": {
"description": "Sort order.",
"type": "string",
"enum": [
"RegisterTimeAsc",
"RegisterTimeDesc",
"TrackTimeAsc",
"TrackTimeDesc"
]
},
"page_no": {
"description": "Page number, from 1 (omit for the first page). Use the reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢track17_get_tracking(numbers)
Full tracking details (status, sub-status, milestones, every carrier event with time and location, estimated delivery) for up to 10 numbers that are ALREADY registered on this account. Free: it does not use quota. A number that is not registered comes back in `rejected` — register it first with track17_register_numbers, or use track17_realtime_lookup. POST /gettrackinfo.
Esquema de entrada
{
"type": "object",
"properties": {
"numbers": {
"minItems": 1,
"maxItems": 10,
"type": "array",
"items": {
"type": "object",
"properties": {
"number": {
"type": "string",
"pattern": "^[A-Za-z0-9-]{5,50}$",
"description": "Tracking number (5-50 letters, digits or hyphens)."
},
"carrier": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9999999,
"description": "17TRACK numeric carrier code (for example 3011 = China Post, 100003 = FedEx). Full list: https://res.17track.net/asset/carrier/info/apicarrier.all.json"
}
},
"required": [
"number"
]
},
"description": "Registered numbers, each with an optional carrier code (needed if the number is tracked under several carriers)."
}
},
"required": [
"numbers"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴track17_realtime_lookup(number, carrier, destination_postal_code, phone_number_last_4, ship_date)
WRITE (uses quota): look up ONE tracking number directly at the carrier right now, without registering it. Costs 1 quota per call (standard: carrier data up to 3 hours old). If the number is already registered, a changed result is also pushed to the account. Not supported for USPS, Royal Mail, Australia Post, Direct Freight Express, DHL eCommerce US and DHL Global Forwarding; some accounts are not enabled for real-time lookups. POST /getRealTimeTrackInfo.
Esquema de entrada
{
"type": "object",
"properties": {
"number": {
"type": "string",
"pattern": "^[A-Za-z0-9-]{5,50}$",
"description": "Tracking number (5-50 letters, digits or hyphens)."
},
"carrier": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9999999,
"description": "17TRACK numeric carrier code (for example 3011 = China Post, 100003 = FedEx). Full list: https://res.17track.net/asset/carrier/info/apicarrier.all.json"
},
"destination_postal_code": {
"description": "Recipient postal code, for carriers that require it.",
"type": "string",
"minLength": 1,
"maxLength": 20
},
"phone_number_last_4": {
"description": "Last 4 digits of the recipient phone, for carriers that require it.",
"type": "string",
"pattern": "^\\d{4}$"
},
"ship_date": {
"description": "A date, yyyy-mm-dd.",
"type": "string",
"pattern": "^\\d{4}[-/]\\d{2}[-/]\\d{2}$"
}
},
"required": [
"number"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴track17_register_numbers(numbers)
WRITE (uses quota): start tracking up to 10 tracking numbers per call. Each ACCEPTED number costs 1 quota from this account (see track17_get_quota); rejected numbers cost nothing. Deleting and re-registering a number costs again. 17TRACK then updates the status itself every 6-12 hours; read it with track17_get_tracking. The carrier is detected automatically unless a carrier code is given. No e-mail notifications are enabled. POST /register.
Esquema de entrada
{
"type": "object",
"properties": {
"numbers": {
"minItems": 1,
"maxItems": 10,
"type": "array",
"items": {
"type": "object",
"properties": {
"number": {
"type": "string",
"pattern": "^[A-Za-z0-9-]{5,50}$",
"description": "Tracking number (5-50 letters, digits or hyphens)."
},
"carrier": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9999999,
"description": "17TRACK numeric carrier code (for example 3011 = China Post, 100003 = FedEx). Full list: https://res.17track.net/asset/carrier/info/apicarrier.all.json"
},
"tag": {
"description": "Your own label for the shipment (max 100 characters), for example an order id.",
"type": "string",
"minLength": 1,
"maxLength": 100
},
"order_no": {
"description": "Order number (5-50 characters).",
"type": "string",
"minLength": 5,
"maxLength": 50
},
"remark": {
"description": "Free note (max 1000 characters).",
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"lang": {
"description": "Translation language code, for example en.",
"type": "string",
"pattern": "^[A-Za-z]{2,3}(-[A-Za-z]{2,4})?$"
},
"origin_country": {
"description": "Origin country, ISO 3166-1 alpha-2 (for example CN).",
"type": "string",
"pattern": "^[A-Za-z]{2}$"
},
"destination_country": {
"description": "Destination country, ISO 3166-1 alpha-2.",
"type": "string",
"pattern": "^[A-Za-z]{2}$"
},
"destination_postal_code": {
"description": "Recipient postal code, required by some carriers.",
"type": "string",
"minLength": 1,
"maxLength": 20
},
"phone_number_last_4": {
"description": "Last 4 digits of the recipient phone, required by some carriers.",
"type": "string",
"pattern": "^\\d{4}$"
},
"ship_date": {
"description": "A date, yyyy-mm-dd.",
"type": "string",
"pattern": "^\\d{4}[-/]\\d{2}[-/]\\d{2}$"
}
},
"required": [
"number"
]
},
"description": "1-10 numbers to register."
}
},
"required": [
"numbers"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴track17_change_carrier(changes)
WRITE: assign a different carrier to registered tracking numbers (up to 10 per call), for example when auto-detection picked the wrong one. A number can change carrier at most 5 times, and a successful change can be charged as one shipment (see track17_get_quota). POST /changecarrier.
Esquema de entrada
{
"type": "object",
"properties": {
"changes": {
"minItems": 1,
"maxItems": 10,
"type": "array",
"items": {
"type": "object",
"properties": {
"number": {
"type": "string",
"pattern": "^[A-Za-z0-9-]{5,50}$",
"description": "Tracking number (5-50 letters, digits or hyphens)."
},
"carrier_new": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9999999,
"description": "The correct carrier code."
},
"carrier_old": {
"description": "The current carrier code; only needed when the number is tracked under several carriers.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9999999
}
},
"required": [
"number",
"carrier_new"
]
}
}
},
"required": [
"changes"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴track17_change_tag(number, carrier, tag)
WRITE: set the tag (your own label, max 100 characters) of a registered tracking number. It replaces the old tag. Free. POST /changeinfo.
Esquema de entrada
{
"type": "object",
"properties": {
"number": {
"type": "string",
"pattern": "^[A-Za-z0-9-]{5,50}$",
"description": "Tracking number (5-50 letters, digits or hyphens)."
},
"carrier": {
"description": "Carrier code; needed if the number is tracked under several carriers.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9999999
},
"tag": {
"type": "string",
"maxLength": 100,
"description": "The new tag (max 100 characters; an empty string clears it)."
}
},
"required": [
"number",
"tag"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴track17_stop_tracking(numbers)
WRITE: stop tracking registered numbers (up to 10 per call). The numbers stay in the account for 90 days with their history and can be restarted ONCE each with track17_retrack. Stopping does not refund quota. POST /stoptrack.
Esquema de entrada
{
"type": "object",
"properties": {
"numbers": {
"minItems": 1,
"maxItems": 10,
"type": "array",
"items": {
"type": "object",
"properties": {
"number": {
"type": "string",
"pattern": "^[A-Za-z0-9-]{5,50}$",
"description": "Tracking number (5-50 letters, digits or hyphens)."
},
"carrier": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9999999,
"description": "17TRACK numeric carrier code (for example 3011 = China Post, 100003 = FedEx). Full list: https://res.17track.net/asset/carrier/info/apicarrier.all.json"
}
},
"required": [
"number"
]
}
}
},
"required": [
"numbers"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴track17_retrack(numbers)
WRITE: restart tracking of stopped numbers (up to 10 per call). Each number can be restarted only ONCE in its lifetime, so a second restart is rejected. POST /retrack.
Esquema de entrada
{
"type": "object",
"properties": {
"numbers": {
"minItems": 1,
"maxItems": 10,
"type": "array",
"items": {
"type": "object",
"properties": {
"number": {
"type": "string",
"pattern": "^[A-Za-z0-9-]{5,50}$",
"description": "Tracking number (5-50 letters, digits or hyphens)."
},
"carrier": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9999999,
"description": "17TRACK numeric carrier code (for example 3011 = China Post, 100003 = FedEx). Full list: https://res.17track.net/asset/carrier/info/apicarrier.all.json"
}
},
"required": [
"number"
]
}
}
},
"required": [
"numbers"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Comunidad
Evidencia