USA Logistics (buy USPS/UPS/FedEx labels + tracking via EasyPost)
Server Details
US shipping labels for AI agents: buy USPS/UPS/FedEx, track and refund via EasyPost.
- 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.6/5 across 3 of 3 tools scored.
Each tool has a unique purpose: creating shipments, tracking, and refunding labels. No overlap or ambiguity.
All tool names follow a consistent verb_noun pattern with snake_case (create_shipment, query_tracking, refund_label).
Three tools cover the essential operations for the logistics domain—create, track, refund—without being excessive or insufficient.
The tool set provides full lifecycle coverage for shipping labels: creation, tracking, and refund. No obvious gaps for the stated purpose.
Available Tools
3 toolscreate_shipmentAInspect
Create a US shipping label via EasyPost — pass a to_address, from_address and parcel (dimensions in INCHES, weight in OUNCES); the server fetches carrier rates (USPS / UPS / FedEx etc.), buys the CHEAPEST rate by default (or the carrier/service you specify), and returns the shipment_id, tracking_code, printable label_url and the price paid. Bring your own EasyPost API key via header x-easypost-api-key: free TEST keys (prefix EZTK…) buy real USPS test labels end-to-end at no cost (sign up at easypost.com → API Keys); production keys (prefix EZAK…) buy real postage. The key prefix auto-selects the environment. weight (oz) is always required. Owner policy headers gate the label price before any purchase.
| Name | Required | Description | Default |
|---|---|---|---|
| width | No | Parcel width in INCHES. | |
| height | No | Parcel height in INCHES. | |
| length | No | Parcel length in INCHES. Provide length+width+height together, or use predefined_package instead. | |
| to_zip | Yes | Recipient ZIP / postal code. | |
| weight | Yes | Parcel weight in OUNCES (oz). Required. 1 lb = 16 oz. | |
| carrier | No | Optional: restrict to a carrier (e.g. USPS, UPS, FedEx). Default: cheapest across all available carriers. | |
| service | No | Optional: restrict to a service level (e.g. Priority, First, Ground). Default: cheapest. | |
| to_city | Yes | Recipient city. | |
| to_name | Yes | Recipient full name. | |
| from_zip | Yes | Sender ZIP / postal code. | |
| to_phone | No | Optional recipient phone (some carriers/services require it). | |
| to_state | Yes | Recipient state — 2-letter code for US (e.g. CA, NY). | |
| from_city | Yes | Sender city. | |
| from_name | Yes | Sender full name. | |
| from_phone | No | Optional sender phone. | |
| from_state | Yes | Sender state — 2-letter code for US. | |
| to_country | No | Recipient ISO country code. Default US. | |
| to_street1 | Yes | Recipient street address line 1. | |
| to_street2 | No | Optional recipient street address line 2 (apt/suite). | |
| from_country | No | Sender ISO country code. Default US. | |
| from_street1 | Yes | Sender street address line 1. | |
| from_street2 | No | Optional sender street address line 2. | |
| predefined_package | No | Optional carrier predefined package instead of dimensions (e.g. USPS "FlatRateEnvelope", "Parcel"). If set, length/width/height may be omitted. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses key behaviors: buying cheapest rate, EasyPass integration, environment selection via key prefix, and policy headers gating price. No contradictions with 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 informative but slightly long. Each sentence adds value, and core purpose is front-loaded. Could be more concise without losing detail.
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 23 parameters and no output schema, the description explains return values and API key setup well. Some details on error handling are missing, but overall 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%, so baseline is 3. The description adds context like units and predefined_package alternative, but doesn't significantly enhance schema meaning.
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 'Create a US shipping label via EasyPass' and explains the process, distinguishing it from sibling tools like query_tracking and refund_label.
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?
It explains when to use (to create a label) and provides details on API key, default cheapest rate, and optional carrier/service. However, it could 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_trackingARead-onlyInspect
Track a US shipment by its tracking_code (the one create_shipment returned, or any USPS/UPS/FedEx tracking number). Returns the current status plus a plain-English hint. Status values (EasyPost enum): unknown, pre_transit (label made, not yet picked up), in_transit, out_for_delivery, delivered, available_for_pickup, return_to_sender, failure, cancelled, error. Raw carrier scan details are always included. Passing the carrier speeds detection. Safe to call anytime.
| Name | Required | Description | Default |
|---|---|---|---|
| carrier | No | Optional carrier hint (e.g. USPS, UPS, FedEx) — helps EasyPost resolve the code faster. | |
| tracking_code | Yes | The tracking number to look up (from create_shipment or a carrier). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, consistent with 'Safe to call anytime'. Description adds valuable behavioral details: status enum values, inclusion of raw carrier scan, and that passing the carrier speeds detection.
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?
Compact and front-loaded with key info. Enumeration of status values is useful 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?
No output schema, but description explains return values (status, hint, raw carrier scan). Complete for a simple tracking tool with no missing information.
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%, baseline 3. Description adds meaning by specifying tracking_code origin (from create_shipment or carrier) and carrier as optional hint. Adds just enough beyond schema.
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?
Clearly states the tool tracks a US shipment using a tracking code, returning status and a hint. Distinguishes from siblings (create_shipment, refund_label) by being a read-only tracking operation.
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?
Explicitly says 'Safe to call anytime' and advises passing carrier for faster resolution. Could mention when not to use, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
refund_labelAIdempotentInspect
Request a refund for a US shipping label bought via create_shipment, by shipment_id (preferred) or by tracking_code. Refund is only possible for UNUSED labels — e.g. USPS labels can be refunded within 30 days of creation ONLY IF the parcel was never scanned by USPS; already-shipped labels cannot be refunded. Returns refund_status: submitted (accepted, carrier still processing — most common), refunded (money returned), rejected (not eligible, e.g. already scanned), or not_applicable. Carriers can take up to ~30 days to move submitted → refunded.
| Name | Required | Description | Default |
|---|---|---|---|
| carrier | No | Carrier for the tracking_code path (default USPS). Ignored when shipment_id is used. | |
| shipment_id | No | The shipment_id returned by create_shipment (preferred — refunds that exact label). | |
| tracking_code | No | Alternative to shipment_id: the tracking_code to refund. Requires carrier (defaults to USPS). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses key behaviors: refund only for unused labels, carrier processing time (up to 30 days), non-destructive nature (refund not reversal). Annotations already show idempotent and non-destructive; description adds contextual constraints.
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?
Efficiently packed with necessary details, but could be slightly more concise. Front-loaded with purpose.
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 no output schema, description fully explains return statuses. Annotations provided. All parameters explained. No missing context for a simple refund tool.
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 already covers all parameters. Description adds value: 'preferred' for shipment_id, clarifies tracking_code as alternative with carrier requirement and default. No enums but clear.
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?
Clearly states it refunds a US shipping label bought via create_shipment, using specific identifiers. Distinguishes from siblings: create_shipment creates, refund_label refunds, query_tracking tracks.
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 explicit conditions: only unused labels, 30-day window for USPS, no scans. Prefers shipment_id over tracking_code with default carrier. Explains refund status outcomes.
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!