Skip to main content
Glama
auraajenticai

Aura Courier MCP

🚚 AURA COURIER MCP v2.4 — THE ENTERPRISE LOGISTICS MASTER MANUAL

Universal Multi-Carrier Logistics Engine, Spatial Intelligence Hub & Zero-Risk COD Gateway

Published by Aura Agentic AI · Architected with DeepMind Principles & Google Maps Platform


1. Executive Architecture Overview

Aura Courier MCP (https://courier.auraajenticai.cloud/mcp) is an enterprise-grade, carrier-agnostic Cash On Delivery (COD) logistics gateway and Model Context Protocol (MCP) server. It bridges autonomous AI models (Vertex AI, Claude, Antigravity, ChatGPT, Cursor) with physical courier networks across all 64 districts of Bangladesh.

Core Architectural Pillars

graph TD
    AI[AI Agent / Vertex AI / Dashboard] -->|Streamable-HTTP / MCP| MCP[Aura Courier MCP Server v2.4]
    
    subgraph "Intelligent Logic Engines"
        MCP --> ROUTER[Multi-Carrier Smart Router]
        MCP --> FRAUD[Bayesian Fraud & Delivery Risk Engine]
        MCP --> SPATIAL[Google Maps Platform Spatial Engine]
        MCP --> NDR[Automated NDR Resolution Suite]
        MCP --> WEBHOOKS[Bidirectional Webhook Hub]
    end
    
    subgraph "Physical Logistics Carriers"
        ROUTER --> SF[Steadfast Courier - 64 Districts]
        ROUTER --> PT[Pathao Express - On-Demand]
        ROUTER --> RX[RedX Delivery - 2,849 Hubs]
        ROUTER --> PF[Paperfly Go - Doorstep Coverage]
    end
    
    subgraph "Spatial Services"
        SPATIAL --> GEO[Geocoding API]
        SPATIAL --> ROUTES[Routes API v2:computeRoutes]
        SPATIAL --> STUDIO[Dynamic Map Studio]
    end
  1. Carrier-Agnostic Multi-Routing: Unifies Steadfast, Pathao, RedX, and Paperfly into a single normalized interface.

  2. Zero Mock Data Policy: Every single metric, delivery status, tariff calculation, and fraud score is computed against live carrier databases or authentic mathematical models.

  3. Spatial Hierarchy Resolver: Resolves street addresses into precise administrative hierarchies (City → Zone → Area) eliminating HTTP 422 errors.

  4. Automated NDR & Dispute Suite: Resolves failed courier deliveries via automated customer WhatsApp re-engagement and carrier operational hold tickets.

  5. Real-Time Webhook Processing: Instant asynchronous updates from carriers dispatched directly to merchant dashboards.


Related MCP server: renfield-mcp-tracking

2. Multi-Carrier Enterprise Integration Matrix

Aura Courier MCP seamlessly interfaces with all tier-1 Bangladesh courier APIs under a unified standard:

Provider

Endpoint / Base URL

Merchant Account / IDs

Auth Header / Secret

Operational Status

Steadfast

https://portal.packzy.com/api/v1

Account: <MERCHANT> (ID: <STORE_ID>)

Api-Key: <STEADFAST_API_KEY>Secret-Key: <STEADFAST_SECRET_KEY>

Active: get_balance verified 200 OK. Order booking pending carrier-side toggle.

Pathao

https://api-hermes.pathao.com

User: <PATHAO_USERNAME>Store: <MERCHANT> (ID: <PATHAO_STORE_ID>)

Client-ID: <PATHAO_CLIENT_ID>Client-Secret: <PATHAO_CLIENT_SECRET>

100% Active: OAuth2 token issuing, price calculation, auto-geocoding live.

RedX

https://openapi.redx.com.bd/v1.0.0-beta

Shop ID: <REDX_SHOP_ID>Pickup Store ID: <REDX_STORE_ID>

API-ACCESS-TOKEN: <REDX_API_TOKEN>(JWT Bearer Token)

100% Active: 2,849 delivery areas and parcel booking verified.

Paperfly

https://api.paperfly.com.bd

Store: <MERCHANT>User: <PAPERFLY_USERNAME>

paperflykey: <PAPERFLY_KEY>Basic Auth: <PAPERFLY_USERNAME> / <PAPERFLY_PASSWORD>

100% Active: Order placement (new_order_v2.php) and tracking verified.

Google Maps

https://maps.googleapis.com

Project: <GOOGLE_CLOUD_PROJECT>

<GOOGLE_MAPS_API_KEY>(Field Masked)

100% Active: Geocoding, Routes API, and Dynamic Map Studio active.


3. Official Carrier Integration Specifications

3.1. Pathao Express Integration

  • Token Issuance: POST /aladdin/api/v1/issue-token

    curl --location 'https://api-hermes.pathao.com/aladdin/api/v1/issue-token' \
      --header 'Content-Type: application/json' \
      --data-raw '{
        "client_id": "<PATHAO_CLIENT_ID>",
        "client_secret": "<PATHAO_CLIENT_SECRET>",
        "grant_type": "password",
        "username": "<PATHAO_USERNAME>",
        "password": "<PATHAO_PASSWORD>"
      }'
  • Store Management: GET /aladdin/api/v1/stores

    • Active Store: <PATHAO_STORE_ID> ("", Central Hub, Dhaka)

  • Parcel Booking: POST /aladdin/api/v1/orders

    • Required Fields: store_id, recipient_name, recipient_phone (11 digits), recipient_address (10-220 chars), delivery_type (48), item_type (2), item_weight (0.5 to 10 kg), amount_to_collect (integer).

    • Spatial Hierarchy: recipient_city, recipient_zone, recipient_area are auto-resolved from our intelligent catalog matcher; if unresolvable, they are safely omitted so Pathao's server-side geocoder infers them directly.

  • Order Tracking: GET /aladdin/api/v1/orders/{consignment_id}/info

  • Price Plan API: POST /aladdin/api/v1/merchant/price-plan

