bluedart-mcp-server
Provides tools for interacting with the BlueDart (DHL eCommerce India) shipping API, enabling waybill generation, cancellation, pickup scheduling, transit-time lookup, tracking, and pincode master downloads.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@bluedart-mcp-server Track shipment AWB 1234567890"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
bluedart-mcp-server
Model Context Protocol (MCP) server for the BlueDart (DHL eCommerce India) shipping API.
Exposes BlueDart's APIGEE endpoints — waybill creation, cancellation, pickup scheduling, transit-time lookup, tracking, and master downloads — as MCP tools that can be used by Claude Desktop, Claude Code, ChatGPT, and other standard MCP clients.
Tools
Tool | Method | What it does |
| write | Create a single AWB (POST /waybill/v1/GenerateWayBill) |
| write | Bulk-create AWBs (POST /waybill/v1/ImportData) |
| write | Cancel an AWB before in-scan |
| write | Schedule a pickup |
| write | Cancel a registered pickup |
| read | Estimate delivery date between two pincodes |
| read | Track a shipment by AWB (markdown or json) |
| read | Download serviceable pincode master |
All tools return both a text and a structuredContent payload, with BlueDart's error fields (Status[].StatusInformation, IsError, etc.) surfaced into a normalised error field.
Related MCP server: Boxzooka MCP Server
Setup
npm install
cp .env.example .env # fill in your BlueDart APIGEE credentials
npm run buildEnvironment variables
Var | Required | Description |
| yes |
|
| yes | OAuth Consumer Key from your APIGEE app |
| yes | OAuth Consumer Secret |
| yes | Profile LoginID (used in BlueDart payload) |
| yes | Profile LicenceKey |
| no |
|
| no |
|
JWT tokens are fetched once from /token/v1/login and cached in memory; the server auto-refreshes when the token is within 30 seconds of expiry, and will retry once on a 401/403.
Client configuration
Claude Desktop / Claude Code
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):
{
"mcpServers": {
"bluedart": {
"command": "node",
"args": ["/absolute/path/to/bluedart-mcp-server/dist/index.js"],
"env": {
"BLUEDART_BASE_URL": "https://apigateway-sandbox.bluedart.com/in/transportation",
"BLUEDART_CLIENT_ID": "...",
"BLUEDART_CLIENT_SECRET": "...",
"BLUEDART_LOGIN_ID": "...",
"BLUEDART_LICENSE_KEY": "...",
"BLUEDART_API_TYPE": "S"
}
}
}
}ChatGPT
Configure as a stdio MCP server with the same node dist/index.js command and environment variables.
Notes & caveats
OriginArea must match the shipper pincode region. A mismatch returns
InvalidAreaScNotInRegion. Example:OriginArea='DEL'with pincode110030.CreditReferenceNo must be unique per shipment. Reuse triggers
Waybill already generated.Weight is in kilograms; dimensions in centimetres.
The label PDF (
AWBPrintContent) is base64-encoded and can be very large — setPDFOutputNotRequired: trueinServicesif you don't need it.This server only does API I/O. Custom label rendering (e.g. with logos/barcodes) is intentionally out of scope — do that in your application layer.
Development
npm run dev # tsx watch mode
npm run build # compile to dist/
npm start # run built server (stdio)License
MIT
Available Tools
8 toolsbluedart_cancel_pickupCancel BlueDart PickupADestructiveIdempotent
Cancel a previously registered pickup via POST /cancel-pickup/v1/CancelPickup. Requires the TokenNumber returned by bluedart_register_pickup and the original ShipmentPickupDate.
Inputs: token_number (required), shipment_pickup_date (required).
bluedart_cancel_waybillCancel BlueDart WaybillADestructiveIdempotent
Cancel a BlueDart waybill by AWB number via POST /waybill/v1/CancelWaybill. Only works before the shipment has been manifest-scanned (in-scanned). After in-scan, cancellation is rejected by BlueDart.
Inputs: awb_no (required).
bluedart_download_pincode_masterDownload BlueDart Pincode MasterARead-onlyIdempotent
Download serviceable pincode master data via POST /masterdownload/v1/DownloadPinCodeMaster. Pass last_sync_date to get only changes since that date. The response can be very large; consider syncing incrementally.
Inputs: last_sync_date (required).
bluedart_generate_waybillGenerate BlueDart WaybillADestructive
Create a single BlueDart Air Waybill (AWB) for a shipment. Calls POST /waybill/v1/GenerateWayBill. Returns the AWB number, routing info, and (unless suppressed) a base64 AWB label PDF in AWBPrintContent. PRECONDITIONS: OriginArea must match the shipper pincode region (e.g. OriginArea='DEL' for pin '110030') or BlueDart returns InvalidAreaScNotInRegion. CreditReferenceNo must be unique per shipment or BlueDart rejects with 'Waybill already generated'. Weight is in kilograms, dimensions in centimetres.
Inputs: Consignee (required), Shipper (required), Returnadds (required), Services (required).
bluedart_get_transit_timeGet BlueDart Domestic Transit TimeARead-onlyIdempotent
Estimate the expected delivery date for a shipment between two Indian pincodes via POST /transit/v1/GetDomesticTransitTimeForPinCodeandProduct. Read-only; safe to call repeatedly.
Inputs: origin_pincode (required), destination_pincode (required), product_code, sub_product_code, +2 more.
bluedart_import_waybillBulk Import BlueDart WaybillsADestructive
Create multiple BlueDart waybills in a single request via POST /waybill/v1/ImportData. Each entry has the same shape as bluedart_generate_waybill. Returns per-shipment results; partial successes are possible.
Inputs: shipments (required).
bluedart_register_pickupRegister BlueDart PickupADestructive
Schedule a BlueDart pickup at the customer location via POST /pickup/v1/RegisterPickup. Returns a TokenNumber that is required to cancel the pickup later. AreaCode must match the pickup pincode region (same constraint as waybill OriginArea).
Inputs: ProductCode (required), AreaCode (required), CustomerCode (required), CustomerName (required), +13 more.
bluedart_track_shipmentTrack BlueDart ShipmentARead-onlyIdempotent
Track a BlueDart shipment by AWB number. Read-only. Returns the current status, expected delivery date, and (when include_scans=true) the scan history. Set response_format='markdown' for a human-readable summary or 'json' for the raw payload.
Inputs: awb_number (required), include_scans, response_format.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 8 tools
Each tool targets a distinct operation (cancel, create, track, schedule, etc.) with no overlap. The descriptions clearly differentiate their purposes.
All tools follow the consistent pattern 'bluedart_verb_noun' (e.g., bluedart_cancel_pickup, bluedart_generate_waybill), making the set predictable.
With 8 tools, the server covers the core logistics workflows without being overwhelming or too sparse—excellent scope for a single domain.
The tool set covers essential CRUD-like operations for waybills and pickups, plus tracking and transit time. Minor gaps like updating a shipment or listing waybills are not critical for the primary use cases.
Maintenance
Related MCP Connectors
MCP server for tracking parcels using the NetCourier tracking service.
MCP server for EasyPost — rate shipments, buy & refund labels, track packages, verify addresses.
MCP server for ua_postal_tracking_mcp
MCP server for SkuVault — products, inventory, sales, purchase orders and stock adjustments.
Related MCP Servers
- AlicenseAqualityDmaintenanceAn MCP server for the Chit Chats shipping API that enables shipment management, tracking, rate comparison, and batch operations.20MIT
- FlicenseNot gradedqualityCmaintenanceMCP server wrapping Boxzooka's bxz-api to provide 33 tools for managing products, inbound orders, orders, inventory, shipments, and returns.-
- AlicenseAqualityBmaintenanceA unified MCP connector for Bangladeshi couriers, enabling parcel booking and tracking across multiple services through a single interface.8928 npmApache 2.0
- AlicenseBqualityFmaintenanceAn MCP server for the Delovye Linii logistics API, enabling cargo delivery cost calculation, order creation, tracking, and directory lookups for cities and terminals.640 npmMIT