---
title: "Easyship MCP server for AI agents - actionlake"
description: "Give Claude 132 Easyship actions through one MCP server: shipments, account, shipping rules. Your agent never holds the credential. 100,000 calls a month free."
canonical: https://actionlake.com/connectors/easyship
updated: 2026-10-23
---

Connectors · Commerce

# Easyship MCP server for AI agents.

actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to Easyship and the rest of your systems. It gives your agent 132 Easyship actions (65 reads, 52 writes and 15 that wait for a confirmation) and holds the Easyship credential itself, so the agent never does. It paces Easyship's limits and records every call.

[Connect Easyship free](https://actionlake.com/console?start=sandbox) [See pricing](https://actionlake.com/pricing)

100,000 free calls a month. No card, no email, no password: press Start a free sandbox on the next screen and keep the key it shows you.

`claude mcp add --transport http actionlake https://connect.actionlake.com/mcp`

the first call

```
do {
  action: "easyship.products.list",
  intent: "check which Easyship account is connected"
}
# List all Products · read · 1 upstream call
```

- 132 actions in one signed file
- 65 read look, never change
- 52 write create and update
- 15 wait for a yes destructive, confirmed first

Set up

## Connect Easyship in three steps.

1. 01
   ### Add actionlake to Claude.
   Run the command once in Claude Code; its consent page can create a free sandbox: 100,000 calls a month, no card. In the Claude app, add a custom connector with the URL below and paste your key on the consent page. Creating a new sandbox from the Claude app is not yet tested by us.
   `https://connect.actionlake.com/mcp`
2. 02
   ### Connect Easyship.
   Bearer token. No consent screen: your agent can connect it for you, but the key then passes through your chat. To keep it out of the model's context, paste it in the console instead. actionlake stores what you paste write-only, sealed under your tenant's key.
   - `api_token` Easyship API access token: in the Easyship dashboard open Connect > Add Integration > API Integration, create an…
   - `host` Where your Easyship lives: your host
   ```
   account { op: "connections.requirements", service: "easyship" }
   # free: exactly what to paste, and what is found for you
   ```
3. 03
   ### Make the first call. Check before a write.
   Ask in plain words; Claude picks the action. Before anything changes, `check` validates the call and prices it, for free.
   ```
   do    { action: "easyship.products.list" }
   # list all products · read · 1 upstream call
   check { action: "easyship.products.create", input: { … } }
   # free: inputs, permissions, cost and confirmations, nothing sent
   ```

Easyship at a glance

**Sign-in**

Bearer token. No consent screen: your agent can connect it for you, but the key then passes through your chat. To keep it out of the model's context, paste it in the console instead.

**You provide**

`api_token`

**Setup fields**

`host`

**Limits we pace to**

60 calls a minute, per connection

**API covered**

Easyship Public API v2024-09 (OpenAPI 3.0.3)`public-api.easyship.com`

**Built from**

Easyship's documentation, read 23 October 2026[developers.easyship.com](https://developers.easyship.com/llms.txt) [developers.easyship.com](https://developers.easyship.com/reference/introduction)

**Service file**

Version 1.0.0, signed (Ed25519)

**Cached reads**

60 of 65 reads, for up to 5 minutes; a write clears what it affects

**Shared entities**

3, so ask can line Easyship up with your other systems

**Data**

Processed and stored in Sydney, Australia. No US region yet

Capabilities

## What an AI agent can do in Easyship.

132 actions in 28 areas. Every one carries its effect, so a key can allow the reads and hold the rest.

- **65** read look, never change
- **52** write create and update
- **15** destructive wait for a confirmation

1. ### Shipments
   13
   6 read · 5 write · 2 destructive
   Create a Shipment · List all Shipments · Get a Shipment · Update a Shipment
2. ### Account
   12
   3 read · 8 write · 1 destructive
   Information about the Account · Activate an Address · Activate Assets · Create an App Access
3. ### Shipping rules
   8
   3 read · 4 write · 1 destructive
   Activate a Shipping Rule · Create a Shipping Rule · Deactivate a Shipping Rule · List all Shipping Rules
4. ### Webhooks
   8
   2 read · 5 write · 1 destructive
   Create a Webhook · List all Webhooks · Update a Webhook · Get a Webhook
5. ### Couriers
   7
   4 read · 2 write · 1 destructive
   Create a Courier · List all Couriers · List all Courier Services of a Courier · List all LYOC
6. ### Trackings
   7
   4 read · 2 write · 1 destructive
   Create a Tracking · List of Supported Couriers · List all Trackings · List of Supported Couriers
7. ### Analytics
   6
   6 read · 0 write · 0 destructive
   List Analytics Sale Channels Data · List Analytics Shipment Status Data · List Analytics Shipments Data · List Shipment Analytics within a Date Range
8. ### Batches
   6
   3 read · 3 write · 0 destructive
   Create a Batch of Addresses · Create a Batch of Labels · Create a Batch of Shipments · List all Batches

**20 more areas · 65 actions**

- Credit **6**
- Payment sources **6**
- Addresses **5**
- Boxes **4**
- Insurance **4**
- Locations **4**
- Pickups **4**
- Products **4**
- Reference **4**
- Shipping rule actions **4**
- Shipping rule conditions **4**
- Courier services **3**
- Manifests **3**
- Billing documents **2**
- Efulfillment **2**
- Tags **2**
- Rates **1**
- Stores **1**
- Taxes and duties **1**
- Transaction records **1**

Top actions

## The Easyship API, shaped for agents.

The ids your agent types, what each does, and the one name it shares with other systems. 22 of Easyship's 22 action names are shared with at least one other connector, so an agent learns them once.

| Action | What it does | Effect | Same name in |
| --- | --- | --- | --- |
| `easyship.products.list` List all Products | List all Products. | read | `commerce.product.list` 112 connectors |
| `easyship.stores.list` List all Stores | List all Stores. | read | `commerce.store.list` 17 connectors |
| `easyship.products.create` Create a Product | Create a Product. | write | `commerce.product.create` 92 connectors |
| `easyship.account.get_account` Information about the Account | Information about the Account. | read | `identity.current_user.get` 307 connectors |
| `easyship.products.delete` Delete a Product | Delete a Product. | destructive | `commerce.product.delete` 80 connectors |
| `easyship.shipments.create` Create a Shipment | Create a Shipment. | write | `commerce.shipment.create` 28 connectors |
| `easyship.shipments.list` List all Shipments | List all Shipments. | read | `commerce.shipment.list` 22 connectors |
| `easyship.webhooks.create` Create a Webhook | Create a Webhook. | write | `automation.webhook.create` 209 connectors |
| `easyship.webhooks.list` List all Webhooks | List all Webhooks. | read | `automation.webhook.list` 202 connectors |
| `easyship.shipments.buy_label` Create Label | Create Label. | write | `commerce.shipping_label.create` 5 connectors |
| `easyship.rates.request` Request Rates | Request Rates. | read | `commerce.shipping_rate.calculate` 6 connectors |
| `easyship.tags.list` List all Tags | List all Tags. | read | this connector |

Try it

## Prompts to paste into Claude.

Each one names the Easyship actions it will call, so you know what it reads and what it changes before you send it.

1. Read read
   Which Easyship products have no price or are out of stock?
   calls `easyship.products.list`
2. Write write
   Create a Product in Easyship. Show me exactly what you will send before you save it.
   calls `easyship.products.create`

Governance for Easyship

## Destructive actions wait for a yes.

15 Easyship actions are destructive. These are all of them:

- Delete a Product `easyship.products.delete`
- Delete a Shipment `easyship.shipments.delete`
- Delete a Webhook `easyship.webhooks.delete`
- Cancel a Shipment `easyship.shipments.cancel`
- Delete a Box `easyship.boxes.delete`
- Refund a Credit `easyship.credit.refund`
- Delete a Courier `easyship.couriers.delete`
- Delete a Tracking `easyship.trackings.delete`
- Delete an Asset `easyship.account.delete_asset`
- Delete a Shipping Rule `easyship.shipping_rules.delete`
- Delete a Payment Source `easyship.payment_sources.delete`
- Delete Action of a Shipping Rule `easyship.shipping_rule_actions.delete`
- Delete Condition of a Shipping Rule `easyship.shipping_rule_conditions.delete`
- Cancel a Pickup `easyship.pickups.cancel`
- Cancel an Insurance Policy `easyship.insurance.cancel_policy`

A destructive action runs only with `confirm: true`. Under the `human` policy the agent cannot confirm for itself: the run stops until a named person approves, in the console or from a signed link in an email. The cap on a key is refused before the call is sent, never after.

do easyship.products.delete confirm_policy: **human**

Delete a Product?

**intent:** the user asked me to delete a Product

run suspended · waiting for a named person · key _easyship-agent_ cannot confirm itself

In the console, or from an emailed signed link.

a key for this connector

```
account {
  op: "keys.create", name: "easyship-agent",
  allowed_actions: ["easyship.*"], cap_calls: 2000,
  confirm_policy: "human_for_writes",
  approval_rules: [
    { match: "easyship.products.delete", approver: "lead@example.com" },
    { match: "easyship.shipments.delete", approver: "lead@example.com" },
    { match: "easyship.webhooks.delete", approver: "lead@example.com" }
  ]
}
```

Illustrative. Scoped to Easyship only, capped at 2,000 upstream calls, every write confirmed, and the destructive ones approved by a named person.

Cost

## What Easyship costs on actionlake.

Every Easyship action is one upstream call, the only thing actionlake bills. Searching, `check`, `cost`, `account` and any call Easyship refused with 401, 403, 429 or a 5xx are free. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.

- 1 upstream call per action all 132 Easyship actions
- 132 actions page each page of a long list is one call
- 60 reads can be cached a cache hit costs nothing
- 100,000 calls a month, free paid plans from US$49 a month for 250,000

[See pricing](https://actionlake.com/pricing)

Action index

## Every Easyship action.

132 actions by area: the id your agent calls, what it does, and its effect.

**Shipments 13**

- `easyship.shipments.buy_label` Create Label write
- `easyship.shipments.cancel` Cancel a Shipment destructive
- `easyship.shipments.create` Create a Shipment write
- `easyship.shipments.create_return` Create a Return Shipment write
- `easyship.shipments.delete` Delete a Shipment destructive
- `easyship.shipments.get` Get a Shipment read
- `easyship.shipments.insure` Buy Insurance for a Shipment write
- `easyship.shipments.list` List all Shipments read
- `easyship.shipments.list_shipments` List All Shipments of Specific Pickup read
- `easyship.shipments.list_trackings` List all Trackings read
- `easyship.shipments.list_transaction_records` List Transaction Records for a Shipment read
- `easyship.shipments.unavailable_couriers` List Unavailable Couriers for a Shipment read
- `easyship.shipments.update` Update a Shipment write

**Account 12**

- `easyship.account.activate_address` Activate an Address write
- `easyship.account.activate_asset` Activate Assets write
- `easyship.account.create_app_access` Create an App Access write
- `easyship.account.create_redirect` Create a Redirect write
- `easyship.account.deactivate_address` Deactivate an Address write
- `easyship.account.deactivate_asset` Deactivate Assets write
- `easyship.account.delete_asset` Delete an Asset destructive
- `easyship.account.get_account` Information about the Account read
- `easyship.account.get_settings` List Account Settings read
- `easyship.account.list_assets` List all Assets read
- `easyship.account.update_asset` Update an Asset write
- `easyship.account.update_settings` Update Multiple Account Settings write

**Shipping rules 8**

- `easyship.shipping_rules.activate` Activate a Shipping Rule write
- `easyship.shipping_rules.create` Create a Shipping Rule write
- `easyship.shipping_rules.deactivate` Deactivate a Shipping Rule write
- `easyship.shipping_rules.delete` Delete a Shipping Rule destructive
- `easyship.shipping_rules.get` Get a Shipping Rule read
- `easyship.shipping_rules.list` List all Shipping Rules read
- `easyship.shipping_rules.list_platforms` List all Platform Names read
- `easyship.shipping_rules.update` Update a Shipping Rule write

**Webhooks 8**

- `easyship.webhooks.activate` Activate a Webhook write
- `easyship.webhooks.create` Create a Webhook write
- `easyship.webhooks.deactivate` Deactivate a Webhook write
- `easyship.webhooks.delete` Delete a Webhook destructive
- `easyship.webhooks.get` Get a Webhook read
- `easyship.webhooks.list` List all Webhooks read
- `easyship.webhooks.test` Test a Webhook write
- `easyship.webhooks.update` Update a Webhook write

**Couriers 7**

- `easyship.couriers.create` Create a Courier write
- `easyship.couriers.delete` Delete a Courier destructive
- `easyship.couriers.get` Get a Courier read
- `easyship.couriers.list` List all Couriers read
- `easyship.couriers.list_courier_services` List all Courier Services of a Courier read
- `easyship.couriers.list_lyoc` List all LYOC read
- `easyship.couriers.update` Update a Courier write

**Trackings 7**

- `easyship.trackings.create` Create a Tracking write
- `easyship.trackings.delete` Delete a Tracking destructive
- `easyship.trackings.external_courier_services` List of Supported Couriers read
- `easyship.trackings.get` Get a Tracking read
- `easyship.trackings.list` List all Trackings read
- `easyship.trackings.sandbox_update` Update a tracking write
- `easyship.trackings.supported_couriers` List of Supported Couriers read

**Analytics 6**

- `easyship.analytics.sale_channels` List Analytics Sale Channels Data read
- `easyship.analytics.shipment_status` List Analytics Shipment Status Data read
- `easyship.analytics.shipments` List Analytics Shipments Data read
- `easyship.analytics.shipments_shipped` List Shipment Analytics within a Date Range read
- `easyship.analytics.top_couriers` List Analytics Top Couriers Data read
- `easyship.analytics.top_destinations` List Analytics Top Shipments Destinations read

**Batches 6**

- `easyship.batches.create_address_batch` Create a Batch of Addresses write
- `easyship.batches.create_label_batch` Create a Batch of Labels write
- `easyship.batches.create_shipment_batch` Create a Batch of Shipments write
- `easyship.batches.get` Get a Batch read
- `easyship.batches.list` List all Batches read
- `easyship.batches.list_items` List all Batch Items read

**Credit 6**

- `easyship.credit.add` Add credit write
- `easyship.credit.confirm_3ds` Confirm Credit Top-up write
- `easyship.credit.get` Get credit read
- `easyship.credit.get_auto_recharge` Get Auto Recharge Credit Settings read
- `easyship.credit.refund` Refund a Credit destructive
- `easyship.credit.update_auto_recharge` Update Auto Recharge Credit Settings write

**Payment sources 6**

- `easyship.payment_sources.confirm` Confirm Payment Source write
- `easyship.payment_sources.create` Create a Payment Source write
- `easyship.payment_sources.delete` Delete a Payment Source destructive
- `easyship.payment_sources.get_stripe` Get a Stripe Public Key read
- `easyship.payment_sources.list` List all Payment Sources read
- `easyship.payment_sources.update` Update a Payment Source write

**Addresses 5**

- `easyship.addresses.create` Create an Address write
- `easyship.addresses.list` List all Addresses read
- `easyship.addresses.update` Update an Address write
- `easyship.addresses.validate` Validate a single address read
- `easyship.addresses.validate_domestic` Validate a single US address (Deprecated) read

**Boxes 4**

- `easyship.boxes.create` Create a Box write
- `easyship.boxes.delete` Delete a Box destructive
- `easyship.boxes.list` List all Boxes read
- `easyship.boxes.update` Update a Box write

**Insurance 4**

- `easyship.insurance.cancel_policy` Cancel an Insurance Policy destructive
- `easyship.insurance.create_policy_from_quote` Create an Insurance Policy from Quote write
- `easyship.insurance.create_quote` Create an Insurance Quote write
- `easyship.insurance.list_policies` List all Insurance Policies read

**Locations 4**

- `easyship.locations.canada_post` List Canada Post Locations read
- `easyship.locations.fedex` List FedEx Locations read
- `easyship.locations.ups` List UPS Locations read
- `easyship.locations.usps` List USPS Locations read

**Pickups 4**

- `easyship.pickups.cancel` Cancel a Pickup destructive
- `easyship.pickups.create` Create a Pickup write
- `easyship.pickups.get` Get a Pickup read
- `easyship.pickups.list` List all Pickups read

**Products 4**

- `easyship.products.create` Create a Product write
- `easyship.products.delete` Delete a Product destructive
- `easyship.products.list` List all Products read
- `easyship.products.update` Update a Product write

**Reference 4**

- `easyship.reference.list_countries` List all Countries read
- `easyship.reference.list_hs_codes` List HS Codes read
- `easyship.reference.list_item_categories` List all Item Categories read
- `easyship.reference.list_states` List all States read

**Shipping rule actions 4**

- `easyship.shipping_rule_actions.create` Create Action for a Shipping Rule write
- `easyship.shipping_rule_actions.delete` Delete Action of a Shipping Rule destructive
- `easyship.shipping_rule_actions.list` List all Actions for a Shipping Rule read
- `easyship.shipping_rule_actions.update` Update Action of a Shipping Rule write

**Shipping rule conditions 4**

- `easyship.shipping_rule_conditions.create` Create Condition for a Shipping Rule write
- `easyship.shipping_rule_conditions.delete` Delete Condition of a Shipping Rule destructive
- `easyship.shipping_rule_conditions.list` List all Conditions for a Shipping Rule read
- `easyship.shipping_rule_conditions.update` Update Condition of the Shipping Rule write

**Courier services 3**

- `easyship.courier_services.estimated_delivery_dates` List all Estimated Delivery Dates for a Courier Service read
- `easyship.courier_services.list` List all Courier Services read
- `easyship.courier_services.pickup_slots` List Available Pickup Slots read

**Manifests 3**

- `easyship.manifests.create` Create a Manifest write
- `easyship.manifests.get` Get a Manifest read
- `easyship.manifests.list` List all Manifests read

**Billing documents 2**

- `easyship.billing_documents.list` List all Billing Documents read
- `easyship.billing_documents.list_transaction_records` List all Billing Document's Transaction Records read

**Efulfillment 2**

- `easyship.efulfillment.tracking_update` Tracking Updates write
- `easyship.efulfillment.warehouse_state_update` Warehouse State Updates write

**Tags 2**

- `easyship.tags.create` Create a Tag write
- `easyship.tags.list` List all Tags read

**Rates 1**

- `easyship.rates.request` Request Rates read

**Stores 1**

- `easyship.stores.list` List all Stores read

**Taxes and duties 1**

- `easyship.taxes_and_duties.calculate` Calculate Tax and Duty read

**Transaction records 1**

- `easyship.transaction_records.list` List all Transaction Records read

Questions

## The Easyship MCP server, answered.

**Is there an Easyship MCP server for Claude?**

Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 132 Easyship actions across shipments, account, shipping rules and webhooks, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by Easyship.

**What do I need to connect Easyship?**

Easyship API access token: in the Easyship dashboard open Connect > Add Integration > API Integration, create an…. Plus your host. The free call account { op: "connections.requirements", service: "easyship" } lists exactly what to paste.

**Can an AI agent delete or change things in Easyship?**

Only if its key allows it, and only with an explicit confirmation. 15 Easyship actions are destructive, including delete a Product, delete a Shipment and delete a Webhook. Each runs only with confirm: true. Under the human confirm policy, or an approval rule on the key, the run waits until a named person approves it.

**Will an AI agent use up my Easyship API limit?**

actionlake paces every call to the limits in the Easyship service file: 60 calls a minute per connection. Repeated reads are answered from cache (60 Easyship actions can be), which never reaches Easyship.

**What does an Easyship action cost?**

One upstream call, the only unit actionlake bills. A list that pages bills one call per page (132 Easyship actions page). Cache hits, searches, dry runs and calls Easyship refused with 401, 403, 429 or a 5xx are free. The Free plan includes 100,000 calls a month with no card. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.

**Which Easyship API does it cover?**

The Easyship Public API v2024-09 (OpenAPI 3.0.3) at public-api.easyship.com by default, or the base URL set when you connect. It is built from Easyship's documentation as read on 23 October 2026. 132 actions in 28 areas, each one in the signed service file (version 1.0.0).

**Does actionlake keep my Easyship data, and where?**

actionlake processes and stores data in Sydney, Australia; there is no US region yet. Reads may be cached for up to 5 minutes, and a write clears the reads it affects. Each run's request and response is kept, sealed, for your plan's trace window: 1 day on Free, 3 days on Starter, 7 days on Pro, 14 days on Team, 30 days on Business and 30 days on Enterprise. Your Easyship credential is sealed under your tenant's key, never logged and never returned. Your traffic is not used to train models.

**Which AI clients can use it?**

Claude Code, tested by us end to end, and the Claude app as a custom connector, tested by us with an existing key. Other MCP clients that support remote servers over Streamable HTTP (MCP revisions 2025-06-18 and 2025-11-25) and OAuth dynamic client registration, or a bearer header, should connect the same way; we have not tested them. Or plain REST, under the same action names.

## More connectors like Easyship

Shares the most action names with

- [ShipStation 12](https://actionlake.com/connectors/shipstation)
- [ShipBob 11](https://actionlake.com/connectors/shipbob)
- [ShipHero 11](https://actionlake.com/connectors/shiphero)
- [Shippo 10](https://actionlake.com/connectors/shippo)
- [AfterShip 10](https://actionlake.com/connectors/aftership)
- [Shippit 8](https://actionlake.com/connectors/shippit)

Joins with, on shared entities

- [Tripletex 2](https://actionlake.com/connectors/tripletex)
- [Whop 2](https://actionlake.com/connectors/whop)
- [Fortnox 2](https://actionlake.com/connectors/fortnox)
- [Cliniko 2](https://actionlake.com/connectors/cliniko)
- [Clover 2](https://actionlake.com/connectors/clover)
- [Lightspeed Retail X-Series 2](https://actionlake.com/connectors/lightspeed-retail-x-series)

Browse

- [All Commerce connectors](https://actionlake.com/connectors/category/commerce)
- [All connectors](https://actionlake.com/connectors)
- [How actionlake compares](https://actionlake.com/compare)

actionlake is independent. It is not made or endorsed by Easyship; the name is the vendor's own. Counts are from the Easyship service file, version 1.0.0.

## Give your agent Easyship today.

[Connect Easyship free](https://actionlake.com/console?start=sandbox) [See pricing](https://actionlake.com/pricing)

Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.

---

Source: https://actionlake.com/connectors/easyship
More: https://actionlake.com/llms.txt