3.2. Steadfast Courier Integration

  • Base Portal: https://portal.packzy.com/api/v1

  • Headers: Api-Key: <STEADFAST_API_KEY>, Secret-Key: <STEADFAST_SECRET_KEY>

  • Account Balance: GET /get_balance

  • Fraud Risk Database: GET /fraud_check/{phone}

  • Order Dispatch: POST /create_order

  • Status Tracking: GET /status_by_trackingcode/{tracking_code}

3.3. RedX Delivery Integration

  • Base Portal: https://openapi.redx.com.bd/v1.0.0-beta

  • Headers: API-ACCESS-TOKEN: Bearer {token}

  • Delivery Areas (2,849 Hubs): GET /areas

  • Parcel Creation: POST /parcel

  • Parcel Tracking: GET /parcel/track/{tracking_id}

3.4. Paperfly Integration

  • Base Portal: https://api.paperfly.com.bd

  • Headers: paperflykey: <PAPERFLY_KEY>

  • Authentication: HTTP Basic Auth (<PAPERFLY_USERNAME>:<PAPERFLY_PASSWORD>)

  • Parcel Booking: POST /merchant/api/service/new_order_v2.php

  • Tracking: POST /API-Order-Tracking with ReferenceNumber


4. The 9 Enterprise Model Context Protocol (MCP) Tools

Aura Courier MCP exports 9 tools conforming to the MCP Specification (2024-11-05):

1. list_couriers

  • Purpose: Inspect carrier operational health and active credentials.

  • Input Schema: {}

  • Response: Array of providers with is_configured: true/false.

2. create_parcel

  • Purpose: Dispatch a real parcel through Steadfast, Pathao, RedX, Paperfly, or auto smart routing.

  • Input Schema:

    {
      "courier": "auto | steadfast | pathao | redx | paperfly",
      "invoice": "INV-2026-001",
      "recipient_name": "Rahim Ahmed",
      "recipient_phone": "01711223344",
      "recipient_address": "House 12, Road 4, Sector 3, Uttara, Dhaka",
      "cod_amount": 1500,
      "note": "Handle with care",
      "item_weight": 0.5
    }

3. track_parcel

  • Purpose: Consolidated shipment tracking across all carriers.

  • Input Schema: {"tracking_code": "SF-12345", "courier": "steadfast"}

4. get_balance

  • Purpose: Merchant COD vault balance & payout status.

  • Input Schema: {"courier": "steadfast"}

5. check_fraud_risk

  • Purpose: Nationwide e-commerce fraud and return-risk evaluation.

  • Features:

    • Connects to real nationwide logistics history (millions of consignments).

    • Evaluates delivery success rate, cancellation counts, and customer reliability.

    • Zero fabricated strings or simulated random metrics.

  • Input Schema: {"phone": "01711223344"}

6. validate_and_geocode_address

  • Purpose: Address verification via Google Maps Platform Geocoding API.

  • Returns: Formatted address, Thana, District, Division, lat/lng coordinates, and deliverability confidence score (0-100).

  • Input Schema: {"address": "Road 11, Banani, Dhaka", "district": "Dhaka"}

7. calculate_delivery_zone_and_fee

  • Purpose: Live road routing via Google Maps Platform Routes API (v2:computeRoutes).

  • Zones:

    • inside_dhaka (≤22 km): à§³80 | 24–48 hours

    • sub_dhaka (22–45 km or Savar/Gazipur/Keraniganj/Narayanganj): à§³100 | 48–72 hours

    • outside_dhaka (>45 km / nationwide): à§³150 | 72–96 hours

  • Input Schema: {"recipient_address": "Chittagong GEC Circle", "weight_kg": 1.0}

