mcpField
P
Pirate Ship by Cotlet

Pirate Ship by Cotlet

远程服务
cotlet.dev地图与出行41 天前更新

关于 Pirate Ship by Cotlet

Pirate Ship by Cotlet 是面向技术用户的自托管 Python API 和 MCP 服务,用于处理小型包裹寄送流程。它涵盖费率、标签草稿、货件、追踪和报告,但不包含会花费或退款的工具。

主要功能

  1. 01比较 USPS 和 UPS 费率
  2. 02创建标签草稿和批次
  3. 03查看货件与追踪信息
  4. 04查看报告和承运商调整
  5. 05导入商店订单并管理设置

适用场景

  1. 01比较包裹的寄送费率
  2. 02从 CSV 准备未付款标签批次
  3. 03查找尚无承运商扫描的货件
  4. 04查看运费支出和调整

MCP 相关

通过 stdio 或流式 HTTP 向 MCP 客户端提供 Pirate Ship 寄送和账户工具。此版本不包含会花费或退款的工具。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://cotlet.dev/mcp/v1/pirate-ship/connect
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

全部服务地址
Streamable HTTPhttps://cotlet.dev/mcp/v1/pirate-ship/connect
Streamable HTTPhttps://cotlet.dev/mcp/v1/pirate-ship需要授权
安装包
pypipirate-ship-api-mcp1.0.3

工具

详细介绍

Pirate Ship API 和 MCP 服务,可自托管

一个 Pirate Ship API 和一个 Pirate Ship MCP 服务,使用 Python 在你自己的电脑上运行,并在你自己的 Google Chrome 会话中工作。我们在 Cotlet 的生产环境中运行的 57 个 Pirate Ship 工具中,这里提供了 51 个:USPS 和 UPS 运费、标签和批次草稿、标签下载、SCAN Forms、货件和追踪、报告、商店订单导入、发货地址、已保存的包裹、追踪邮件和标签设置。涉及付款或退款的 6 个工具不包含在此版本中。

Pirate Ship 没有公开 API,也没有官方 MCP 服务。这个代码库同时提供两者:

  • 面向 Claude Code、Claude Desktop、Cursor、Codex 和任何 MCP 客户端的 MCP 服务,支持 stdio 或 HTTP。设置
  • 位于 http://127.0.0.1:8787/api/v1/pirate-ship 的 REST API,OpenAPI 文档位于 /docs。设置
  • Python:call("get_rates", to_zip="10001", weight_oz=16),以及 examples/ 中的 11 个现成脚本。

本项目面向希望自行运行的技术人员,仅限非商业用途(许可证)。如果你希望它在服务器上全天候运行,在 Pirate Ship 更改其应用后仍能正常工作,或供团队或企业使用,请使用 cotlet.dev 上的托管版本。

Pirate Ship MCP server Python 3.11+ License: PolyForm Noncommercial 1.0.0

git clone https://github.com/cotletdev/pirate-ship-api-mcp-server.git && cd pirate-ship-api-mcp-server
python3 -m venv .venv && . .venv/bin/activate && pip install -e .
pirate-ship-mcp connect                            # reads your Pirate Ship session from Chrome
pirate-ship-mcp call get_rates to_zip=10001 weight_oz=16
claude mcp add pirate-ship -- "$PWD/.venv/bin/pirate-ship-mcp" mcp

目录

工作原理

AI agent (MCP) / script (REST, Python) ──▶ pirate-ship-mcp on your computer ──your cookies──▶ ship.pirateship.com
                                                     ▲
                       pirate-ship-mcp connect ──────┘ reads them once from your Chrome (DevTools Protocol)
  1. 你像往常一样,在自己的 Chrome 中登录 Pirate Ship。
  2. pirate-ship-mcp connect 通过 Chrome DevTools Protocol 连接到该 Chrome,读取 pirateship.com 的 Cookie 和 Chrome 的时区,并将它们保存到 ~/.config/pirate-ship-api-mcp/session.json,该文件仅对你的用户可读。它不会查看或存储你的密码。
  3. 每次工具调用都会使用 Pirate Ship 自己的网页应用发送到 ship.pirateship.com/api/graphql 的某个 GraphQL 操作,并携带这些 Cookie,通过 curl_cffi 发送;它会复制 Chrome 的 TLS 指纹。整个过程不会运行无头浏览器。

