NetCourier Parcel Tracking
Server Details
MCP server for tracking parcels using the NetCourier tracking service.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
- Repository
- zahidul-alam-m4/tracking-mcp-server
- GitHub Stars
- 0
TDQS
Scored across 3 tools
Each tool targets a distinct need: current tracking status/history (get_parcel_tracking), proof-of-delivery specifics (get_delivery_proof), and configuration discovery (list_tracking_systems). The descriptions explicitly cross-reference each other, telling the agent to use get_delivery_proof when delivery location or signature is requested, which removes the main source of overlap.
All three tools follow a clean verb_noun snake_case pattern (get_delivery_proof, get_parcel_tracking, list_tracking_systems). Verbs are used consistently and meaningfully, with no mixed conventions.
Three tools is on the thin side but well-scoped for a narrow, read-only parcel-tracking domain. Each earns its place, though a slightly broader surface could justify a few more tools.
The surface covers the core lifecycle reads for parcel tracking: system discovery, tracking status/events, and proof of delivery. Gaps like bulk/multi-parcel lookup or event-only queries exist but are minor for the stated purpose.
Available Tools
3 toolsget_delivery_proofAInspect
Get proof-of-delivery details for a parcel: delivery/collection location and the recipient's signature, from a courier system. Use when the user asks where a parcel was delivered, who signed for it, or for proof of delivery / POD. Requires the system name, the tracking number, and a postcode (the collection or delivery postcode for that parcel) - if the postcode is not given or known from earlier in the conversation, ask the user for it rather than guessing.
| Name | Required | Description | Default |
|---|---|---|---|
| system | Yes | Name of the tracking system, e.g. 'sparkle'. Lower-case sub-domain name only. | |
| postcode | Yes | The collection or delivery postcode for this parcel, e.g. 'W14 0HN' | |
| trackingNo | Yes | The parcel tracking number, e.g. EX10004130651 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. It usefully states the required inputs and the ask-don't-guess rule for a missing postcode, but says nothing about permissions, what happens when no POD exists, or error/empty-result behavior in a courier lookup.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose, then usage triggers, then input requirements and the missing-postcode rule. Every sentence carries information; only the parenthetical 'proof of delivery / POD' is mildly redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by naming the returned fields (location, signature source). All three required params are covered and the missing-input workflow is handled, leaving only failure/empty-result handling unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters are already documented, including examples for system, postcode, and trackingNo. The description restates the required set and clarifies postcode means 'the collection or delivery postcode for that parcel', a marginal addition over the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Get proof-of-delivery details for a parcel') and enumerates what is returned (delivery/collection location and recipient signature). It is clearly separable from get_parcel_tracking, though it never names that sibling to sharpen the contrast.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete trigger conditions ('where a parcel was delivered', 'who signed for it', 'POD') and a fallback behavior when the postcode is unknown ('ask the user rather than guessing'). It does not name alternatives such as get_parcel_tracking for status-only queries, so routing guidance is clear but not exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_parcel_trackingAInspect
Get the latest tracking information / status / event history of a parcel (consignment) from a courier system. Use when the user asks about a parcel, shipment, consignment or tracking number and mentions a system name (e.g. 'sparkle'). Extract the system name and the tracking number from the user's message. If the user separately asks for the delivery location or the signature/proof of delivery, use the get_delivery_proof tool instead (or afterwards) - it needs a postcode as well.
| Name | Required | Description | Default |
|---|---|---|---|
| system | Yes | Name of the tracking system, e.g. 'sparkle' from 'in sparkle system'. Lower-case sub-domain name only. | |
| trackingNo | Yes | The parcel tracking number, e.g. EX10004130651 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the source system, the required inputs, and what comes back (latest status plus event history), which is solid. It stops short of disclosing auth/permission needs, rate limits, or handling of unknown tracking numbers, so it is not fully complete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core purpose and then routes to the alternative; every sentence is useful. It is slightly long in packing extraction instructions and the sibling dependency note into the description, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema or annotation coverage, yet the description states what the tool returns and when to call it versus its sibling, which covers the essentials for a simple 2-param read tool. Minor gaps around authentication or failure behavior remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and already documents both parameters, including the 'sparkle' example and the tracking-number format, so this is baseline 3. The description's instruction to extract the system name and tracking number from the user's message adds only marginal value over the schema's own examples.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (get) and resource (tracking information/status/event history of a parcel/consignment from a courier system), and clearly distinguishes itself from get_delivery_proof and list_tracking_systems. An agent can tell exactly what this retrieves without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use it (user asks about a parcel/shipment/consignment/tracking number with a system name) and names the alternative for a related need ('delivery location or signature/proof of delivery, use get_delivery_proof instead'). It even notes the dependency (postcode) required by the sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_tracking_systemsAInspect
List the tracking systems that are explicitly configured, and the default URL pattern used for other system names.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden. It discloses the content scope (explicitly configured systems and a default URL pattern for others), which is useful, but it does not state that the operation is read-only, nor does it mention authentication, rate limits, or return format. It is minimally viable for a list operation but lacks fuller transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that front-loads the main action and packs in the two key pieces of returned information without any wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple zero-parameter list tool with no output schema, the description adequately explains what the tool returns (configured tracking systems and the default URL pattern for others). It could be stronger if it clarified the return format or how to use the results, but it covers the essential conceptual return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4. The description appropriately does not discuss parameters, and there is nothing in the schema that needs compensating for.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and resource (tracking systems), and adds the scope of what is returned: explicitly configured systems plus the default URL pattern for other system names. However, it does not differentiate itself from the sibling tools get_delivery_proof and get_parcel_tracking, which likely retrieve tracking data rather than system configuration.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no when-to-use guidance, no prerequisites, and no alternatives. It does not indicate whether this should be called before or instead of get_parcel_tracking or get_delivery_proof, leaving the agent to infer usage entirely.
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.
3 tool updates
- First observed
get_delivery_proof - First observed
get_parcel_tracking - First observed
list_tracking_systems
Related MCP Connectors
MCP server for ua_postal_tracking_mcp
MCP server for EasyPost — rate shipments, buy & refund labels, track packages, verify addresses.
MCP server for ua_e_commerce_price_tracker_mcp
An MCP server to send personalised direct mail.
Related MCP Servers
- AlicenseCqualityDmaintenance한국 택배 배송 조회를 위한 MCP 서버 MCP Server for Korean Shipment Tracking21MIT
- AlicenseAqualityCmaintenanceMCP server for APC Overnight. Book, label, track and cancel UK parcel shipments from any MCP-compatible AI.612 npm2MIT
- 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
- AlicenseBqualityFmaintenanceAn MCP server for the Delovye Linii logistics API, enabling cargo delivery cost calculation, order creation, tracking, and directory lookups for cities and terminals.634 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.