8. compare_courier_rates (v2.4 New)

  • Purpose: Side-by-side tariff, SLA, and COD fee comparison across all 4 carriers for any destination.

  • Input Schema:

    {
      "recipient_address": "Agrabad C/A, Chittagong",
      "weight_kg": 1.5,
      "cod_amount": 2500,
      "priority": "cheapest | fastest | balanced"
    }
  • Returns: Best recommended courier, savings rationale, and 4 detailed carrier quotes.

9. resolve_ndr_issue (v2.4 New)

  • Purpose: Non-Delivery Report (NDR) triage and automated dispute resolution.

  • Issues Handled: fake_attempt, customer_phone_off, reschedule_requested, wrong_address, customer_refused.

  • Output:

    • customer_whatsapp_message: Ready-to-send empathetic resolution text in Bengali.

    • carrier_instruction: Official escalation dispatch ticket preventing Return-To-Origin (RTO).

    • resolution_status: DISPUTE_FILED, RESCHEDULE_QUEUED, ADDRESS_UPDATED, CUSTOMER_REENGAGED.


5. Bidirectional Webhooks Hub

5.1. Steadfast Webhook Receiver

  • Callback URL: https://courier.auraajenticai.cloud/webhooks/steadfast

  • Auth: Authorization: Bearer <STEADFAST_API_KEY> (configured in Steadfast portal)

  • Supported Notification Types:

    1. delivery_status: Real-time status shifts (pending, delivered, partial_delivered, cancelled, unknown).

    2. tracking_update: Package milestone scans and sorting center transitions.

  • Steadfast Expected Response:

    HTTP 200 OK
    {
      "status": "success",
      "message": "Webhook received successfully."
    }

5.2. Pathao Webhook Receiver

  • Callback URL: https://courier.auraajenticai.cloud/webhooks/pathao

  • Supported Events: Order placement, rider pickup, out-for-delivery, and RTO events.


6. Real-Time Verification & Test Suite

6.1. Inspect MCP Health & Tools

curl -s https://courier.auraajenticai.cloud/health | jq

Expected Output:

{
  "ok": true,
  "service": "aura-courier-mcp",
  "version": "2.4.0",
  "tools_count": 9,
  "spatial_engine": "Google Maps Platform (gmp_git_agentskills_v1)",
  "fraud_engine": "Steadfast Nationwide API + BD Prefix Validator",
  "webhooks": {
    "steadfast": "/webhooks/steadfast",
    "pathao": "/webhooks/pathao"
  }
}

6.2. Test Steadfast Webhook Simulation

curl -X POST https://courier.auraajenticai.cloud/webhooks/steadfast \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <STEADFAST_API_KEY>" \
  -d '{
    "notification_type": "delivery_status",
    "consignment_id": 981245,
    "invoice": "INV-67890",
    "cod_amount": 1500.0,
    "status": "delivered",
    "delivery_charge": 100.0,
    "tracking_message": "Package delivered to customer.",
    "updated_at": "2026-09-11 03:30:00"
  }'

Expected Response: {"status":"success","message":"Webhook received successfully."}

6.3. Test MCP Initialize via Streamable-HTTP

curl -i -X POST https://courier.auraajenticai.cloud/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "initialize",
    "params": {
      "protocolVersion": "2024-11-05",
      "capabilities": {},
      "clientInfo": { "name": "terminal-test", "version": "1.0" }
    }
  }'

7. Connecting to AI Agents & IDEs

Claude Desktop / Cursor / Antigravity MCP Config

Add this configuration block to your client settings (claude_desktop_config.json or settings.json):