Pirate Ship 的网页应用会将每个操作作为持久化查询发送:包含操作名称和查询文本的 sha256。工具只能发送 operations.py 中列出的操作,账户、密码、付款方式和身份相关操作均不在列表中。如果 Pirate Ship 更改了某个已列出的查询,在我们记录新的哈希之前,工具会回复“Pirate Ship changed its app”。

Pirate Ship 的会话 Cookie 大约一天后过期,并会在使用时续期。当 Pirate Ship 将你登出时,如果 Chrome 已打开远程调试,服务会再次从 Chrome 读取 Cookie。登录时请勾选“保持登录”,这样 Chrome 就会在你下次访问时仍保持登录状态。

要求

  • Python 3.11 或更高版本。
  • Google Chrome 144 或更高版本,并已登录 Pirate Ship。任何带有调试端口的 Chrome 或 Chromium 均可。
  • macOS、Linux 或 Windows。
  • 拥有 Pirate Ship 账户,并设置了发货地址。费率、草稿、报告和设置无需其他条件。购买标签需要账户余额或付款方式,且须在 Pirate Ship 中购买。

安装

git clone https://github.com/cotletdev/pirate-ship-api-mcp-server.git
cd pirate-ship-api-mcp-server
python3 -m venv .venv
. .venv/bin/activate              # Windows: .venv\Scripts\activate
pip install -e .
pirate-ship-mcp --version

使用 uv:uv venv && uv pip install -e .,然后运行 uv run pirate-ship-mcp ...。

想用 AI Agent(Claude Code、Codex、Cursor)完成设置?在此文件夹中打开项目,并让它设置代码库:AGENTS.md 会告知它每个步骤,而且它只会在 Chrome 中进行操作时询问你。

更新:git pull && pip install -e .。我们会将托管版 Pirate Ship 工具的每项更改都复制到此代码库中。

连接 Chrome

选项 A:日常使用的 Chrome(推荐)
  1. 在 Chrome 中打开 chrome://inspect/#remote-debugging,然后开启远程调试。之后,Chrome 会接受此电脑上程序发起的 DevTools 连接,并在每次连接前询问你。

  2. 确认已登录 ship.pirateship.com。

  3. 运行:

    pirate-ship-mcp connect
    
  4. Chrome 会询问是否允许连接。点击允许。

Saved 32 Pirate Ship cookies to /Users/you/.config/pirate-ship-api-mcp/session.json
Signed in to Pirate Ship as Linda Morales ([email protected])

如果希望 Pirate Ship 将你登出后,服务能自动检测到新会话,请保持远程调试开启。Cookie 只有一天有效期,因此这种情况比大多数应用更常见。

connect 会在 Chrome 默认的配置文件夹中查找 DevToolsActivePort 文件。对于 Chrome Beta、Canary 或自定义配置文件夹,请传入 --profile-dir "<folder>"。

选项 B:使用带有调试端口的 Chrome

Chrome 不会在默认配置文件上开放调试端口,因此请启动一个独立实例,在其中登录 Pirate Ship 一次,然后连接到该实例:

# macOS
"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" --remote-debugging-port=9222 --user-data-dir="$HOME/.chrome-pirate-ship"
# Linux
google-chrome --remote-debugging-port=9222 --user-data-dir="$HOME/.chrome-pirate-ship"
# Windows
"C:\Program Files\Google\Chrome\Application\chrome.exe" --remote-debugging-port=9222 --user-data-dir="%USERPROFILE%\.chrome-pirate-ship"

pirate-ship-mcp connect --cdp http://127.0.0.1:9222

