renfield-mcp-tracking
Multi-carrier parcel tracking server that communicates directly with carrier APIs (DHL, UPS, FedEx, etc.) without third-party aggregators, providing normalized tracking status and events.
README
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 tracking.dpd.de. |
| Hermes | Web deep-link only | → myhermes.de. |
| GLS | Web deep-link only | → gls-group.com. |
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.
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_API_KEY |
DHL Developer Portal app key (the DHL-API-Key). |
UPS_CLIENT_ID / UPS_CLIENT_SECRET |
UPS developer app credentials. |
FEDEX_CLIENT_ID / FEDEX_CLIENT_SECRET |
FedEx developer app credentials. |
TRACKING_DEFAULT_CARRIER |
Fallback when auto-detect is inconclusive (default dhl). |
DHL_TRACKING_BASE_URL / UPS_TRACKING_BASE_URL / FEDEX_TRACKING_BASE_URL |
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 -q
Use 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
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.