PostEx-MCP-Server

PostEx-MCP-Server

3.2

If you are the rightful owner of PostEx-MCP-Server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

The PostEx MCP Server is a Model Context Protocol server that interacts with the PostEx Merchant API (v4.1.9) to provide various tools for managing merchant operations.

PostEx MCP Server

This project implements a Model Context Protocol (MCP) server that provides tools for interacting with various endpoints of the PostEx Merchant API (v4.1.9).

Prerequisites

  • Node.js (LTS version recommended)
  • npm or yarn
  • A valid PostEx Merchant API Token

Setup

  1. Clone the repository (if applicable) or ensure you have the index.js file.
  2. Install dependencies:
    npm install @modelcontextprotocol/sdk zod node-fetch@2 # Use v2 for require syntax compatibility
    # or
    yarn add @modelcontextprotocol/sdk zod node-fetch@2
    
  3. Obtain your PostEx API Token from your PostEx merchant account or representative.

Running the Server

Execute the server using Node.js, providing your PostEx API token as a command-line argument:

node index.js <YOUR_POSTEX_API_TOKEN>

Replace <YOUR_POSTEX_API_TOKEN> with your actual token.

The server will connect via standard I/O and log status messages to standard error. It is now ready to receive MCP requests.

Available Tools

The server exposes the following tools, corresponding to PostEx API endpoints:

  • getOperationalCities: Get a list of cities where PostEx operates.
  • getMerchantAddress: Get the merchant's registered pickup addresses.
  • createMerchantAddress: Create a new pickup address for the merchant.
  • getOrderTypes: Get the types of orders supported (e.g., "Normal", "Reverse").
  • createOrder: Create a new order in the PostEx system.
  • getUnbookedOrders: List orders created but not yet booked for pickup within a date range.
  • trackOrder: Track a single order using its tracking number.
  • trackBulkOrder: Track multiple orders using a list of tracking numbers. (Note: API docs specify GET but require a body; implementation uses GET as per latest code change, which might not work as expected with a body).
  • saveShipperAdvice: Provide advice (e.g., retry, return) for an attempted parcel.
  • getShipperAdvice: Retrieve shipper advice history for a tracking number.
  • cancelOrder: Cancel an order using its tracking number. (Note: Implemented as PUT with a JSON body).
  • getPaymentStatus: Check the payment settlement status for an order.
  • getOrderStatus: Get a list of all possible order statuses.
  • listOrders: List orders within a date range, optionally filtered by status ID.

Note: Tools corresponding to API endpoints that return PDF files (generate-load-sheet, get-invoice) are not implemented in this version.

Development Notes

  • The server uses node-fetch for making HTTP requests to the PostEx API.
  • zod is used for input validation for the tool parameters.
  • The API token is passed securely as a command-line argument and used in the Authorization header for API calls.
  • Error handling is basic; check console output for potential issues during API calls.
  • Graceful shutdown is handled for SIGINT and SIGTERM signals.