--cdp 也接受 ws:// DevTools URL,例如通过 SSH 隧道连接到另一台机器上的 Chrome。

选项 C:手动粘贴 Cookie

对于没有 Chrome 的服务:在 Chrome 中打开 ship.pirateship.com 的 DevTools,依次选择 **Application > Cookies > https://ship.pirateship.com**,复制 pirate_id_f0fecf84 的值,然后:

pirate-ship-mcp connect --token          # paste it, input is hidden
# or, without a session file:
export PIRATE_SHIP_AUTH_TOKEN=...

粘贴的 Cookie 不会自动刷新,而且如果不使用,大约一天后就会失效。Pirate Ship 将你登出后,请粘贴新的 Cookie。

随时检查会话:

pirate-ship-mcp status

MCP 服务

MCP 服务会列出每个工具及其输入架构、为 Agent 编写的说明和提示:读取工具会标记为只读,删除内容或更改收件人收到内容的工具也会标记出来,以便客户端在运行前征求你的确认。

Claude Code
claude mcp add pirate-ship -- /path/to/pirate-ship-api-mcp-server/.venv/bin/pirate-ship-mcp mcp
# read only:
claude mcp add pirate-ship -- /path/to/pirate-ship-api-mcp-server/.venv/bin/pirate-ship-mcp mcp --read-only
Claude Desktop

~/Library/Application Support/Claude/claude_desktop_config.json(macOS)或 %APPDATA%\Claude\claude_desktop_config.json(Windows):

{
  "mcpServers": {
    "pirate-ship": {
      "command": "/path/to/pirate-ship-api-mcp-server/.venv/bin/pirate-ship-mcp",
      "args": ["mcp"]
    }
  }
}
Cursor

~/.cursor/mcp.json,与 Claude Desktop 使用相同的配置块。可直接使用的副本位于 mcp.json。

Codex

~/.codex/config.toml:

[mcp_servers.pirate-ship]
command = "/path/to/pirate-ship-api-mcp-server/.venv/bin/pirate-ship-mcp"
args = ["mcp"]
通过 HTTP 连接

pirate-ship-mcp serve 也会通过可流式传输的 HTTP,在 http://127.0.0.1:8787/mcp 提供 MCP 服务,适用于接受 URL 的客户端:

pirate-ship-mcp serve
claude mcp add --transport http pirate-ship http://127.0.0.1:8787/mcp

然后可以向 Agent 提出类似这样的问题:

一个 2 lb、12x10x6 的箱子,用 USPS 和 UPS 寄到邮编 94103 要多少钱?按价格从低到高排列。

根据 orders.csv 和我的“Small box”保存的包裹创建一批草稿,并按组显示费率。

过去 10 天的哪些标签还没有承运商扫描记录?

我在 10 月花了多少钱购买标签?承运商调整了哪些费用?

REST API

pirate-ship-mcp serve              # http://127.0.0.1:8787, MCP at /mcp, docs at /docs

每个工具在 /api/v1/pirate-ship 下都有自己的路由,与 cotlet.dev 上托管 API 的路径相同,因此针对其中一个编写的代码也适用于另一个。路径部分和查询字符串会作为参数,JSON 请求体则提供其余参数。

curl 'http://127.0.0.1:8787/api/v1/pirate-ship/balance'
curl 'http://127.0.0.1:8787/api/v1/pirate-ship/rates?to_zip=10001&weight_oz=16&length_in=10&width_in=8&height_in=4'
curl 'http://127.0.0.1:8787/api/v1/pirate-ship/shipments?from_date=2026-10-01&limit=50'
curl -X POST http://127.0.0.1:8787/api/v1/pirate-ship/shipments \
  -H 'Content-Type: application/json' \
  -d '{"full_name": "Linda Morales", "address1": "350 5th Ave", "city": "New York", "state": "NY", "zip": "10118", "weight_oz": 20}'

按名称调用任意工具,并将请求体作为参数:

curl -X POST http://127.0.0.1:8787/api/v1/pirate-ship/tools/list_shipments -d '{"carrier": ["UPS"]}'
  • GET /api/v1/pirate-ship/tools:列出每个工具及其路由、输入架构和示例答案。
  • GET /docs:交互式 OpenAPI 文档;GET /openapi.json:架构,可用于 n8n、Postman 或生成的客户端。
  • 答案采用 JSON 格式。报告列表接受 limit 和 offset 参数,并返回 total。

服务仅侦听 127.0.0.1。若要从你的另一台设备访问它,请设置令牌;此后每个请求都需要提供 Authorization: Bearer <token>:

PIRATE_SHIP_MCP_TOKEN=$(openssl rand -hex 24) pirate-ship-mcp serve --host 0.0.0.0

Python 和示例脚本

直接从 Python 调用,无需服务:

from pirate_ship_api_mcp import call
from pirate_ship_api_mcp.scripting import paginate_offset, write_rows

rates = call("get_rates", to_zip="10001", weight_oz=16, length_in=10, width_in=8, height_in=4)["rates"]
shipments = list(paginate_offset("list_shipments", {"from_date": "2026-10-01"}, "shipments"))
write_rows(shipments, "october.csv")
call("create_shipment", full_name="Linda Morales", address1="350 5th Ave", city="New York", zip="10118", weight_oz=20)

也可以从命令行调用单个工具:pirate-ship-mcp call list_shipments limit=10,或传入 JSON 对象。

examples/ 中提供了现成脚本。每个脚本都会输出 JSON 或简短报告;适用时可使用 --out file.csv 或 --out file.json,并支持 --help:

脚本功能
compare_rates.py查询单个包裹的 USPS 和 UPS 运费,按价格从低到高排列。可用 --size 10x8x4、--country。
draft_batch_from_csv.py将收件人 CSV 转为一个未付款的草稿批次,并附上一个 Saved Package;输出每组的运费。列出没有地址的行,不会猜测。
store_orders.py刷新已连接的商店,并列出等待发货的订单。
export_shipments.py将已购买的标签导出为 CSV 或 JSON:收件人、追踪号码、服务、费用和状态。支持 --since、--carrier。
tracking_report.py列出最近 N 天内尚未送达的标签,并显示最新事件和 stuck 标记。
refund_candidates.py查找重复标签以及在 28 天退款期限内没有承运商扫描记录的标签。脚本会列出这些标签;你需要在 Pirate Ship 中申请退款。
scan_form.py生成今日标签的 USPS SCAN Form,并提供 PDF 链接。
pickup_quote.py显示今日包裹及各承运商的重量和上门取件价格,不会预约取件。
carrier_adjustments.py显示承运商的费用调整,并将你输入的重量和尺寸与承运商测量的数据并列展示。
spend_report.py按日期范围汇总标签、支出、节省金额、承运商占比、主要州和余额。使用 --transactions 保存每笔扣款。
ship_from_addresses.py列出你的 Ship From Addresses 和 Saved Packages,以及其他工具所需的 ID。
python examples/compare_rates.py --to-zip 94103 --weight-oz 32 --size 12x10x6
python examples/draft_batch_from_csv.py orders.csv --title "Wholesale 19 Oct" --package "Small box"

按计划运行时,只要自己的电脑处于开机状态,就可以使用 cron:0 18 * * 1-5 cd ~/pirate-ship-api-mcp-server && .venv/bin/python examples/tracking_report.py --days 10 --out late.csv。

全部 51 个工具

金额以美元计,重量以盎司计,尺寸以英寸计,日期采用 Chrome 的时区。运行 pirate-ship-mcp tools 可打印此列表;运行 pirate-ship-mcp tools --json 可附带输入架构。