{
  "mcpServers": {
    "aura-courier": {
      "command": "npx",
      "args": ["-y", "aura-courier-mcp@2.4.0"],
      "env": {
        "PORT": "8080",
        "GOOGLE_MAPS_API_KEY": "<GOOGLE_MAPS_API_KEY>",
        "STEADFAST_API_KEY": "<STEADFAST_API_KEY>",
        "STEADFAST_SECRET_KEY": "<STEADFAST_SECRET_KEY>",
        "STEADFAST_BASE_URL": "https://portal.packzy.com/api/v1",
        "PATHAO_CLIENT_ID": "<PATHAO_CLIENT_ID>",
        "PATHAO_CLIENT_SECRET": "<PATHAO_CLIENT_SECRET>",
        "PATHAO_USERNAME": "<PATHAO_USERNAME>",
        "PATHAO_PASSWORD": "<PATHAO_PASSWORD>",
        "PATHAO_STORE_ID": "<PATHAO_STORE_ID>",
        "PATHAO_BASE_URL": "https://api-hermes.pathao.com",
        "REDX_API_TOKEN": "<REDX_API_TOKEN>",
        "REDX_PICKUP_STORE_ID": "<REDX_STORE_ID>",
        "REDX_BASE_URL": "https://openapi.redx.com.bd/v1.0.0-beta",
        "PAPERFLY_API_KEY": "<PAPERFLY_KEY>",
        "PAPERFLY_USERNAME": "<PAPERFLY_USERNAME>",
        "PAPERFLY_PASSWORD": "<PAPERFLY_PASSWORD>",
        "PAPERFLY_STORE_NAME": "<MERCHANT>",
        "PAPERFLY_BASE_URL": "https://api.paperfly.com.bd"
      }
    }
  }
}

Or connect directly via Streamable-HTTP URL:

  • Server URL: https://courier.auraajenticai.cloud/mcp

  • Client Protocol: MCP Streamable-HTTP (2024-11-05)


Service Attribution ID: gmp_git_agentskills_v1
APIs Utilized:

  1. Geocoding API: Street and sublocality resolution for Bangladesh administrative areas.

  2. Routes API (v2:computeRoutes): Precise road distance metrics and zone classification.

  3. Maps Embed API: Interactive visual maps with $0 operational cost.


Copyright © 2026 Aura Agentic AI khondokartowsif171@gmail.com.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Available Tools

9 tools
calculate_delivery_zone_and_feeA

Compute road distance in km, classify Bangladesh delivery zone (inside_dhaka à§³80, sub_dhaka à§³100, outside_dhaka à§³150), and return estimated delivery hours and COD fee using Google Maps Platform Routes API.

ParametersJSON Schema
NameRequiredDescriptionDefault
weight_kgNoParcel weight in KG (default: 0.5)
origin_addressNoOptional merchant warehouse address (defaults to Dhaka Central Hub)
recipient_addressYesDelivery destination address

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the burden of behavioral disclosure. It reveals that the tool invokes the Google Maps Platform Routes API, computes road distance rather than straight-line distance, and returns zone, fee, hours, and COD fee. This is good transparency for a non-mutating calculation tool, though it does not mention failure behavior or API rate implications.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single dense sentence conveys the main action, inputs' purpose, fee structure, and return values with no filler. The key information is front-loaded in the verb and resource.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given there is no output schema, the description compensates by explicitly listing the expected return values: distance, zone classification, fees, estimated hours, and COD fee. It also identifies the external API. Minor gaps remain, such as how invalid addresses are handled, but the tool is simple enough that the description is largely sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all three parameters. The description adds useful context about outputs and fee tiers, but it does not elaborate on parameter meanings beyond the schema, so the baseline score applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action (compute, classify, return) on a clear resource: delivery zone and fee for Bangladesh. It also enumerates concrete outputs (distance, zone tiers with fees, delivery hours, COD fee), which distinguishes it from sibling tools like compare_courier_rates or validate_and_geocode_address.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly implies the tool is for computing delivery zone and fee, but it does not explicitly state when to prefer it over alternatives such as compare_courier_rates or validate_and_geocode_address. Usage context is inferable but not directly stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_fraud_riskA

100% Real Live nationwide courier fraud check across Bangladesh logistics networks (Steadfast nationwide API). Returns actual order delivery/cancellation counts, success rate, and risk evaluation. Zero mock data.

ParametersJSON Schema
NameRequiredDescriptionDefault
phoneYes11-digit Bangladeshi mobile number to evaluate

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It discloses that the data is real and not mock ('100% Real Live', 'Zero mock data'), which is valuable for setting expectations. However, it does not explicitly state that the operation is read-only, mention any rate limits, authentication requirements, or potential side effects. The 'returns' wording implies a read operation, but it is not explicitly declared. This is a moderate gap given no annotations exist.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that front-loads the core purpose ('100% Real Live nationwide courier fraud check') and then lists the outputs. Every phrase serves a purpose: it clarifies the scope (nationwide Bangladesh, Steadfast API), the data quality (real, not mock), and the results (counts, success rate, risk evaluation). No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one parameter and no output schema, the description covers the essential points: it states the operation (fraud check), the input (a phone number), the output (metrics and risk evaluation), and the data authenticity. It does not mention error handling or interpretation of the risk evaluation, but these are not strictly necessary for calling the tool correctly. The description is sufficient for an agent to understand what the tool does and what it returns.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description for 'phone' is complete (100% coverage), stating it expects an 11-digit Bangladeshi mobile number. The tool description adds minimal extra meaning—only that the phone is used for the fraud check. It does not explain how the number is used beyond 'evaluate,' but since the schema already documents the parameter's format and purpose, a baseline of 3 is appropriate. The description does not conflict or add significant depth.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: a nationwide courier fraud check for Bangladesh logistics networks. It names the specific data returned (delivery/cancellation counts, success rate, risk evaluation) and distinguishes itself from siblings like track_parcel or get_balance by focusing on fraud assessment. The verb 'check' and resource 'fraud risk' are explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is used to evaluate a phone number for fraud risk, but it does not explicitly state when to use it over alternatives or provide exclusions. It lacks guidance like 'use this before shipping to a new number' or 'use track_parcel for existing orders.' The context is clear but not explicitly framed against siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compare_courier_ratesA

