Taiwan Logistics (CVS pickup + home delivery via ECPay)
Server Details
Taiwan CVS pickup + home delivery for AI agents: create, track, print labels via ECPay.
- Status
- Unhealthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.4/5 across 3 of 3 tools scored.
Each tool has a unique, well-defined purpose: create_shipment for creation, print_label for label retrieval, query_shipment for status lookup. No overlapping functionality.
All three tools follow a consistent verb_noun pattern (create_shipment, print_label, query_shipment), making them predictable and easy to understand.
With only 3 tools, the server is slightly minimal for a logistics domain, but each tool serves a distinct and necessary function, and the count is within the acceptable range (3-15).
The set covers creation, label printing, and querying, which are core operations. However, it lacks common lifecycle operations like cancellation or voiding a shipment, which may be needed.
Available Tools
3 toolscreate_shipmentAInspect
Create a Taiwan shipment via ECPay 綠界 Logistics — either 超商取貨 (CVS convenience-store pickup: 7-11 / 全家 FamilyMart / 萊爾富 Hi-Life / OK) or 宅配 (home delivery: 黑貓 TCAT / 中華郵政 POST). Bring your own ECPay credentials via headers x-ecpay-merchant-id, x-ecpay-hash-key, x-ecpay-hash-iv (+ x-ecpay-mode: production to hit the live host). With NO credential headers it runs in DEMO mode on ECPay stage using the official public test merchant — a real test AllPayLogisticsID is returned but nothing ships. logistics_type CVS needs receiver_store_id (a store code from ECPay電子地圖; the stage demo defaults to test store 131386). logistics_type HOME needs sender/receiver address + zip. Set is_collection=true for cash-on-delivery (代收貨款) — collection_amount defaults to goods_amount. Returns AllPayLogisticsID (as shipment_id) used by query_shipment and print_label.
| Name | Required | Description | Default |
|---|---|---|---|
| sub_type | Yes | Carrier/flow. CVS C2C (individual seller): UNIMARTC2C(7-11) / FAMIC2C / HILIFEC2C / OKMARTC2C. CVS B2C (business): UNIMART / FAMI / HILIFE. HOME: TCAT(黑貓) / POST(郵局). | |
| goods_name | No | Goods description (<=50 chars). Default "商品一批". | |
| sender_zip | No | HOME only: sender postal code. | |
| sender_name | Yes | Sender name (寄件人, <=10 chars, no digits/symbols). | |
| goods_amount | Yes | Declared goods value in TWD (integer). Also the COD amount when is_collection=true. | |
| receiver_zip | No | HOME only: receiver postal code. | |
| sender_phone | No | Sender landline or mobile (擇一必填 with sender_cellphone). | |
| is_collection | No | true = cash-on-delivery 代收貨款 (buyer pays at pickup). Default false. collection_amount defaults to goods_amount. | |
| receiver_name | Yes | Receiver name (收件人, <=10 chars, no digits/symbols). | |
| logistics_type | Yes | CVS = 超商取貨 (store pickup); HOME = 宅配 (home delivery). Must match sub_type. | |
| receiver_email | No | Optional receiver email. | |
| receiver_phone | No | Receiver landline. | |
| sender_address | No | HOME only: sender full address. | |
| receiver_address | No | HOME only: receiver full address. | |
| sender_cellphone | No | Sender mobile 09xxxxxxxx. | |
| server_reply_url | No | Optional server-to-server status callback URL (ECPay posts logistics updates here). A placeholder is used if omitted. | |
| collection_amount | No | COD amount in TWD (only when is_collection=true). Defaults to goods_amount. | |
| receiver_store_id | No | CVS only: pickup store code from ECPay電子地圖. Demo/stage defaults to test store 131386. | |
| receiver_cellphone | No | Receiver mobile 09xxxxxxxx (required for CVS pickup SMS notification). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses key behaviors: it creates a shipment, requires credentials, and includes a demo mode. It adds value beyond annotations (readOnlyHint=false, etc.) by explaining credential handling and return value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficient and dense, but presented as a single paragraph. It could be more scannable with bullet points, though no sentences are wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 19 parameters, the description covers dependencies, credentials, demo mode, return value, and sibling tools. Missing error handling or invalid credential scenarios, but overall comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds substantial context: credential headers, demo mode defaults, conditional requirements (e.g., receiver_store_id for CVS, sender/receiver address for HOME), and default collection_amount.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Create a Taiwan shipment via ECPay 綠界 Logistics'. It distinguishes between CVS and HOME types and mentions the returned ID is used by sibling tools, providing differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides extensive guidance on credentials, demo mode, and conditional parameters for CVS vs HOME. It explains when to use each type and mentions sibling tools for follow-up, but lacks explicit 'when not to use' statements.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
print_labelAIdempotentInspect
Get a hosted URL that renders and auto-submits the ECPay print form for a shipment's 託運單 / 一段標 (shipping label / drop-off slip), by AllPayLogisticsID. Open the returned label_url in a browser to view/print the label served by ECPay (the label is generated by ECPay; this server only signs the form and never stores it). For CVS C2C 小白單/繳款單 you also need the cvs_payment_no returned by create_shipment. Same credential/demo rules as create_shipment.
| Name | Required | Description | Default |
|---|---|---|---|
| c2c | No | In DEMO mode only: set true if the shipment was a CVS C2C order. Ignored when your own credentials are sent. | |
| shipment_id | Yes | The AllPayLogisticsID (shipment_id) returned by create_shipment. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that the server signs form but never stores label, that label is generated by ECPay, and that c2c parameter is only relevant in demo mode. This adds context beyond annotations, which already indicate idempotent and non-destructive behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is medium length, front-loaded with key info, and includes necessary details without redundancy. Could be slightly more concise but effectively structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given two parameters and no output schema, the description adequately covers return value (label_url), usage context, demo mode, and references to sibling tool. It is complete for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, providing a baseline of 3. The description adds value by explaining shipment_id as 'AllPayLogisticsID' and detailing the c2c parameter's behavior in demo mode, surpassing baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb (get), the resource (hosted URL for print form), and the context (Taiwan shipping label). It distinguishes from siblings (create_shipment, query_shipment) by focusing on printing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides guidance on how to use (open label_url in browser), mentions extra requirement for CVS C2C (cvs_payment_no), and refers to create_shipment for credential/demo rules. However, it does not explicitly state when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query_shipmentARead-onlyInspect
Look up a Taiwan shipment created by create_shipment, by its AllPayLogisticsID (shipment_id). Returns the current logistics status_code + a plain-English hint. Common codes: 300 order created; 2030 waiting for seller drop-off (CVS C2C); 2063 shipped; 2067/3006 arrived at store waiting for buyer; 2073/3022 picked up (delivered); 2074 returned (not collected in time); 5002 home delivery in transit; 5058 home delivered. Raw ECPay fields are always included. Safe to call anytime. Same credential/demo rules as create_shipment.
| Name | Required | Description | Default |
|---|---|---|---|
| c2c | No | In DEMO mode only: set true if the shipment was a CVS C2C order (uses the C2C test merchant). Ignored when your own credentials are sent. | |
| shipment_id | Yes | The AllPayLogisticsID (shipment_id) returned by create_shipment. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description adds 'Safe to call anytime,' common status codes, and that raw ECPay fields are always included. This enriches transparency beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the main purpose. It includes a list of common codes, which is helpful but slightly verbose. Overall efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Without an output schema, the description fully explains the return content (status_code, hint, raw fields) and provides common codes. It also references credential rules. For a simple query tool, this is complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%. The description adds meaningful context for both parameters: shipment_id is identified as AllPayLogisticsID, and c2c is explained for DEMO mode with credential rules. This goes beyond the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool looks up a Taiwan shipment by AllPayLogisticsID and returns status code and plain-English hint. It distinguishes itself from siblings create_shipment and print_label by being a read-only query.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says 'Safe to call anytime' and 'Same credential/demo rules as create_shipment,' providing context on when and how to use. It does not explicitly exclude scenarios, but the tool is straightforward.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!