运费和地址
工具访问权限REST 路由功能
get_rates读取GET /rates查询单个包裹的 USPS 和 UPS 服务及价格,按价格从低到高排列。
parse_address读取GET /addresses/parse将粘贴的地址拆分为姓名、街道、城市、州、ZIP 和国家/地区。
search_recipients读取GET /recipients/search查找姓名、电子邮件或电话号码匹配的过往收件人地址。
list_package_types读取GET /package-types列出各承运商的包装类型(箱子、信封、固定费率包装)及尺寸和重量限制。
草稿面单和批次
工具访问权限REST 路由功能说明
create_shipment写入POST /shipments为一个包裹创建未付款的草稿面单,并显示所有费率;可在 Pirate Ship 中购买。
create_batch写入POST /batches为多个包裹创建未付款的草稿批次,并显示每个费率组的费率;可在 Pirate Ship 中购买。
create_batch_from_orders写入POST /batches/from-orders使用一个已保存的包裹,将商店订单转换为发货批次;不会购买面单。
get_batch读取GET /batches/{batch_id}查看草稿或已购买的批次,包括发货记录、追踪信息、待购买费率和可退款项目。
list_batches读取GET /batches按时间倒序列出最新批次和单张面单,并显示状态和追踪数量。
change_ship_date写入PUT /batches/{batch_id}/ship-date将草稿批次改到其他发货日期,并返回新费率。
rename_batch写入PATCH /batches/{batch_id}更改批次名称。
delete_batch写入DELETE /batches/{batch_id}删除未付款的草稿批次或单个发货记录。
打印和 SCAN 表单
工具访问权限REST 路由功能说明
download_labels读取GET /labels获取批次或指定发货记录中可打印面单的下载链接。
create_scan_form写入POST /scan-forms为某个发货日期的面单创建 USPS 当日结束 SCAN 表单,并提供 PDF 链接。
list_scan_forms读取GET /scan-forms按发货地址列出 USPS SCAN 表单,附带 PDF 链接及尚未关联表单的面单。
发货和追踪
工具访问权限REST 路由功能说明
list_shipments读取GET /shipments按时间倒序列出在 Pirate Ship 中购买的面单,并显示收件人、追踪信息、费用和状态。
get_shipment读取GET /shipments/{shipment_id}查看单个发货记录,包括追踪信息、服务、费用、收件人和承运商调整。
export_shipments读取GET /shipments/export获取包含所有列的发货报告 CSV 下载链接。
报告、余额和退款
工具访问权限REST 路由功能说明
get_account_balance读取GET /balance获取报告页面中的账户余额、待处理退款和待处理退货。
get_shipping_stats读取GET /stats获取日期范围内的面单、支出、节省金额、追踪信息和包裹去向,如报告页面所示。
list_transactions读取GET /transactions按时间倒序列出 Pirate Ship 余额中的所有扣款、付款和退款。
list_receipts读取GET /receipts按时间倒序列出支付给 Pirate Ship 的款项;使用 get_receipt 查看单笔款项。
get_receipt读取GET /receipts/{receipt_id}查看一笔支付给 Pirate Ship 的款项,包括账单地址和该款项支付的面单。
list_refunds读取GET /refunds按申请时间倒序列出面单退款及其状态和金额。
list_return_labels读取GET /return-labels列出按使用付费的退货面单,以及客户是否已使用这些面单。
list_carrier_adjustments读取GET /carrier-adjustments列出承运商在面单使用后收取的额外费用或提供的抵扣,并显示包裹原始信息和实际信息。
export_report读取GET /reports/{report}/export导出交易、退款、收据、退货面单或承运商调整报告的 CSV。
上门取件
工具访问权限REST 路由功能说明
get_pickup_quote读取GET /pickups/quote查询 USPS 或 UPS 上门取件的费用;USPS 上门取件免费。不会预约取件。
list_pickups读取GET /pickups列出已安排和过去的 USPS 与 UPS 上门取件及其确认号码。
商店订单
工具访问权限REST 路由功能说明
list_store_connections读取GET /store-connections查看已连接到 Pirate Ship、用于导入订单的商店和电商平台及其状态。
sync_store_orders写入POST /import-orders/sync将每个已连接商店的新订单拉取到 Pirate Ship 的导入列表中。
list_import_orders读取GET /import-orders查看已连接商店集成中的未发货订单,与导入表格中的内容相同。
ignore_orders写入POST /import-orders/ignore将商店订单从导入列表中隐藏,但不发货。
unignore_orders写入DELETE /import-orders/ignore将已忽略的商店订单重新放回导入列表。
发货地址
工具访问权限REST 路由功能说明
list_ship_from_addresses读取GET /ship-from-addresses查看发货地址及其退货地址;其中一个为默认地址。
create_ship_from_address写入POST /ship-from-addresses添加一个美国发货地址,并可选择设置单独的退货地址。
update_ship_from_address写入PATCH /ship-from-addresses/{address_id}修改发货地址的名称、发货地点或退货地址。
set_default_ship_from_address写入PUT /ship-from-addresses/{address_id}/default将一个发货地址设为新货件和运费报价的默认地址。
delete_ship_from_address写入DELETE /ship-from-addresses/{address_id}删除已保存的发货地址。无法删除默认地址。
已保存的包裹
工具访问权限REST 路由功能说明
list_saved_packages读取GET /saved-packages查看“设置”中的已保存包裹,包括尺寸、重量及为每个包裹保存的附加服务。
create_saved_package写入POST /saved-packages保存包裹(类型、尺寸、重量、附加服务),以便在标签上重复使用。
update_saved_package写入PATCH /saved-packages/{package_id}修改已保存的包裹;未提供的字段将保留原值。
delete_saved_package写入DELETE /saved-packages/{package_id}删除已保存的包裹。使用该包裹制作的标签不受影响。
追踪邮件
工具访问权限REST 路由功能说明
get_tracking_email_settings读取GET /tracking-email-settings查看收件人是否默认会收到追踪邮件、购买后多久发送,以及所用模板。
update_tracking_email_settings写入PATCH /tracking-email-settings开启或关闭默认追踪邮件,并设置购买后发送的延迟时间。
list_email_templates读取GET /email-templates查看追踪邮件模板,包括主题、发件人和 HTML 正文;其中一个为默认模板。
create_email_template写入POST /email-templates添加追踪邮件模板,用于发送给收件人并附上追踪链接的邮件。
update_email_template写入PATCH /email-templates/{template_id}修改追踪邮件模板;未提供的字段将保留原值。
delete_email_template写入DELETE /email-templates/{template_id}删除追踪邮件模板。
标签设置
工具访问权限REST 路由功能说明
get_label_settings读取GET /label-settings查看标签尺寸和文件格式、装箱单、徽标、二维码、地址更正及导出格式。
update_label_settings写入PATCH /label-settings修改标签尺寸、文件格式、装箱单、徽标、二维码、地址更正或导出格式。
此版本中未包含
工具原因
buy_label会使用您的账户余额或扣款。请在 Pirate Ship 中购买。
refund_label、refund_batch退款申请一经提交便无法撤销,且会转移资金。请在 Pirate Ship 中申请。
schedule_pickup、cancel_pickupUPS 取件会收费,取消后会退款。这里提供 get_pickup_quote 和 list_pickups。
dispute_adjustment争议是针对您余额中的一笔扣款。这里提供 list_carrier_adjustments。