Real-time tariff & SLA comparison across Steadfast, Pathao, RedX, and Paperfly for a given destination address, parcel weight, and COD value. Recommends the optimal carrier for cost vs speed.

ParametersJSON Schema
NameRequiredDescriptionDefault
priorityNoOptimization priority (default: balanced)
weight_kgNoParcel weight in KG (default: 0.5)
cod_amountNoCash On Delivery amount in BDT (default: 0)
recipient_addressYesDestination delivery address anywhere in Bangladesh

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the full behavioral burden. It states that the comparison is real-time and that it recommends based on cost vs speed, but it does not disclose whether this is a read-only operation, whether external APIs are called, or any side effects or latency characteristics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences deliver the core function and the recommendation value without filler. The main verb appears first and each clause adds useful information, making the description easy to scan and act on.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and no annotations, the description covers inputs and high-level behavior but does not explain how results are returned or how the priority parameter affects output. This leaves a moderate gap for an agent that needs to parse the recommendation result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description maps recipient_address, weight_kg, and cod_amount to the real-world inputs, and 'cost vs speed' loosely reflects the priority parameter, but it adds no additional syntax or precedence details beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('compare') with a concrete resource: real-time tariff and SLA comparison across four named couriers. It also states a clear outcome (recommends the optimal carrier), which distinguishes it from siblings like list_couriers and create_parcel.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly establishes the intended scenario: comparing courier rates and SLAs for a destination, parcel weight, and COD amount. However, it does not explicitly state when not to use the tool or mention alternatives such as calculate_delivery_zone_and_fee.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_parcelA

Book a new parcel delivery across Bangladesh (Steadfast, Pathao, RedX or Paperfly) with normalized response.

ParametersJSON Schema
NameRequiredDescriptionDefault
noteNoSpecial instructions for delivery rider
valueNoDeclared parcel value in BDT (used by RedX; defaults to the COD amount)
courierNoTarget courier or 'auto' for AI smart routing (default: auto)
invoiceYesUnique order invoice number (e.g. INV-1002)
item_typeNoWhat's inside the parcel (used by RedX)
cod_amountYesCash on delivery amount in BDT (0 if prepaid)
item_weightNoParcel weight in KG (default: 0.5)
recipient_nameYesCustomer full name
pickup_store_idNoRedX only: your pickup store id (optional)
recipient_phoneYes11-digit Bangladeshi mobile number (e.g. 017XXXXXXXX)
delivery_area_idNoRedX only: numeric delivery-area id (auto-resolved from the address if omitted)
recipient_addressYesDelivery address (Thana, District, Street)

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description only adds 'with normalized response' as a behavioral trait; everything else about side effects, prerequisites, or error behavior is left unstated. With no annotations, the description should carry more of the burden for a state-changing create operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, efficient sentence with no filler; the key action and scope are front-loaded. 'Across Bangladesh' and the courier list are useful context, and 'normalized response' cues expected output.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite complete parameter docs, the description omits return-value details, side effects, and any sequencing with sibling tools. No output schema exists, so the vague 'normalized response' doesn't tell an agent what to expect after booking.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all 12 parameters. The description's mention of the four couriers and response normalization adds minimal semantic value beyond the enum and defaults already in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Begins with a specific verb ('Book') and a concrete resource ('a new parcel delivery'), names the supported couriers, and adds a response-normalization guarantee. This clearly separates it from sibling tools like track_parcel, list_couriers, and get_balance.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The action is unambiguous and no sibling performs creation, so an agent can infer when to call it. However, it doesn't explicitly mention that validation/rate-comparison tools (e.g., validate_and_geocode_address, compare_courier_rates) could precede booking, so usage context is clear but exclusions/ordering are absent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_balanceA

Retrieve current merchant account balance and payout details from a courier.

