Ship24 Tracking
by ship24.com · remote · no sign-in to list tools · v1.0.1 · published by com.ship24
Track parcels across 2,500+ carriers and 3PLs: live delivery status, event history, carrier lookup.
12 tools: 1 can delete or cancel things, 4 change things and 7 only read.
Scanned Oct 21, 2026
- Deletes or cancels1Claude Code: deny: see these tools
- Can't be undone0Claude Code: ask
- Changes things4Claude Code: ask: see these tools
- Only reads7Claude Code: allow: see these tools
No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http tracking https://api.ship24.com/mcp --header 'Authorization: <your-authorization>'Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
12 tools
Deletes or cancels 1Claude Code: deny
resend_webhooksReplays all webhook events for a tracker.No findings
Why it is in this group
- The name "resend_webhooks" says "resend": a word for sending, and what is sent cannot be taken back.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Replays all webhook events for a tracker. Use when your endpoint missed or failed to process previous notifications. Terminates any in-flight webhook delivery for this tracker and invalidates its existing webhook payload records before regenerating and resending them — do not call repeatedly in quick succession. Rate-limited to 1 request/second per tracker.
Annotations the server declares
- destructiveHint: true
- idempotentHint: false
- openWorldHint: true
Changes things 4Claude Code: ask
bulk_create_trackersCreates up to 100 trackers in one request.No findings
Why it is in this group
- The name "bulk_create_trackers" says "create": a word for a change.
Description, as the server wrote it Creates up to 100 trackers in one request. Each tracker object accepts the same fields as create_tracker — see that tool for field details. Not fully idempotent: retrying a failed bulk request may partially create trackers. Returns counts of created, ignored (duplicate), and failed trackers plus per-item details.
Annotations the server declares
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
create_trackerCreates a new tracker for a tracking number.No findings
Why it is in this group
- The name "create_tracker" says "create": a word for a change.
Description, as the server wrote it Creates a new tracker for a tracking number. Use when the user explicitly wants ongoing monitoring or webhook updates; results arrive asynchronously — for immediate results use track or search_tracking. Idempotent: same parameters reuse the existing tracker; any field change creates a new one. Subscribes to webhook updates if configured. Returns the created tracker including its Ship24 trackerId.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
trackCreates a persistent tracker on the account AND returns full tracking results synchronously in one call (per-shipment plan).No findings
Why it is in this group
- The description's first verb is "create": a word for a change.
Description, as the server wrote it Creates a persistent tracker on the account AND returns full tracking results synchronously in one call (per-shipment plan). Idempotent: same payload reuses the existing tracker. Prefer search_tracking for one-off lookups when the per-call plan is available. If the returned shipment is still pending with no events, call get_tracking_results once with the returned trackerId before answering. Accepts the same fields as create_tracker — see that tool for field details.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
update_trackerPartially updates a tracker (PATCH).No findings
Why it is in this group
- The name "update_tracker" says "update": a word for a change.
Description, as the server wrote it Partially updates a tracker (PATCH). Only provided fields are changed. Common uses: toggling isSubscribed, correcting destination details, or setting a clientTrackerId.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
Only reads 7Claude Code: allow
download_webhook_historyRetrieves the full webhook push history for a tracker.No findings
Why it is in this group
- The description's first verb is "retrieve": a word for reading.
Description, as the server wrote it Retrieves the full webhook push history for a tracker. Returns metadata (trackingNumber, trackerId, clientTrackerId, webhookUrl, lastSuccessfulPushAt, lastFailedPushAt) and a list of all sent or failed pushes with status, pushTimestamp, requestBody, responseBody, responseHeaders, and responseStatusCode. Pending (unsent) webhooks are excluded. Results are sorted newest first. Rate-limited to 1 request/second per tracker.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
get_couriersReturns the list of all couriers supported by Ship24, including their unique courier codes, human-readable names, and any special tracking requirements.No findings
Why it is in this group
- The name "get_couriers" says "get": a word for reading.
Description, as the server wrote it Returns the list of all couriers supported by Ship24, including their unique courier codes, human-readable names, and any special tracking requirements. Use this tool to discover valid courierCode values before creating or updating trackers, or to help identify which courier handles a particular tracking number format. Note: this endpoint has a rate limit of 1 request/second; cache results when possible.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
get_trackerRetrieves a single tracker by trackerId (or clientTrackerId when searchBy is set).No findings
Why it is in this group
- The name "get_tracker" says "get": a word for reading.
Description, as the server wrote it Retrieves a single tracker by trackerId (or clientTrackerId when searchBy is set). Returns tracker metadata only — use get_tracking_results for events and status.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
get_tracking_resultsReturns full tracking results for an existing tracker: metadata, shipment status, all events in order, and delivery statistics.No findings
Why it is in this group
- The name "get_tracking_results" says "get": a word for reading.
Description, as the server wrote it Returns full tracking results for an existing tracker: metadata, shipment status, all events in order, and delivery statistics. Primary tool for "where is my package?" when you have a trackerId. statusMilestone values: pending | info_received | in_transit | out_for_delivery | failed_attempt | available_for_pickup | delivered | exception.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
list_trackersReturns a paginated list of all trackers.No findings
Why it is in this group
- The name "list_trackers" says "list": a word for reading.
Description, as the server wrote it Returns a paginated list of all trackers. Supports offset (page/limit) or cursor-based pagination. Filter by subscription status with isSubscribed.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
search_trackingDefault tool for one-off tracking lookups ('track X', 'where is my package').No findings
Why it is in this group
- The name "search_tracking" says "search": a word for reading.
Description, as the server wrote it Default tool for one-off tracking lookups ('track X', 'where is my package'). Synchronous per-call plan endpoint: returns full results (status, events, statistics) immediately and creates NO tracker on the account. Billed per call. Requires an active per-call plan — if it fails with no_active_subscription, use the track tool instead.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
search_tracking_by_numberReturns existing tracking results for a raw tracking number across trackers already on the account, without needing a trackerId.No findings
Why it is in this group
- The name "search_tracking_by_number" says "search": a word for reading.
Description, as the server wrote it Returns existing tracking results for a raw tracking number across trackers already on the account, without needing a trackerId. Free read: never creates a tracker and never triggers a new crawl. Responds 404 tracker_not_found if no tracker exists for that number — in that case use search_tracking (per-call) or track (per-shipment). Use this first when a tracker may already exist.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.0.1. Values in angle brackets are yours to fill in.
claude mcp add --transport http tracking https://api.ship24.com/mcp --header 'Authorization: <your-authorization>'Run in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__tracking__list_trackers",
"mcp__tracking__get_tracker",
"mcp__tracking__get_tracking_results",
"mcp__tracking__search_tracking_by_number",
"mcp__tracking__get_couriers",
"mcp__tracking__search_tracking",
"mcp__tracking__download_webhook_history"
],
"ask": [
"mcp__tracking__create_tracker",
"mcp__tracking__bulk_create_trackers",
"mcp__tracking__track",
"mcp__tracking__update_tracker"
],
"deny": [
"mcp__tracking__resend_webhooks"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as tracking. Review it before you use it.