工具描述中的“buy it with buy_label”表示:在 Pirate Ship 的 Web 应用中购买草稿。出于设计考虑,绝不构建以下功能:访问您的 Pirate Ship 登录信息、电子邮件、密码、安全设置、付款方式、账单信息和身份验证。

配置

变量默认值作用
PIRATE_SHIP_MCP_HOME~/.config/pirate-ship-api-mcpsession.json 所在文件夹。
PIRATE_SHIP_AUTH_TOKEN使用 pirate_id_f0fecf84 Cookie,而不是 pirate-ship-mcp connect。
PIRATE_SHIP_PROXY向 Pirate Ship 发送所有请求时使用的代理,例如 http://user:pass@host:port。
PIRATE_SHIP_MCP_READ_ONLY1 会隐藏并拒绝所有会更改 Pirate Ship 的工具(等同于 --read-only)。
PIRATE_SHIP_MCP_TOKENserve 所需的 Bearer 令牌;若要监听 127.0.0.1 以外的地址,则必须设置。
PIRATE_SHIP_MCP_HOST、PIRATE_SHIP_MCP_PORT127.0.0.1、8787serve 的地址。
TZChrome 的时区当 connect 无法读取 Chrome 的时区时,用于“今天”和日期范围的时区。

安全与您的 Pirate Ship 账户

  • **您的密码绝不会传给此代码。**这里只读取 Cookie,且仅限 pirateship.com 的 Cookie。
  • 会话文件归您所有。session.json 创建时的权限模式为 0600。任何拥有该文件的人都可以以您的身份操作 Pirate Ship,因此请勿将其放入 git 或共享文件夹。
  • 默认仅限本地。serve 绑定到 127.0.0.1;若使用其他地址,则必须设置 PIRATE_SHIP_MCP_TOKEN,否则会拒绝启动。
  • **仅限 pirateship.com。**系统会拒绝向 pirateship.com 之外的地址发送请求或重定向。
  • **没有工具会转移资金。**没有任何工具会购买运单标签、申请退款、预约付费取件或操作您的付款方式。
  • 只读模式。--read-only 或 PIRATE_SHIP_MCP_READ_ONLY=1 仅开放 29 个只读工具。
  • **部分更改会影响您的收件人。**跟踪电子邮件设置和模板会更改客户收到的电子邮件。MCP 客户端会在运行这些工具前征求确认;脚本则不会。

