17TRACK MCP by usefulapi
Track parcels across 3000+ carriers with 17TRACK: register numbers, read tracking events and quota.
Sollte ich dies verwenden
Qualität und Sicherheit
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.
Installieren
Installation mit einem Klick
Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:
{
"mcpServers": {
"17track": {
"url": "https://17track.usefulapi.io/mcp"
}
}
}Remote-Endpunkte
https://17track.usefulapi.io/mcpstreamable-httpWas es kann
Tool-Inventar
Tools (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.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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"
}Community
Nachweis