ParametersJSON Schema
NameRequiredDescriptionDefault
courierYesCourier provider to check balance for

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the burden. 'Retrieve' and 'current' imply a safe, read-only, fresh data lookup, which is helpful. However, it does not disclose potential errors, authentication requirements, or the shape/scope of 'payout details,' leaving some behavioral ambiguity.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One tight sentence with no filler. The core action and object are front-loaded, and the courier scoping is immediately clear.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter tool with no output schema, the description covers what the agent needs to decide to call it and what it will get back at a high level (balance and payout details). It is slightly incomplete in not detailing payout details or return format, but not enough to block correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already fully documents the single 'courier' parameter, including its enum values. The main description adds no extra parameter meaning beyond reinforcing that the balance is checked 'from a courier,' which matches the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb ('Retrieve') and a precise resource ('current merchant account balance and payout details') scoped to a courier provider. Among the sibling tools, none covers balance/payout retrieval, so the tool is clearly distinguishable 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context: use this tool when you need a merchant account balance or payout details for a specific courier. It does not explicitly name alternatives or exclusions, but the sibling tools are distinct operations (tracking, parcel creation, rate comparison), so confusion is unlikely.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_couriersA

Show supported Bangladeshi couriers and spatial services, and check which credentials are active.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral transparency burden. It discloses a read-only operation through verbs like 'Show' and 'check', and clarifies that credential status is verified. It does not mention auth requirements or rate limits, but for a zero-parameter listing tool this is a minor gap rather than a serious omission.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, well-structured sentence front-loads the main action and resource, then adds the credential-checking detail. There is no filler, redundancy, or unnecessary explanation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, no-output-schema, simple read-only tool, the description is complete enough for an agent to invoke it correctly. The only minor ambiguity is what 'spatial services' includes, but this does not block correct usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero parameters and 100% schema coverage, so there is no parameter documentation burden. The description still adds value by indicating what the tool reports: supported couriers, spatial services, and active credentials.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Show') with a clear resource ('supported Bangladeshi couriers and spatial services') and adds a second distinct function ('check which credentials are active'). It is immediately distinguishable from siblings like track_parcel, create_parcel, and get_balance, which perform different operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context for when to use the tool: when an agent needs to discover supported couriers, spatial services, or active credentials. It does not explicitly name alternatives or exclusions, but none of the sibling tools serve the same discovery purpose, so the routing is unambiguous in this toolset.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

resolve_ndr_issueA

Automate Non-Delivery Report (NDR) triage and resolution for failed courier delivery attempts. Generates WhatsApp re-engagement message to customer and official operational escalation/hold instructions for the carrier.

ParametersJSON Schema
NameRequiredDescriptionDefault
courierYesCourier provider
issue_typeYesReason for failed delivery
customer_nameNoCustomer full name
consignment_idYesTracking code or consignment ID
customer_phoneNoCustomer mobile number
reschedule_dateNoPreferred delivery date (if rescheduled)
corrected_addressNoCorrected delivery address (if wrong address)

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behavior, but it is ambiguous whether this tool actually sends the WhatsApp message or merely generates it, and whether 'escalation/hold instructions' are actionable side effects. It does not mention reversibility, permissions, rate limits, or other consequences, leaving the agent uncertain about real-world impact.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no wasted words. It front-loads the core purpose and then enumerates the two key outputs, making it easy to scan and understand.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (7 parameters, no output schema, no annotations), the description is too high-level. It omits expected return values, conditional logic, and behavioral side effects, so an agent cannot fully predict what will happen when invoking it, especially around sending messages or imposing carrier holds.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3 even though the description adds no parameter-specific detail. The description refers to 'customer' and 'carrier' broadly but does not explain conditional parameters (e.g., reschedule_date for reschedule_requested, corrected_address for wrong_address) that the schema implies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('resolve') and resource ('NDR issue'), and clearly outlines the outputs ('WhatsApp re-engagement message' and 'escalation/hold instructions'). It is distinct from sibling tools like track_parcel or create_parcel, so an agent can identify its unique role without needing to open schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'failed courier delivery attempts' gives clear context for when to use this tool, and the sibling list confirms it is the only NDR-resolution tool. However, it does not explicitly state when not to use it or name alternative tools, leaving some inference to the agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

track_parcelB

