17TRACK MCP by usefulapi
Track parcels across 3000+ carriers with 17TRACK: register numbers, read tracking events and quota.
我该使用它吗
质量与安全性
基于对工具定义和协议合规性的自动分析。
上下文开销
这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。
安装
一键安装
将以下内容添加到你的 `claude_desktop_config.json` 文件中:
{
"mcpServers": {
"17track": {
"url": "https://17track.usefulapi.io/mcp"
}
}
}远程端点
https://17track.usefulapi.io/mcpstreamable-http它能做什么
工具清单
工具(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.
输入模式
{
"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.
输入模式
{
"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.
输入模式
{
"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.
输入模式
{
"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.
输入模式
{
"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.
输入模式
{
"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.
输入模式
{
"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.
输入模式
{
"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.
输入模式
{
"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"
}社区
证据