Powered by Microsoft Copilot Studio ❤️ MCP
This project provides an MCP (Model Context Protocol) Server exposing a DHL Shipment Tracking tool that can be used by Microsoft Copilot Studio, GitHub Copilot Agents, or any other MCP‑compatible client.
It is based on the official Microsoft MCP Streamable HTTP Template, but the server logic has been replaced with a production‑ready DHL shipment tracking integration.
The server exposes one MCP Tool: track-shipment
Tracks a DHL shipment using the official DHL Shipment Tracking - Unified API. https://developer.dhl.com/api-reference/shipment-tracking
Parameters:
| Name | Type | Description |
|---|---|---|
| trackingNumber | string | The DHL tracking number |
| apiKey | string | User-provided DHL API key |
Response:
Formatted JSON output from the DHL API, suitable for LLM processing.
The server is built on:
- Express.js for HTTP routing
- Model Context Protocol SDK for defining tools
- Streamable HTTP Transport for Copilot Studio compatibility
- Zod for schema validation
MCP clients communicate via:
POST /mcp
If you open /mcp in the browser, seeing this means the server is working:
{"jsonrpc":"2.0","error":{"code":-32000,"message":"Method not allowed."},"id":null}
src/
server.ts ← DHL MCP server implementation
assets/ ← Optional images
infra/ ← Azure deployment template (from Microsoft)
README.md
Install and start:
npm install
npm run build && npm run start
Server runs on:
- Start the server
- Open VS Code Terminal → PORTS
- Forward port 3000
- Set visibility to Public
- Use the forwarded URL ending in /mcp, e.g.:
https://abc-3000.devtunnels.ms/mcp
Login:
azd auth login
Deploy:
azd up
Remove everything later:
azd down
- Open Command Palette
- Run: MCP: Add Server
- Choose HTTP / SSE
- Enter your URL ending in /mcp
- Name it e.g. DHLTracking
- Open GitHub Copilot → Agent Mode
- Enable the tool
Ask:
Track shipment 00340434161234567890 using API key XYZ.
- Open Custom Connectors
- Import from GitHub
- Set the connector host to your tunnel/Azure URL
- Create or open an Agent
- Add the MCP Server under Tools → Model Context Protocol
- Create a connection
- Test with:
Track shipment 00340434161234567890.
The user must provide their own DHL API key.
The server does not store, log, or cache the API key.
{ "method": "tools.call", "params": { "name": "track-shipment", "arguments": { "trackingNumber": "0034043416XXXXXXX", "apiKey": "<YOUR_KEY>" } } }
This project is originally based on:
Microsoft MCP Streamable HTTP Template
https://github.com/microsoft/mcsmcp
Only the server logic was replaced to support DHL tracking.
Contributions are welcome.
For Microsoft MCP feedback, use the upstream template repo.
DHL trademarks belong to DHL and are used only for demo/integration purposes.
Microsoft trademarks follow Microsoft’s standard brand guidelines.