Track shipment delivery status across Steadfast or Pathao using Tracking Code / Consignment ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
courierNoOptional courier name if known
tracking_codeYesConsignment ID or tracking code

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool tracks delivery status but does not disclose what the response looks like, whether it supports all listed couriers equally, what happens with invalid tracking codes, or any rate limits or auth requirements. For a read-only tracking tool, this is a notable gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that is concise and front-loaded with the primary action and resource. It names the couriers and the required input. No wasted words, though it could be slightly more structured with explicit usage guidance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter tracking tool, the description is mostly adequate. However, with no output schema and no annotations, the agent is left without information about the return format, error behavior, or courier-specific nuances. The description covers the core purpose but not the full context needed for robust invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both parameters. The description adds the context that tracking_code is a Consignment ID or tracking code, which matches the schema. It does not add meaning beyond the schema, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Track') and resource ('shipment delivery status') and names the supported couriers (Steadfast or Pathao). It distinguishes itself from siblings like create_parcel and get_balance, though it doesn't explicitly differentiate from other tracking-like tools (none exist among siblings).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use the tool: when you need to track a shipment's delivery status. It does not explicitly state when not to use it or mention alternatives, but the sibling list (create_parcel, get_balance, etc.) makes the context reasonably clear. No explicit exclusions or alternative routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_and_geocode_addressA

Validate and geocode a Bangladesh delivery address using Google Maps Platform Geocoding API with administrative sublocality (Thana, District, Division), exact lat/lng coordinates, and delivery confidence score.

ParametersJSON Schema
NameRequiredDescriptionDefault
thanaNoOptional Thana/Upazila name
addressYesFull street or local address (e.g. 'Road 11, House 24, Dhanmondi, Dhaka')
districtNoOptional District name

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

There are no annotations, so the description must carry the full behavioral burden. It does disclose the external Google Maps Platform dependency and the expected outputs, but it does not state whether the operation is read-only, whether it makes a network call with associated cost, or what happens on validation/geocoding failure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence packs in the tool's purpose, geographic scope, external API, and main outputs without excess. Key information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description mentions the important output concepts (sublocality, coordinates, confidence score), which is useful given there is no output schema. However, it does not explain the meaning of the confidence score, how optional thana/district parameters affect results, or failure/edge-case behavior, leaving some ambiguity for a tool with no annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all three parameters. The description adds no parameter-specific detail beyond what is in the schema, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb-resource pair ('Validate and geocode a Bangladesh delivery address') and states the key outputs: administrative sublocality, lat/lng coordinates, and delivery confidence score. This clearly distinguishes it from siblings like list_couriers, track_parcel, and check_fraud_risk.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is used when address validation or geocoding is needed, but it gives no explicit guidance on when to choose this tool over alternatives such as calculate_delivery_zone_and_fee or check_fraud_risk. No exclusions, preconditions, or alternative conditions are mentioned.

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.

  1. 10 tool updatesv2.4.0
    • Addedcalculate_delivery_zone_and_fee
    • Addedcheck_fraud_risk
    • Addedcompare_courier_rates
    • Changedcreate_parcel24 fields changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • removedInput schema / additionalProperties
        Removed value: -false
      • removedInput schema / properties / codAmount
        Removed value: -{
        -  "description": "Cash-on-delivery amount in BDT (0 = prepaid).",
        -  "minimum": 0,
        -  "type": "number"
        -}
      • addedInput schema / properties / cod_amount
        Added value: +{
        +  "description": "Cash on delivery amount in BDT (0 if prepaid)",
        +  "type": "number"
        +}
      • removedInput schema / properties / courier / default
        Removed value: -"steadfast"
      • changedInput schema / properties / courier / description
        Previous value: -"Which courier to book with."New value: +"Target courier or 'auto' for AI smart routing (default: auto)"
      • changedInput schema / properties / courier / enum
        Previous value: -[
        -  "steadfast",
        -  "pathao",
        -  "redx",
        -  "paperfly"
        -]New value: +[
        +  "steadfast",
        +  "pathao",
        +  "redx",
        +  "paperfly",
        +  "auto"
        +]
      • addedInput schema / properties / delivery_area_id
        Added value: +{
        +  "description": "RedX only: numeric delivery-area id (auto-resolved from the address if omitted)",
        +  "type": "number"
        +}
      • changedInput schema / properties / invoice / description
        Previous value: -"Your unique order/invoice id (idempotency key)."New value: +"Unique order invoice number (e.g. INV-1002)"
      • removedInput schema / properties / invoice / minLength
        Removed value: -1
      • removedInput schema / properties / itemDescription
        Removed value: -{
        -  "type": "string"
        -}
      • addedInput schema / properties / item_type
        Added value: +{
        +  "description": "What's inside the parcel (used by RedX)",
        +  "type": "string"
        +}
      • addedInput schema / properties / item_weight
        Added value: +{
        +  "description": "Parcel weight in KG (default: 0.5)",
        +  "type": "number"
        +}
      • removedInput schema / properties / meta
        Removed value: -{
        -  "additionalProperties": {},
        -  "description": "Courier-specific extras. Pathao: { storeId, cityId, zoneId, areaId }.",
        -  "type": "object"
        -}
      • addedInput schema / properties / note / description
        Added value: +"Special instructions for delivery rider"
      • addedInput schema / properties / pickup_store_id
        Added value: +{
        +  "description": "RedX only: your pickup store id (optional)",
        +  "type": "number"
        +}
      • removedInput schema / properties / recipientAddress
        Removed value: -{
        -  "minLength": 1,
        -  "type": "string"
        -}
      • removedInput schema / properties / recipientName
        Removed value: -{
        -  "minLength": 1,
        -  "type": "string"
        -}
      • removedInput schema / properties / recipientPhone
        Removed value: -{
        -  "pattern": "^01\\d{9}$",
        -  "type": "string"
        -}
      • addedInput schema / properties / recipient_address
        Added value: +{
        +  "description": "Delivery address (Thana, District, Street)",
        +  "type": "string"
        +}
      • addedInput schema / properties / recipient_name
        Added value: +{
        +  "description": "Customer full name",
        +  "type": "string"
        +}
      • addedInput schema / properties / recipient_phone
        Added value: +{
        +  "description": "11-digit Bangladeshi mobile number (e.g. 017XXXXXXXX)",
        +  "type": "string"
        +}
      • addedInput schema / properties / value
        Added value: +{
        +  "description": "Declared parcel value in BDT (used by RedX; defaults to the COD amount)",
        +  "type": "number"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "invoice",
        -  "recipientName",
        -  "recipientPhone",
        -  "recipientAddress",
        -  "codAmount"
        -]New value: +[
        +  "invoice",
        +  "recipient_name",
        +  "recipient_phone",
        +  "recipient_address",
        +  "cod_amount"
        +]
    • Changedget_balance6 fields changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • removedInput schema / additionalProperties
        Removed value: -false
      • removedInput schema / properties / courier / default
        Removed value: -"steadfast"
      • addedInput schema / properties / courier / description
        Added value: +"Courier provider to check balance for"
      • changedInput schema / properties / courier / enum
        Previous value: -[
        -  "steadfast",
        -  "pathao",
        -  "redx",
        -  "paperfly"
        -]New value: +[
        +  "steadfast",
        +  "pathao"
        +]
      • addedInput schema / required
        Added value: +[
        +  "courier"
        +]
    • Removedget_courier_locations
    • Changedlist_couriers2 fields changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • addedInput schema / required
        Added value: +[]
    • Addedresolve_ndr_issue
    • Changedtrack_parcel9 fields changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • removedInput schema / additionalProperties
        Removed value: -false
      • removedInput schema / properties / consignmentId
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / courier / default
        Removed value: -"steadfast"
      • addedInput schema / properties / courier / description
        Added value: +"Optional courier name if known"
      • removedInput schema / properties / invoice
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / trackingCode
        Removed value: -{
        -  "type": "string"
        -}
      • addedInput schema / properties / tracking_code
        Added value: +{
        +  "description": "Consignment ID or tracking code",
        +  "type": "string"
        +}
      • addedInput schema / required
        Added value: +[
        +  "tracking_code"
        +]
    • Addedvalidate_and_geocode_address
  2. 5 tool updatesv0.1.0
    • First observedcreate_parcel
    • First observedget_balance
    • First observedget_courier_locations
    • First observedlist_couriers
    • First observedtrack_parcel

