17TRACK MCP by usefulapi

Track parcels across 3000+ carriers with 17TRACK: register numbers, read tracking events and quota.

我該用這個嗎

品質與安全性

A
說明品質
100%
結構描述完整度
84%
命名品質
100%
汙染風險
100%
權限相符程度
100%
協定合規性
100%

根據工具定義與協定合規性的自動化分析。

上下文成本

~2,935Token(工具定義)
~2.4 KB典型回應大小
顯著的注意力影響(128k 上下文的 2.29%)

這是每次將伺服器的工具載入模型上下文時所消耗的約略 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"
}

社群

為此伺服器評分

證據

近期觀測

已驗證未記錄版本9 個工具