错误

REST API 会返回 {"error": "<code>", "message": "..."}。MCP 服务会将相同的代码和消息作为工具错误返回。

状态代码处理方法
401auth_required、auth_expired没有会话,或 Pirate Ship 已将您登出。请在 Chrome 中登录 Pirate Ship,然后运行 pirate-ship-mcp connect。
403scope_denied服务以只读模式运行。
403target_blockedPirate Ship 拒绝了请求或显示了机器人验证。请在 Chrome 中打开 ship.pirateship.com 一次,然后重试。
409captcha_requiredPirate Ship 要求完成 CAPTCHA。请在 Chrome 中完成验证。
422invalid_input参数缺失或有误;消息会指出具体参数。
429rate_limitedPirate Ship 正在限制该账户。请等待几分钟。
502target_errorPirate Ship 返回错误(ID 未知、地址无法计算运费),或其应用发生了更改。请运行 git pull 获取最新工具,或提交问题。

自托管或托管

本仓库Cotlet,托管版
工具51 个全部 57 个,包含购买、退款、取件和争议处理
运行方式在你的电脑上运行,电脑开机时可用在云端 24/7 运行
Pirate Ship 会话使用你的 Chrome,Cookie 存储在本地文件中使用你在欧盟的专属 Cloud Browser,配置文件通过 AES-256-GCM 加密,并保持登录状态
Pirate Ship 更改应用时我们修复后,你执行一次 git pull我们为你修复,每天测试所有工具
审批MCP 客户端会在每次调用时询问你购买和退款需等待你确认,可按工具切换
兼容对象你电脑上的 MCP 客户端、本地脚本Claude.ai 和 ChatGPT 连接器、n8n、Make、Zapier,以及任何 HTTP 客户端
适用对象你本人,限非商业用途团队、企业、代理机构
价格免费免费试用 7 天,含 2,000 点数,无需信用卡;之后可购买一次性点数包,5,000 点数起价 $29

在托管版中,成功调用会消耗 20 到 30 点数(大多数工具消耗 25 点数),调用失败不收费;只要 Cloud Browser 启用了 Agent 应用,每天就会消耗 50 点数。完整定价。

常见问题

