ProShip Thailand Post

Create Thailand Post shipments, print labels, and track parcels in Thailand via ProShip.

Should I use this

Quality & Safety

B
Description quality
96%
Schema completeness
81%
Naming quality
96%
Poisoning risk
60%
Permission match
100%
Protocol compliance
100%

Findings (3)

  • HIGHTool poisoning patterns detected
  • INFOTool description contains placeholder or incomplete textin create_order
  • INFOTool description contains placeholder or incomplete textin print_label

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,388Tokens (tool definitions)
~989 BTypical response size
Moderate attention impact (1.08% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "proship-mcp": {
      "url": "https://mcp.proship.me/mcp"
    }
  }
}

Remote endpoints

https://mcp.proship.me/mcpstreamable-http

What it can do

Tool inventory

Tools (11)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟡track_parcel(tracking_no)

Track any parcel by tracking number (Thailand Post and other Thai carriers). Returns current status with Thai label plus the event history. Works without auth if the server has a tracking token configured; otherwise pass your Bearer token.

Input Schema

{
  "type": "object",
  "properties": {
    "tracking_no": {
      "type": "string",
      "description": "Carrier tracking number, e.g. TH0139..."
    }
  },
  "required": [
    "tracking_no"
  ]
}
🟡get_order_statuses

Reference data: the ProShip order status pipeline. Returns every status code with its Thai label and English meaning. Use these codes with list_orders and update_order_status.

Input Schema

{
  "type": "object",
  "properties": {}
}
🟡signup(shop_name, phone, address, display_name)

Creates a real ProShip account and shop, ready for Thailand Post EPS (thaipost0) shipping. The response contains your API token, user, and shop_id — SHOWN ONLY ONCE. Save the token into your MCP client's Authorization header. A full thaipost contract additionally requires a Thailand Post account arranged with ProShip support (multi-day human process).

Input Schema

{
  "type": "object",
  "properties": {
    "shop_name": {
      "type": "string",
      "description": "Name of your shop (prints on labels)"
    },
    "phone": {
      "type": "string",
      "description": "Thai mobile number for the shop, e.g. 0812345678"
    },
    "address": {
      "type": "object",
      "description": "Thai address, structured",
      "properties": {
        "address": {
          "type": "string",
          "description": "Street address (house no, street, etc.)"
        },
        "sub_district": {
          "type": "string",
          "description": "ตำบล/แขวง"
        },
        "district": {
          "type": "string",
          "description": "อำเภอ/เขต"
        },
        "province": {
          "type": "string",
          "description": "จังหวัด"
        },
        "zipcode": {
          "type": "string",
          "description": "5-digit Thai postal code"
        }
      },
      "required": [
        "address",
        "sub_district",
        "district",
        "province",
        "zipcode"
      ]
    },
    "display_name": {
      "type": "string",
      "description": "Optional account display name (defaults to shop_name)"
    }
  },
  "required": [
    "shop_name",
    "phone",
    "address"
  ]
}
🟡list_shops

List the shops on YOUR ProShip account. Use the shop_id with create_order.

Input Schema

{
  "type": "object",
  "properties": {}
}
🟡create_order(shop_id, weight, customer, shipping_method, cod_amount, ...)

Create a shipment order. Defaults to Thailand Post EPS (thaipost0). Weight is in GRAMS. Returns the order_id — it contains a pipe suffix (order-xxx|123); always pass the FULL id to other tools. Optional cod_amount enables cash-on-delivery.

Input Schema

