This article explains how to use Easyship with OpenAI so you can manage shipping tasks, including comparing rates, creating shipments, buying labels, scheduling pickups, and tracking deliveries, all through natural language.
There are two ways to connect:
| Option | Best For | How You Connect? |
| Part 1: Easyship plugin for ChatGPT | Anyone who wants to ship from inside a ChatGPT chat, no code required | Sign in to Easyship and authorise (OAuth). No API token needed. |
| Part 2: OpenAI Responses API or Agents SDK | Developers building their own AI agents or apps with OpenAI | Easyship API token |
Part 1: Using the Easyship Plugin with ChatGPT
Before You Begin
You'll need:
A ChatGPT account at chatgpt.com
An active Easyship account
You don't need an Easyship API token for this option.
Step 1: Install the Easyship Plugin
Log in to ChatGPT
Go to Plugins
Search for Easyship
Click Install plugin
Step 2: Authorize Easyship
After install click on Connect
You'll be redirected to Easyship to sign in. Log in to your Easyship account if you aren't already
Review the permissions requested and click Authorize
You'll be returned to ChatGPT, and the Easyship plugin will show as Connected
Heads up: There is no separate test environment for MCP actions. Any action that consumes credits (such as generating labels) will incur real charges.
Step 3: Start Using Easyship in a Chat
Open a new chat in ChatGPT
Type @easyship and select Easyship - Shipping MCP from the dropdown
Type your prompt to get started
Try a prompt like:
I want to ship a parcel from New York, USA to Toronto, Canada. Origin: 350 5th Avenue, New York, US 10001. Destination: 220 Yonge Street, Toronto, ON, Canada M5B 2H1. Parcel: 1.98 lb, 6 × 4 × 2 cm. Item: Business documents, quantity 1, HS Code 4911.99, declared value $1.00 USD, category documents, DDU. Show me the cheapest and best value shipping options with delivery times and courier names.
Part 2: Using Easyship MCP with the OpenAI Responses API or Agents SDK
Before You Begin
You'll need:
- Access to the OpenAI Responses API or Agents SDK
- Access to your Easyship Dashboard
- An Easyship account (API access is available on all plans at no extra cost)
Step 1: Get Your Easyship API Token
- Go to your Easyship Dashboard and click Connect
- Click New Integration
- Scroll down to API Integration
- Under Integration Type, select I am developing a custom integration
- Name the key Easyship MCP for easy reference
- Keep the default version 2024-09 and click Connect
- On the next page, click Access Token and copy it using the copy button
Required scopes: Your API token must include the following scopes. Missing scopes will cause some tools to fail while others continue to work.
public.shipment:read public.shipment:write
public.label:write public.pickup:read
public.pickup:write public.address_validation:write
public.address_validation_domestic:write
public.shipment_document:read public.transaction_record:read
public.analytics:read public.rate:read
public.track:readYou can check and update scopes at any time in Dashboard → Connect → API without creating a new token.
Step 2: Add the Easyship MCP Server to the Responses API
Pass the Easyship MCP server as a tool in your responses.create() call. See the OpenAI MCP tools documentation for full reference.
python
from openai import OpenAI
client = OpenAI()
resp = client.responses.create(
model="gpt-4.1",
tools=[{
"type": "mcp",
"server_label": "easyship",
"server_url": "https://mcp.easyship.com/mcp",
"require_approval": "never",
"headers": {
"Authorization": "Bearer YOUR_EASYSHIP_TOKEN"
}
}],
input="What are the cheapest shipping options from HK to NYC for a 1.5kg package?"
)
print(resp.output_text)Replace YOUR_EASYSHIP_TOKEN with the API token you copied in Step 1.
Note: require_approval: "never" tells the model to call Easyship tools automatically without pausing for confirmation. Set it to "always" if you want the model to prompt for approval before taking actions such as creating shipments or buying labels.
Security: Never hardcode your API token in source code or share it in a chat window. Store it as an environment variable (e.g. EASYSHIP_API_ACCESS_TOKEN) and reference it at runtime. If you accidentally expose it, revoke and rotate your key immediately in the Easyship Dashboard under Connect → API.
Step 3: Verify the Connection
Run your script. If the Easyship MCP server is connected correctly, the model will call Easyship tools automatically and return shipping results in resp.output_text.
If you see a connection or authentication error, double-check your token and confirm all required scopes are enabled in the Easyship Dashboard.
Step 4: Try It Out
Once connected, try a prompt like:
I want to ship a parcel from New York, USA to Toronto, Canada. Origin: 350 5th Avenue, New York, US 10001. Destination: 220 Yonge Street, Toronto, ON, Canada M5B 2H1. Parcel: 1.98 lb, 6 × 4 × 2 cm. Item: Business documents, quantity 1, HS Code 4911.99, declared value $1.00 USD, category documents, DDU. Show me the cheapest and best value shipping options with delivery times and courier names.
For a full list of available tools and workflows, see the Easyship MCP Developer Docs.
ChatGPT Consumer UI — Coming Soon
Direct integration with the ChatGPT consumer UI at chat.openai.com requires OAuth support. This is not yet available for the Easyship MCP server. Once OAuth is supported, users will be able to connect Easyship directly from the ChatGPT interface without any code.
FAQs
Can I use an existing API token, or do I need a new one?
You can use an existing token from your Easyship account. Just make sure it has all the required scopes listed in Step 1. If some scopes are missing, certain tools will fail while others work.
Does this work with the ChatGPT app or chat.openai.com?
Not yet. The Responses API and Agents SDK integration is available today for developers building with OpenAI. The ChatGPT consumer UI requires OAuth support from the MCP server, which is coming soon.
What does require_approval: "never" do?
This setting tells the OpenAI model to call Easyship MCP tools automatically without pausing to ask for user approval on each tool call. Set it to "always" if you want the model to prompt for confirmation before taking actions like creating shipments or buying labels.
What if the model doesn't call Easyship tools?
Double-check your token and that the server_url is https://mcp.easyship.com/mcp. Make sure the Authorization header value starts with Bearer (with a space) followed by your token. Also confirm all required scopes are enabled in the Easyship Dashboard.
What if not all tools are loaded?
- Verify your Easyship API token is valid and active
- Confirm all required scopes are enabled in the Easyship Dashboard
- Check your network connection from the machine running the script
- Check the OpenAI API response for any error messages related to the MCP server
Why is my Easyship API token not working?
Check the scopes for your token in the Easyship Dashboard under Connect → API. A token might work for some actions but fail for others depending on which scopes it has. For full access to all tools, enable all the scopes listed in Step 1.
What happens if I don't grant all the required scopes?
Only the tools that match your granted scopes will work. Other tools will return an error. You can update scopes in the Easyship Dashboard without creating a new token.
Do I need to pay for the Easyship API token?
No. Easyship provides API access across all plans at no extra cost. If you exceed the included API limits for your plan, overage fees may apply. See [pricing plans and included limits].
Can I use the same Easyship token with other clients (Claude, Cursor, etc.)?
Yes. The same Easyship API token works across any MCP client. Be mindful of rate limits and avoid running conflicting operations (like editing the same shipment from two clients at once).