Skip to main content
Glama
ebongard

renfield-mcp-tracking

by ebongard

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.

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 UPS 1Z… and DHL JJD…; ambiguous numeric numbers fall back to TRACKING_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

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

Available Tools

3 tools
detect_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.

ParametersJSON Schema
NameRequiredDescriptionDefault
tracking_numberYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses behavioral traits: best effort, confident only for certain formats, returns fallback with confident=False for ambiguous numbers. Since no annotations are provided, the description carries the full burden and does so adequately.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise, front-loading the main purpose in the first sentence, and uses an Args section efficiently for the single parameter.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity, the description provides sufficient behavioral detail and limitations. It mentions the confident flag, though it could be slightly more explicit about the return format.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The only parameter 'tracking_number' is described as 'The number to classify,' which adds minimal meaning beyond the schema. With 0% schema description coverage, the description compensates partially but not richly.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool guesses the carrier from a tracking number format, mentioning specific carriers (UPS, DHL) and distinguishing it from siblings like list_carriers and track_parcel.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context on when to use the tool, indicating it is for classifying a tracking number, and describes behavior like fallback carrier and confidence flag, but does not explicitly mention when not to use or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description fully discloses the tool's behavior: it returns a list of carriers with a flag indicating whether each is configured and usable. It explains the meaning of 'configured=False' for api carriers and that link carriers always work. No side effects are mentioned, which is appropriate for a read-only listing operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: two focused sentences plus an additional clarifying line. It is front-loaded with the primary purpose, and every sentence provides essential information without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no parameters and an output schema exists, the description sufficiently explains what the tool returns (list of carriers with configuration status) and interprets the status values. This is complete for an agent to understand the tool's output.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has no parameters, so the description does not need to add meaning beyond the schema. Per guidelines, 0 parameters yields a baseline of 4. The description adds value by explaining the output semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the primary function: listing supported carriers and their configuration status. It distinguishes between 'api' and 'link' carriers, providing specific details that differentiate this tool from its siblings (detect_carrier, track_parcel).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use the tool (to see available carriers and their usability) and provides context about credential requirements for 'api' carriers. However, it does not explicitly state when not to use it or mention alternative tools, though the context is implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
tracking_numberYes
carrierNoauto

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It discloses key behaviors: carrier auto-detection, the return structure (statuses, events order, etc.), and default parameter values. This is comprehensive without annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with purpose and organized into Args and Returns sections. Every sentence adds value, though it is slightly verbose. Still efficiently conveys all necessary information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description thoroughly explains return fields including status enum values, events ordering, and web_url. It covers input, behavior, and output completely for a parcel tracking tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds significant meaning beyond the bare input schema. It explains tracking_number as 'carrier tracking number / piece code' and lists valid carrier codes for carrier parameter. This fully compensates for the 0% schema description coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's action ('Track a parcel') and the resources involved ('status, ETA and event history'). It effectively distinguishes from sibling tools 'detect_carrier' and 'list_carriers' which have different purposes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides implied usage (e.g., carrier auto-detection) but does not explicitly state when to use this tool versus siblings or any when-not scenarios. It lacks explicit alternatives or exclusion context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 3 tool updatesv1.0.0
    • First observeddetect_carrier
    • First observedlist_carriers
    • First observedtrack_parcel

TDQS

A4.5/5.0
Disambiguation5/5

Each tool has a distinct purpose: carrier detection, listing carriers, and tracking parcels. No overlap in functionality.

Naming Consistency5/5

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.

Tool Count5/5

With only 3 tools, the set is concise yet sufficient for the domain of parcel tracking. Each tool earns its place without unnecessary bloat.

Completeness5/5

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.

Maintenance

ActivityStale
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides 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.
    2
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    A 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.
    1
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    MCP 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.
    3
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ebongard/renfield-mcp-tracking'

If you have feedback or need assistance with the MCP directory API, please join our Discord server