{
  "type": "object",
  "properties": {
    "shop_id": {
      "type": "string",
      "description": "Your shop id (see list_shops)"
    },
    "weight": {
      "type": "number",
      "description": "Parcel weight in grams"
    },
    "customer": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "phone": {
          "type": "string",
          "description": "Thai mobile, e.g. 0812345678"
        },
        "address": {
          "type": "object",
          "description": "Thai address, structured",
          "properties": {
            "address": {
              "type": "string",
              "description": "Street address (house no, street, etc.)"
            },
            "sub_district": {
              "type": "string",
              "description": "ตำบล/แขวง"
            },
            "district": {
              "type": "string",
              "description": "อำเภอ/เขต"
            },
            "province": {
              "type": "string",
              "description": "จังหวัด"
            },
            "zipcode": {
              "type": "string",
              "description": "5-digit Thai postal code"
            }
          },
          "required": [
            "address",
            "sub_district",
            "district",
            "province",
            "zipcode"
          ]
        }
      },
      "required": [
        "name",
        "phone",
        "address"
      ]
    },
    "shipping_method": {
      "type": "string",
      "enum": [
        "thaipost0",
        "thaipost"
      ],
      "description": "Default thaipost0 (EPS). thaipost requires a Thailand Post contract on your account."
    },
    "cod_amount": {
      "type": "number",
      "description": "Optional: cash-on-delivery amount (THB)"
    },
    "remarks": {
      "type": "string"
    },
    "ref_no": {
      "type": "string",
      "description": "Optional: your own order reference"
    },
    "products": {
      "type": "array",
      "description": "Optional line items",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "qty": {
            "type": "number"
          },
          "price": {
            "type": "number"
          }
        },
        "required": [
          "name",
          "qty"
        ]
      }
    },
    "user": {
      "type": "string",
      "description": "Optional: ProShip username. Normally decoded from your token automatically."
    }
  },
  "required": [
    "shop_id",
    "weight",
    "customer"
  ]
}
🟢list_orders(status, per_page, page)

List orders on YOUR account. Optional numeric status filter (see get_order_statuses). Paginated.

Input Schema

{
  "type": "object",
  "properties": {
    "status": {
      "type": "number",
      "description": "Optional status code filter"
    },
    "per_page": {
      "type": "number",
      "description": "Default 50, max 100"
    },
    "page": {
      "type": "number",
      "description": "Default 1"
    }
  }
}
🟢get_order(order_id)

Get one order by id (full pipe-suffixed id is fine). Returns status with Thai label and tracking number.

Input Schema

{
  "type": "object",
  "properties": {
    "order_id": {
      "type": "string"
    }
  },
  "required": [
    "order_id"
  ]
}
🟡update_order_status(order_id, status)

Set an order status by numeric code (see get_order_statuses).

Input Schema

{
  "type": "object",
  "properties": {
    "order_id": {
      "type": "string"
    },
    "status": {
      "type": "number",
      "description": "Status code, e.g. 5 = cancelled by seller"
    }
  },
  "required": [
    "order_id",
    "status"
  ]
}
🔴cancel_order(order_id)

Delete/cancel an order by id.

Input Schema

{
  "type": "object",
  "properties": {
    "order_id": {
      "type": "string"
    }
  },
  "required": [
    "order_id"
  ]
}
🟢check_duplicate(phone)

Check whether a customer phone number already has a recent order (duplicate-shipment guard).

Input Schema

{
  "type": "object",
  "properties": {
    "phone": {
      "type": "string",
      "description": "Customer phone number"
    }
  },
  "required": [
    "phone"
  ]
}
⚪print_label(order_ids, size, printer)

Generate the shipping label PDF for one or more orders. REQUIRES the FULL pipe-suffixed order ids (order-xxx|123) — stripped ids are rejected upstream. Returns a temporary URL (valid ~10 minutes) where the PDF can be downloaded.

Input Schema

{
  "type": "object",
  "properties": {
    "order_ids": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "FULL pipe-suffixed order ids"
    },
    "size": {
      "type": "string",
      "description": "Label size, default \"normal\""
    },
    "printer": {
      "type": "string",
      "enum": [
        "proship",
        "proship_v3p",
        "paperang"
      ],
      "description": "Label format, default \"proship\""
    }
  },
  "required": [
    "order_ids"
  ]
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded11 tools
verifiedversion not recorded11 tools
verifiedversion not recorded11 tools