Pirate Ship 有官方 API 吗? 没有。Pirate Ship 没有 API、没有 Webhook,也没有官方 MCP 服务(截至 2026 年 10 月 11 日核实)。其帮助中心对此有说明,并建议改用内置的商店集成和电子表格上传。详情:cotlet.dev/integrations/pirate-ship-api-mcp-server。

有适用于 Claude、ChatGPT 或 Cursor 的 Pirate Ship MCP 服务吗? 有,这个服务运行在你的机器上:pirate-ship-mcp mcp 可用于 Claude Code、Claude Desktop、Cursor 和 Codex。ChatGPT 和 Claude.ai 连接器需要公开的 HTTPS URL,托管版 Pirate Ship MCP 服务可提供该 URL。

我可以通过脚本获取 USPS 和 UPS 运费吗? 可以。get_rates 会按价格从低到高返回所有服务的 Pirate Ship 价格、零售价、配送区域和预计送达时间,且不会保存任何内容:python examples/compare_rates.py --to-zip 10001 --weight-oz 16 --size 10x8x4。

它可以购买运单标签吗? 这个代码库不行。它会根据各组的运费创建草稿(create_shipment、create_batch、create_batch_from_orders),然后你在 Pirate Ship 中点击 Buy。托管版提供了 buy_label,并可为每次购买设置价格上限。

我可以通过电子表格或商店订单创建批次吗? 可以。create_batch 每次调用最多可接收 500 个收件人,create_batch_from_orders 则从已连接的商店获取订单。examples/draft_batch_from_csv.py 可读取 CSV。

我可以将货件和追踪信息导出为 CSV 吗? 可以:python examples/export_shipments.py --since 2026-10-01 --out october.csv,也可以使用 export_shipments 导出 Pirate Ship 自带的电子表格,其中包含所有列。

为什么它需要访问我的 Chrome? 为了在不使用密码的情况下读取你的 Pirate Ship 会话。Pirate Ship 的登录受到 Cloudflare 检查,因此你需要在浏览器中登录,之后由普通请求完成其余操作。每次登录只需使用一次 Chrome,而不是每次调用都用。

Pirate Ship 将我登出后会怎样? 调用会因 auth_expired 失败。如果 Chrome 已启用远程调试,服务会在下一次调用时读取新的 Cookie(Chrome 提示时点击 Allow);否则,请重新运行 pirate-ship-mcp connect。

可以在 VPS 或 Docker 中运行吗? 技术上可以,需使用 PIRATE_SHIP_AUTH_TOKEN。如果不使用,该 Cookie 大约一天后失效;届时 Pirate Ship 会发现你的会话来自数据中心 IP。若要始终在线运行,托管版会将你的会话保存在你自己的 Cloud Browser 中。

我的 Pirate Ship 账号会被封禁吗? 请求会携带 Chrome 的指纹,并且会像你亲自点击那样逐个发出。没人能保证平台绝不会采取措施。请保持正常使用。

我可以在工作中使用,或用于客户项目吗? 不可以,该许可证仅允许非商业用途。团队、公司或客户项目请使用 Cotlet,或发送邮件至 [email protected]。

它是开源的吗? 源代码是公开的,但该许可证不是开源许可证:仅限非商业用途,不得用于商业活动。

某个工具出故障了,或者我需要其他工具。 请提交问题,并附上工具名称和错误消息。

许可证

PolyForm Noncommercial License 1.0.0。简而言之:

  • 允许: 非商业用途:你使用自己的 Pirate Ship 账户满足个人需求,或慈善机构、学校、公共研究机构或政府部门使用。修改代码,并以相同许可证分享。
  • 不允许: 任何商业用途,包括你自己的业务;客户项目;出售或提供本项目,或基于本项目构建的服务。

Cotlet

由 Cotlet(@cotletdev)维护。Pirate Ship 是其所有者的商标。本项目为非官方项目,与 Pirate Ship 无关联,未获其认可或赞助。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。