MCP server for EasyPost — rate shipments, buy & refund labels, track packages, verify addresses.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
PURCHASE a shipping label for a shipment at a chosen rate. WARNING: this CHARGES the EasyPost account balance and is irreversible except by requesting a refund (easypost_refund_shipment). Pick a rate_id from the rates returned by easypost_create_shipment or easypost_get_shipment. API: POST /shipments/{id}/buy (body { rate: { id }, insurance? }).
Rate id to purchase (from create_shipment / get_shipment rates).
Shipment id to buy, e.g. shp_...
Dollar amount to insure the shipment for, e.g. "249.99".
The server marks this tool as destructive. Running it may delete or overwrite data on the server or in any account you connected with your headers.
PURCHASE a shipping label for a shipment at a chosen rate. WARNING: this CHARGES the EasyPost account balance and is irreversible except by requesting a refund (easypost_refund_shipment). Pick a rate_id from the rates returned by easypost_create_shipment or easypost_get_shipment. API: POST /shipments/{id}/buy (body { rate: { id }, insurance? }).
| Argument | Type | Description |
|---|---|---|
| rate_id* | string | Rate id to purchase (from create_shipment / get_shipment rates). |
| insurance | string | Dollar amount to insure the shipment for, e.g. "249.99". |
| shipment_id* | string | Shipment id to buy, e.g. shp_... |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"shipment_id",
"rate_id"
],
"properties": {
"rate_id": {
"type": "string",
"description": "Rate id to purchase (from create_shipment / get_shipment rates)."
},
"insurance": {
"type": "string",
"description": "Dollar amount to insure the shipment for, e.g. \"249.99\"."
},
"shipment_id": {
"type": "string",
"description": "Shipment id to buy, e.g. shp_..."
}
}
}Create a shipment from a to_address, from_address, and parcel, returning the available RATES from all enabled carriers. This only RATES the shipment — it does NOT purchase a label and does NOT charge the account; buying is a separate step (easypost_buy_shipment). API: POST /shipments (body { shipment }).
| Argument | Type | Description |
|---|---|---|
| parcel* | object | Package dimensions and weight. |
| reference | string | Your internal reference string for the shipment. |
| to_address* | object | Destination address. |
| from_address* | object | Origin/return address. |
| carrier_accounts | array | Restrict rating to these carrier_account ids. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"to_address",
"from_address",
"parcel"
],
"properties": {
"parcel": {
"type": "object",
"required": [
"weight"
],
"properties": {
"width": {
"type": "number",
"description": "inches"
},
"height": {
"type": "number",
"description": "inches"
},
"length": {
"type": "number",
"description": "inches"
},
"weight": {
"type": "number",
"description": "weight in OUNCES (required)"
},
"predefined_package": {
"type": "string",
"description": "carrier predefined package name, e.g. FlatRateEnvelope"
}
},
"description": "Package dimensions and weight."
},
"reference": {
"type": "string",
"description": "Your internal reference string for the shipment."
},
"to_address": {
"type": "object",
"required": [
"street1",
"zip"
],
"properties": {
"zip": {
"type": "string",
"description": "Postal/ZIP code"
},
"city": {
"type": "string"
},
"name": {
"type": "string"
},
"email": {
"type": "string"
},
"phone": {
"type": "string"
},
"state": {
"type": "string",
"description": "2-letter state/province code"
},
"company": {
"type": "string"
},
"country": {
"type": "string",
"description": "2-letter ISO country code, default US"
},
"street1": {
"type": "string",
"description": "Street address line 1"
},
"street2": {
"type": "string"
}
},
"description": "Destination address."
},
"from_address": {
"type": "object",
"required": [
"street1",
"zip"
],
"properties": {
"zip": {
"type": "string",
"description": "Postal/ZIP code"
},
"city": {
"type": "string"
},
"name": {
"type": "string"
},
"email": {
"type": "string"
},
"phone": {
"type": "string"
},
"state": {
"type": "string",
"description": "2-letter state/province code"
},
"company": {
"type": "string"
},
"country": {
"type": "string",
"description": "2-letter ISO country code, default US"
},
"street1": {
"type": "string",
"description": "Street address line 1"
},
"street2": {
"type": "string"
}
},
"description": "Origin/return address."
},
"carrier_accounts": {
"type": "array",
"items": {
"type": "string"
},
"description": "Restrict rating to these carrier_account ids."
}
}
}Start tracking a package by its carrier tracking code. Returns the tracker with current status. No charge. API: POST /trackers (body { tracker }).
| Argument | Type | Description |
|---|---|---|
| carrier | string | Carrier name, e.g. USPS, UPS, FedEx (helps disambiguate). |
| tracking_code* | string | The carrier tracking code to track. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"tracking_code"
],
"properties": {
"carrier": {
"type": "string",
"description": "Carrier name, e.g. USPS, UPS, FedEx (helps disambiguate)."
},
"tracking_code": {
"type": "string",
"description": "The carrier tracking code to track."
}
}
}Retrieve a single address by id, including verification details. API: GET /addresses/{id}.
| Argument | Type | Description |
|---|---|---|
| id* | string | Address id, e.g. adr_... |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Address id, e.g. adr_..."
}
}
}Retrieve a single shipment by id, including its available rates, tracking_code, and postage_label (if purchased). API: GET /shipments/{id}.
| Argument | Type | Description |
|---|---|---|
| id* | string | Shipment id, e.g. shp_... |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Shipment id, e.g. shp_..."
}
}
}Retrieve a single tracker by id, including current status and tracking_details history. API: GET /trackers/{id}.
| Argument | Type | Description |
|---|---|---|
| id* | string | Tracker id, e.g. trk_... |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Tracker id, e.g. trk_..."
}
}
}List saved addresses on the account, with pagination. API: GET /addresses.
| Argument | Type | Description |
|---|---|---|
| after_id | string | Return records created after this address id. |
| before_id | string | Return records created before this address id. |
| page_size | integer | Results per page (max 100). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"after_id": {
"type": "string",
"description": "Return records created after this address id."
},
"before_id": {
"type": "string",
"description": "Return records created before this address id."
},
"page_size": {
"type": "integer",
"maximum": 100,
"description": "Results per page (max 100).",
"exclusiveMinimum": 0
}
}
}List shipments on the account, most recent first, with pagination and optional filters. API: GET /shipments.
| Argument | Type | Description |
|---|---|---|
| after_id | string | Return records created after this shipment id. |
| before_id | string | Return records created before this shipment id. |
| page_size | integer | Results per page (max 100). |
| purchased | boolean | Filter to only purchased (true) or unpurchased (false) shipments. |
| end_datetime | string | ISO 8601 upper bound on created_at. |
| start_datetime | string | ISO 8601 lower bound on created_at. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"after_id": {
"type": "string",
"description": "Return records created after this shipment id."
},
"before_id": {
"type": "string",
"description": "Return records created before this shipment id."
},
"page_size": {
"type": "integer",
"maximum": 100,
"description": "Results per page (max 100).",
"exclusiveMinimum": 0
},
"purchased": {
"type": "boolean",
"description": "Filter to only purchased (true) or unpurchased (false) shipments."
},
"end_datetime": {
"type": "string",
"description": "ISO 8601 upper bound on created_at."
},
"start_datetime": {
"type": "string",
"description": "ISO 8601 lower bound on created_at."
}
}
}List package trackers, optionally filtered by tracking_code or carrier. API: GET /trackers.
| Argument | Type | Description |
|---|---|---|
| carrier | string | Filter by carrier name, e.g. USPS, UPS, FedEx. |
| page_size | integer | Results per page (max 100). |
| tracking_code | string | Filter by carrier tracking code. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"carrier": {
"type": "string",
"description": "Filter by carrier name, e.g. USPS, UPS, FedEx."
},
"page_size": {
"type": "integer",
"maximum": 100,
"description": "Results per page (max 100).",
"exclusiveMinimum": 0
},
"tracking_code": {
"type": "string",
"description": "Filter by carrier tracking code."
}
}
}Request a refund (void) of a purchased shipping label. WARNING: reverses a purchase; approval depends on the carrier and label age. API: POST /shipments/{id}/refund.
| Argument | Type | Description |
|---|---|---|
| id* | string | Shipment id to refund, e.g. shp_... |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Shipment id to refund, e.g. shp_..."
}
}
}Create and verify a US or international address, returning deliverability and normalized/corrected fields. No charge. API: POST /addresses (body { address, verify: ["delivery"] }).
| Argument | Type | Description |
|---|---|---|
| zip* | string | Postal/ZIP code |
| city | string | |
| name | string | |
| string | ||
| phone | string | |
| state | string | 2-letter state/province code |
| company | string | |
| country | string | 2-letter ISO country code, default US |
| street1* | string | Street address line 1 |
| street2 | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"street1",
"zip"
],
"properties": {
"zip": {
"type": "string",
"description": "Postal/ZIP code"
},
"city": {
"type": "string"
},
"name": {
"type": "string"
},
"email": {
"type": "string"
},
"phone": {
"type": "string"
},
"state": {
"type": "string",
"description": "2-letter state/province code"
},
"company": {
"type": "string"
},
"country": {
"type": "string",
"description": "2-letter ISO country code, default US"
},
"street1": {
"type": "string",
"description": "Street address line 1"
},
"street2": {
"type": "string"
}
}
}