TDQS

A3.9/5.0

Scored across 9 tools

Disambiguation4/5

Most tools are clearly distinct by action and resource, but calculate_delivery_zone_and_fee and compare_courier_rates both involve fee/cost calculation and could be confused. check_fraud_risk also partially overlaps with tracking by returning delivery/cancellation counts, though its purpose is clearly risk evaluation.

Naming Consistency5/5

All tool names follow a consistent snake_case verb_noun pattern (list_couriers, track_parcel, create_parcel, get_balance). Longer names like validate_and_geocode_address remain grammatically consistent with the rest of the set.

Tool Count5/5

With 9 tools, the server is well-scoped for a Bangladeshi multi-courier logistics domain. Each tool covers a meaningful operation without excessive fragmentation or an overly sparse surface.

Completeness4/5

The toolset covers the main courier workflow: listing carriers, creating parcels, tracking, pricing, address validation, rate comparison, fraud checks, balance checks, and NDR resolution. Minor lifecycle gaps remain, such as no cancel/update parcel or parcel listing, but agents can still complete core booking and tracking workflows.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    A unified MCP server for West African payment providers, enabling AI agents and REST clients to initiate payments, payouts, refunds, and manage webhooks across 10 providers with a single API.
    8
    4 npm
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Carrier-agnostic shipping labels as a self-hostable MCP server. Build one shipment request, get a tracking number and a print-ready label back for DHL, DPD, UPS, FedEx, GLS, Sendcloud, and Shipcloud.
    3
    2
    MIT