DSV Shipment Tracking MCP Server An MCP (Model Context Protocol) server that connects AI assistants like Claude to DSV's live shipment tracking API. Ask your AI agent "where is waybill 3476472018?" and get back real-time tracking data: locations, goods details, full event history, and per-package scan events.
Config is the same across clients — only the file and path differ.
{
"mcpServers": {
"dsv-tracking": {
"command": "/absolute/path/to/bin/dsv-tracking-mcp"
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
DSV Shipment Tracking MCP Server An MCP (Model Context Protocol) server that connects AI assistants like Claude to DSV's live shipment tracking API. Ask your AI agent "where is waybill 3476472018?" and get back real-time tracking data: locations, goods details, full event history, and per-package scan events.
No automated test available for this server. Check the GitHub README for setup instructions.
Five weighted categories — click any category to see the underlying evidence.
No known CVEs.
No package registry to scan.
This server is missing a description. Tools and install config are also missing.If you've used it, help the community.
Add informationBe the first to review
Have you used this server?
Share your experience — it helps other developers decide.
Sign in to write a review.
Others in ai-ml / analytics
Persistent memory using a knowledge graph
Dynamic problem-solving through sequential thought chains
Workspace template + MCP server for Claude Code, Codex CLI, Cursor & Windsurf. Multi-agent knowledge engine (ag-refresh / ag-ask) that turns any codebase into a queryable AI assistant.
MCP Server for GCP environment for interacting with various Observability APIs.
MCP Security Weekly
Get CVE alerts and security updates for Dsv Tracking Mcp Server and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
An MCP (Model Context Protocol) server that exposes DSV's public shipment tracking API as LLM tools. Built as a Sendify code challenge submission.
Claude Desktop — asking "Where is waybill 3476472018?"
![]()
MCP Inspector — all three tools listed, live search result for reference 3476230325
![]()
| Requirement | Status | Notes |
|---|---|---|
| Accept tracking reference as input | ✅ | track_shipment tool accepts any DSV reference (waybill, STT, booking ID, etc.) |
| Sender name | ⚠️ | Not available — DSV's public tracking API never exposes party names. See Why names are missing. |
| Sender address | ✅ | Postcode, city, country returned as shipper_place and collect_from |
| Receiver name | ⚠️ | Not available — same reason as sender name |
| Receiver address | ✅ | Postcode, city, country returned as consignee_place and deliver_to |
| Weight | ✅ | goods.weight with value and unit (KGS) |
| Dimensions | ⚠️ | Field present in schema; empty on all observed shipments |
| Piece count | ✅ | goods.pieces |
| Complete tracking history | ✅ | events[] — chronological, with location and event code |
| Per-package tracking events (bonus) | ✅ | packages[].events[] — individual scan history per package |
| Setup instructions | ✅ | Below |
| Run instructions | ✅ | Below |
| Test instructions | ✅ | Below |
DSV's public tracking endpoint (mydsv.dsv.com/app/tracking-public/) is intentionally privacy-limited. It returns location data for shipments (postcode, city, country) but never returns party names — no shipper company name, no consignee company name, no contact names.
This is a property of the data source, not a limitation of this server. The authenticated DSV API exposes party names, but requires a DSV customer login and is out of scope for this challenge.
What the server does return for each party:
"shipper_place": { "post_code": "44240", "city": "Kungälv", "country_code": "SE", "country": "Sweden" },
"consignee_place": { "post_code": "43974", "city": "Fjärås", "country_code": "SE", "country": "Sweden" },
"collect_from": { "post_code": "44240", "city": "Kungälv", "country_code": "SE", "country": "Sweden" },
"deliver_to": { "post_code": "43974", "city": "Fjärås", "country_code": "SE", "country": "Sweden" },
"dispatching_office": { "city": "Göteborg", "country_code": "SE", "country": "Sweden" }
See ADR 0002 for the full decision record.
| Tool | Input | Returns |
|---|---|---|
track_shipment | reference (string) | List of matching shipment summaries with status, locations, progress %, and shipment_id |
get_shipment_details | shipment_id (string) | Full detail: locations, goods (weight/pieces/volume), complete event history, per-package events |
list_reference_types | none | The 21 reference formats DSV accepts (waybill, STT, container, etc.) with validation regex |
Scope: LAND (road freight) shipments only. SEA, AIR, RAIL not implemented.
Requirements:
go version to checkPATH, or set CHROMEDP_EXEC_PATHmydsv.dsv.comChrome is required because DSV's API is protected by Cap.js bot detection. The server runs a real headless Chrome instance to bypass it automatically. See docs/UPSTREAM.md for the full technical explanation.
Build:
# macOS / Linux
git clone https://github.com/devon1910/dsv-tracking-mcp-server
cd dsv-tracking-mcp-server
go build -o
... [View full README on GitHub](https://github.com/devon1910/dsv-tracking-mcp-server#readme)