renfield-mcp-tracking
Integrates with Deutsche Post's tracking service (via DHL's Unified API) to track parcels, returning normalized status and events.
Integrates with DHL's Shipment Tracking Unified API to track parcels, returning normalized status and events.
Provides a web deep-link to DPD's tracking page for parcel tracking (no API integration).
Integrates with FedEx Track API to track parcels, returning normalized status and events.
Provides a web deep-link to Hermes' tracking page for parcel tracking (no API integration).
Integrates with UPS Track API to track parcels, returning normalized status and events.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@renfield-mcp-trackingtrack parcel 1Z999AA10123456784"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
renfield-mcp-tracking
Multi-carrier parcel-tracking MCP server for Renfield. Talks directly to carrier APIs — no third-party aggregator (no Shippo, AfterShip, EasyPost, …). Your tracking data never passes through a SaaS middleman.
Carriers
Carrier | Backend | Notes |
DHL / Deutsche Post | Shipment Tracking – Unified API | Free, production key. One endpoint covers DHL Paket, Express, Deutsche Post, Freight. Initial quota 250 calls/day. |
UPS | OAuth client-credentials + Track API | Free developer app. |
FedEx | OAuth client-credentials + Track API | Free developer app. |
DPD | Web deep-link only | No free public API for private users → returns a link into |
Hermes | Web deep-link only | → |
GLS | Web deep-link only | → |
Each API adapter self-disables when its credentials are absent — the server
still starts, and list_carriers() reports which carriers are usable. The
link-only carriers always work (they only return a tracking URL). Adding real
API access for DPD/Hermes/GLS later means dropping in a CarrierAdapter
subclass and registering it — no other code changes.
Related MCP server: DB2ST MCP
Tools
track_parcel(tracking_number, carrier="auto")— primary. Returns a normalized result:status,status_description,estimated_delivery,events(newest first),web_url,success.list_carriers()— supported carriers + configured state.detect_carrier(tracking_number)— guess the carrier from the number format (confident for UPS1Z…and DHLJJD…; ambiguous numeric numbers fall back toTRACKING_DEFAULT_CARRIER).
Normalized status values
pre_transit · transit · out_for_delivery · delivered · exception ·
unknown · not_found · link_only · not_configured · error
Configuration
Env var | Purpose |
| DHL Developer Portal app key (the |
| UPS developer app credentials. |
| FedEx developer app credentials. |
| Fallback when auto-detect is inconclusive (default |
| Override API base (test environments). |
Getting keys
DHL — register at https://developer.dhl.com/, create an app, subscribe it to Shipment Tracking – Unified, copy the key. Works against production.
UPS — https://developer.ups.com/ → create an app → OAuth client id/secret.
FedEx — https://developer.fedex.com/ → create an app → Track API.
Run
pip install -e ".[dev]"
python -m renfield_mcp_tracking # stdio MCP server
pytest -qUse in Renfield
Installed into the backend image via src/backend/requirements.txt and run as a
stdio server from config/mcp_servers.yaml (name: tracking). Enable with
TRACKING_ENABLED=true and set whichever carrier keys you have. Tools become
available to the agent as mcp.tracking.track_parcel etc.
License
MIT
Available Tools
3 toolsdetect_carrierA
Guess the carrier from a tracking-number format (best effort).
Confident only for UPS ('1Z…') and DHL ('JJD…/JD…'). For ambiguous numeric numbers it returns the configured fallback carrier and confident=False.
Args: tracking_number: The number to classify.
Inputs: tracking_number (required).
list_carriersA
List supported carriers and whether each is configured/usable.
'api' carriers need credentials (configured=False means missing keys). 'link' carriers always work but only return a web tracking link.
Inputs: no named parameters. Returns: result
track_parcelA
Track a parcel and return its current status, ETA and event history.
Args: tracking_number: The carrier tracking number / piece code. carrier: Carrier code (dhl, ups, fedex, dpd, hermes, gls) or "auto" to detect from the number format. Default "auto".
Returns a normalized result with: status (pre_transit / transit / out_for_delivery / delivered / exception / unknown / not_found / link_only / not_configured / error), status_description, estimated_delivery, events (newest first), web_url, and success.
Inputs: tracking_number (required), carrier.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
v1.0.0- First observed
detect_carrier - First observed
list_carriers - First observed
track_parcel
TDQS
Scored across 3 tools
Each tool has a distinct purpose: carrier detection, listing carriers, and tracking parcels. No overlap in functionality.
All tools follow a snake_case verb_noun pattern (detect_carrier, list_carriers, track_parcel), with consistent naming. The slight pluralization in list_carriers is natural for listing operations.
With only 3 tools, the set is concise yet sufficient for the domain of parcel tracking. Each tool earns its place without unnecessary bloat.
The tool set covers the core lifecycle: carrier detection (identify carrier from number), carrier discovery (list available carriers), and tracking (get status and events). No obvious gaps for a tracking helper server.
Related MCP Connectors
Track parcels across 2,500+ carriers and 3PLs: live delivery status, event history, carrier lookup.
Multi-carrier shipping functionality with built-in, discounted carrier accounts. Compare rates, generate PDF shipping labels, schedule pickups and track packages in automated way or in your chatbox, no coding required. This is a demo server that is functional with no account needed and no auth. For production use please find our production version.
Track parcels + ocean containers across 549 total carriers via REST and four existing MCP tools.
Real-time order tracking for Shopify merchants: look up, list, and refresh shipments.
Related MCP Servers
AlicenseNot gradedqualityDmaintenanceProvides shipment tracking api and logistics management capabilities through the TrackMage API. Enables creation and monitoring of shipments and orders, carrier detection, tracking checkpoint retrieval, and comprehensive logistics workflow automation.2MIT- AlicenseNot gradedqualityDmaintenanceA horizontally scalable Model Context Protocol server for exposing shipment tracking (and other data sources) as authenticated MCP tools, starting with DB Schenker's public tracking endpoint.1MIT
- AlicenseNot gradedqualityDmaintenanceEnables package tracking across multiple carriers by auto-detecting the carrier from a tracking number and returning structured events. Supports USPS, UPS, FedEx, DHL, India Post, Delhivery, BlueDart, and Aramex.MIT
- AlicenseAqualityDmaintenanceMCP server for tracking Japanese logistics carriers (Yamato, Sagawa, Japan Post) via mock or AfterShip adapter. Enables AI agents to query shipment status and history in natural language.3MIT