View as Markdown

DHL Integration

Manage DHL track shipment, create shipment, get label, delete shipment, validate address

The DHL integration provides access to manage DHL track shipment, create shipment, get label, delete shipment, validate address through the Integrate MCP server.

Installation

The DHL integration is included with the SDK:

import { dhlIntegration } from "integrate-sdk/server";

Setup

1. Create a DHL OAuth App

  1. Create an OAuth application for DHL
  2. Configure your redirect URI
  3. Note your Client ID and Client Secret

2. Configure the Integration on Your Server

Add the DHL integration to your server configuration. The integration automatically reads DHL_CLIENT_ID and DHL_CLIENT_SECRET from your environment variables:

import { createMCPServer, dhlIntegration } from "integrate-sdk/server";
 
export const { client: serverClient } = createMCPServer({
  apiKey: process.env.INTEGRATE_API_KEY,
  integrations: [
    dhlIntegration({
      scopes: ["shipping", "tracking"], // Optional
    }),
  ],
});

You can override the environment variables by passing explicit values:

dhlIntegration({
  clientId: process.env.CUSTOM_DHL_ID,
  clientSecret: process.env.CUSTOM_DHL_SECRET,
      scopes: ["shipping", "tracking"], // Optional
});

3. Client-Side Usage

The default client automatically includes all integrations. You can use it directly:

import { client } from "integrate-sdk";
 
await client.authorize("dhl");
const result = await client.dhl.trackShipment({});
 
console.log(result);

If you're using a custom client, add the integration to the integrations array:

import { createMCPClient, dhlIntegration } from "integrate-sdk";
 
const customClient = createMCPClient({
  integrations: [dhlIntegration()],
});

Configuration Options

export interface DhlIntegrationConfig {
  clientId?: string;

Default Scopes

These defaults are applied unless you override scopes in the integration config:

  • shipping
  • tracking

Tools

dhl_track_shipment

Track shipment

export interface DhlTrackShipmentParams { "trackingNumber"?: string;

dhl_create_shipment

Create shipment

export interface DhlCreateShipmentParams { shipment_json: string }

dhl_get_label

Get label

export interface DhlGetLabelParams { shipment_number: string }

dhl_delete_shipment

Delete shipment

export interface DhlDeleteShipmentParams { shipment_number: string }

dhl_validate_address

Validate address

export interface DhlValidateAddressParams { address_json: string }

Notes

  • Category: Shipping & Logistics
  • Authentication mode: OAuth