Shipcloud MCP by usefulapi
Track shipments and quote shipping; prepare shipments, buy labels and request carrier pickups.
使うべきか
品質と安全性
検出事項(4)
- LOWshipcloud_create_prepared_shipment 内
- LOWshipcloud_create_shipment_with_label 内
- LOWshipcloud_create_pickup_request 内
- LOWshipcloud_find_dropoff_locations 内
ツール定義とプロトコルへの準拠に関する自動分析に基づいています。
コンテキストコスト
これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。
インストール
ワンクリックインストール
これを `claude_desktop_config.json` ファイルに追加してください:
{
"mcpServers": {
"shipcloud": {
"url": "https://shipcloud.usefulapi.io/mcp"
}
}
}リモートエンドポイント
https://shipcloud.usefulapi.io/mcpstreamable-httpできること
ツール一覧
ツール(22)
🟢shipcloud_get_account
The shipcloud user behind this API key: id, email, customer number, plan, and the ENVIRONMENT of the key (production = real labels and charges, sandbox = free test labels). Check this before creating labels. GET /me.
入力スキーマ
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢shipcloud_list_carriers
The carriers this account can use, each with its services, package types, additional services and label formats per service. Use the values when creating shipments. GET /carriers.
入力スキーマ
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢shipcloud_get_default_address(kind)
One of the account's saved default addresses: shipping (the default sender), returns (the default recipient of return shipments) or invoice (the invoice address). GET /default_shipping_address, /default_returns_address or /invoice_address.
入力スキーマ
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"shipping",
"returns",
"invoice"
],
"description": "Which default address."
}
},
"required": [
"kind"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢shipcloud_list_shipments(carrier, service, carrier_tracking_no, shipcloud_tracking_no, reference_number, ...)
List shipments (newest first as shipcloud returns them) with carrier, service, price, tracking number, tracking URL, label URL, addresses and tracking events. Filters can be combined. Paged: pass the previous reply's next_page. shipcloud sends no totals, so next_page is a guess (a full page suggests more). GET /shipments.
入力スキーマ
{
"type": "object",
"properties": {
"carrier": {
"type": "string",
"enum": [
"angel_de",
"asendia",
"cargo_international",
"dhl",
"dhl_express",
"dpag",
"dpd",
"gls",
"go",
"hermes",
"iloxx",
"parcel_one",
"ups"
]
},
"service": {
"type": "string",
"enum": [
"standard",
"one_day",
"one_day_early",
"returns",
"asendia_epaq_standard_economy",
"asendia_epaq_standard_priority",
"cargo_international_express",
"dhl_europaket",
"dhl_prio",
"dhl_warenpost",
"dpag_warenpost",
"dpag_warenpost_signature",
"dpag_warenpost_untracked",
"gls_express_0800",
"gls_express_0900",
"gls_express_1000",
"gls_express_1200",
"ups_express_1200"
]
},
"carrier_tracking_no": {
"description": "The carrier's tracking number.",
"type": "string",
"minLength": 1,
"maxLength": 100
},
"shipcloud_tracking_no": {
"description": "The shipcloud shipment id / tracking number.",
"type": "string",
"minLength": 1,
"maxLength": 100
},
"reference_number": {
"description": "The reference_number given when the shipment was created.",
"type": "string",
"minLength": 1,
"maxLength": 30
},
"shipment_type": {
"description": "prepared = saved without a label; label_created = has a label; tracking_only = imported tracker.",
"type": "string",
"enum": [
"prepared",
"label_created",
"tracking_only"
]
},
"source": {
"description": "Where the shipment was created.",
"type": "string",
"enum": [
"api",
"webui",
"return_portal"
]
},
"tracking_status": {
"description": "Only shipments with this tracking status.",
"type": "string",
"enum": [
"awaits_pickup_by_receiver",
"canceled",
"delayed",
"delivered",
"destroyed",
"exception",
"label_created",
"not_delivered",
"notification",
"out_for_delivery",
"picked_up",
"registered",
"transit",
"unknown"
]
},
"tracking_status_not": {
"description": "Only shipments WITHOUT this tracking status, e.g. delivered.",
"type": "string",
"enum": [
"awaits_pickup_by_receiver",
"canceled",
"delayed",
"delivered",
"destroyed",
"exception",
"label_created",
"not_delivered",
"notification",
"out_for_delivery",
"picked_up",
"registered",
"transit",
"unknown"
]
},
"created_after": {
"type": "string",
"description": "ISO 8601 date-time with a timezone, e.g. 2026-10-01T00:00:00Z."
},
"created_before": {
"type": "string",
"description": "ISO 8601 date-time with a timezone, e.g. 2026-10-01T00:00:00Z."
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"per_page": {
"description": "Results per page, 1-100 (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢shipcloud_get_shipment(shipment_id)
One shipment by id: addresses, packages with tracking events, price, label URL, tracking URL. Sandbox shipments have no tracking events and price 0. GET /shipments/{id}.
入力スキーマ
{
"type": "object",
"properties": {
"shipment_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,100}$",
"description": "The id shipcloud returned."
}
},
"required": [
"shipment_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢shipcloud_get_shipment_quote(carrier, service, to, from, packages)
What shipcloud would charge for a shipment (price in EUR excl. VAT). Read-only: nothing is created and nothing is charged. Only works for carrier contracts owned by shipcloud. Use it before shipcloud_create_shipment_with_label. POST /shipment_quotes.
入力スキーマ
{
"type": "object",
"properties": {
"carrier": {
"type": "string",
"enum": [
"angel_de",
"asendia",
"cargo_international",
"dhl",
"dhl_express",
"dpag",
"dpd",
"gls",
"go",
"hermes",
"iloxx",
"parcel_one",
"ups"
],
"description": "Carrier acronym (shipcloud_list_carriers shows the ones this account can use)."
},
"service": {
"type": "string",
"enum": [
"standard",
"one_day",
"one_day_early",
"returns",
"asendia_epaq_standard_economy",
"asendia_epaq_standard_priority",
"cargo_international_express",
"dhl_europaket",
"dhl_prio",
"dhl_warenpost",
"dpag_warenpost",
"dpag_warenpost_signature",
"dpag_warenpost_untracked",
"gls_express_0800",
"gls_express_0900",
"gls_express_1000",
"gls_express_1200",
"ups_express_1200"
],
"description": "Service (default standard). Which services a carrier offers: shipcloud_list_carriers."
},
"to": {
"anyOf": [
{
"type": "object",
"properties": {
"company": {
"description": "Company name.",
"type": "string",
"minLength": 1,
"maxLength": 100
},
"first_name": {
"type": "string",
"minLength": 1,
"maxLength": 50
},
"last_name": {
"description": "Last name. Give this or a company.",
"type": "string",
"minLength": 1,
"maxLength": 50
},
"care_of": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"street": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "Street name (may include the house number)."
},
"street_no": {
"description": "House number, when the carrier needs it separately.",
"type": "string",
"minLength": 1,
"maxLength": 20
},
"zip_code": {
"type": "string",
"minLength": 1,
"maxLength": 20
},
"city": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"state": {
"type": "string",
"minLength": 1,
"maxLength": 50
},
"country": {
"type": "string",
"pattern": "^[A-Z]{2}$",
"description": "Country, uppercase ISO 3166-1 alpha-2, e.g. DE."
},
"phone": {
"description": "Phone (mandatory for UPS express services and for international UPS shipments).",
"type": "string",
"minLength": 1,
"maxLength": 40
},
"email": {
"type": "string",
"maxLength": 200,
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
}
},
"required": [
"street",
"zip_code",
"city",
"country"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,100}$",
"description": "The id shipcloud returned."
}
},
"required": [
"id"
],
"additionalProperties": false
}
],
"description": "An address (street, zip_code, city, country are enough), or {id} of a saved address."
},
"from": {
"description": "Sender; omitted = the account's default sender address.",
"anyOf": [
{
"type": "object",
"properties": {
"company": {
"description": "Company name.",
"type": "string",
"minLength": 1,
"maxLength": 100
},
"first_name": {
"type": "string",
"minLength": 1,
"maxLength": 50
},
"last_name": {
"description": "Last name. Give this or a company.",
"type": "string",
"minLength": 1,
"maxLength": 50
},
"care_of": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"street": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "Street name (may include the house number)."
},
"street_no": {
"description": "House number, when the carrier needs it separately.",
"type": "string",
"minLength": 1,
"maxLength": 20
},
"zip_code": {
"type": "string",
"minLength": 1,
"maxLength": 20
},
"city": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"state": {
"type": "string",
"minLength": 1,
"maxLength": 50
},
"country": {
"type": "string",
"pattern": "^[A-Z]{2}$",
"description": "Country, uppercase ISO 3166-1 alpha-2, e.g. DE."
},
"phone": {
"description": "Phone (mandatory for UPS express services and for international UPS shipments).",
"type": "string",
"minLength": 1,
"maxLength": 40
},
"email": {
"type": "string",
"maxLength": 200,
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
}
},
"required": [
"street",
"zip_code",
"city",
"country"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,100}$",
"description": "The id shipcloud returned."
}
},
"required": [
"id"
],
"additionalProperties": false
}
]
},
"packages": {
"minItems": 1,
"maxItems": 10,
"type": "array",
"items": {
"type": "object",
"properties": {
"length": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 1000,
"description": "Length in cm."
},
"width": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 1000,
"description": "Width in cm."
},
"height": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 1000,
"description": "Height in cm."
},
"weight": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 1000,
"description": "Weight in kg."
}
},
"required": [
"length",
"width",
"height",
"weight"
],
"additionalProperties": false
}
}
},
"required": [
"carrier",
"service",
"to",
"packages"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡shipcloud_create_prepared_shipment(carrier, service, to, from, packages, ...)
WRITE: save a shipment in shipcloud WITHOUT buying a label (create_shipping_label=false). Nothing is charged and no carrier is contacted; a prepared shipment can be deleted any time. Returns the shipment id. To buy the label use shipcloud_create_shipment_with_label. POST /shipments.
入力スキーマ
{
"type": "object",
"properties": {
"carrier": {
"type": "string",
"enum": [
"angel_de",
"asendia",
"cargo_international",
"dhl",
"dhl_express",
"dpag",
"dpd",
"gls",
"go",
"hermes",
"iloxx",
"parcel_one",
"ups"
],
"description": "Carrier acronym (shipcloud_list_carriers shows the ones this account can use)."
},
"service": {
"type": "string",
"enum": [
"standard",
"one_day",
"one_day_early",
"returns",
"asendia_epaq_standard_economy",
"asendia_epaq_standard_priority",
"cargo_international_express",
"dhl_europaket",
"dhl_prio",
"dhl_warenpost",
"dpag_warenpost",
"dpag_warenpost_signature",
"dpag_warenpost_untracked",
"gls_express_0800",
"gls_express_0900",
"gls_express_1000",
"gls_express_1200",
"ups_express_1200"
],
"description": "Service (default standard). Which services a carrier offers: shipcloud_list_carriers."
},
"to": {
"type": "object",
"properties": {
"company": {
"description": "Company name.",
"type": "string",
"minLength": 1,
"maxLength": 100
},
"first_name": {
"type": "string",
"minLength": 1,
"maxLength": 50
},
"last_name": {
"description": "Last name. Give this or a company.",
"type": "string",
"minLength": 1,
"maxLength": 50
},
"care_of": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"street": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "Street name (may include the house number)."
},
"street_no": {
"description": "House number, when the carrier needs it separately.",
"type": "string",
"minLength": 1,
"maxLength": 20
},
"zip_code": {
"type": "string",
"minLength": 1,
"maxLength": 20
},
"city": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"state": {
"type": "string",
"minLength": 1,
"maxLength": 50
},
"country": {
"type": "string",
"pattern": "^[A-Z]{2}$",
"description": "Country, uppercase ISO 3166-1 alpha-2, e.g. DE."
},
"phone": {
"description": "Phone (mandatory for UPS express services and for international UPS shipments).",
"type": "string",
"minLength": 1,
"maxLength": 40
},
"email": {
"type": "string",
"maxLength": 200,
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
}
},
"required": [
"street",
"zip_code",
"city",
"country"
],
"additionalProperties": false,
"description": "Recipient full address (company or last_name needed). Read a saved address first to copy its fields."
},
"from": {
"description": "Sender full address. If omitted, shipcloud uses the default sender address of the account.",
"type": "object",
"properties": {
"company": {
"description": "Company name.",
"type": "string",
"minLength": 1,
"maxLength": 100
},
"first_name": {
"type": "string",
"minLength": 1,
"maxLength": 50
},
"last_name": {
"description": "Last name. Give this or a company.",
"type": "string",
"minLength": 1,
"maxLength": 50
},
"care_of": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"street": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "Street name (may include the house number)."
},
"street_no": {
"description": "House number, when the carrier needs it separately.",
"type": "string",
"minLength": 1,
"maxLength": 20
},
"zip_code": {
"type": "string",
"minLength": 1,
"maxLength": 20
},
"city": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"state": {
"type": "string",
"minLength": 1,
"maxLength": 50
},
"country": {
"type": "string",
"pattern": "^[A-Z]{2}$",
"description": "Country, uppercase ISO 3166-1 alpha-2, e.g. DE."
},
"phone": {
"description": "Phone (mandatory for UPS express services and for international UPS shipments).",
"type": "string",
"minLength": 1,
"maxLength": 40
},
"email": {
"type": "string",
"maxLength": 200,
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
}
},
"required": [
"street",
"zip_code",
"city",
"country"
],
"additionalProperties": false
},
"packages": {
"minItems": 1,
"maxItems": 10,
"type": "array",
"items": {
"type": "object",
"properties": {
"length": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 1000,
"description": "Length in cm."
},
"width": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 1000,
"description": "Width in cm."
},
"height": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 1000,
"description": "Height in cm."
},
"weight": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 1000,
"description": "Weight in kg."
},
"type": {
"description": "Package type (default parcel).",
"type": "string",
"enum": [
"books",
"bulk",
"letter",
"parcel",
"parcel_letter"
]
},
"description": {
"description": "Contents. Mandatory for UPS returns.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"declared_value": {
"description": "Books extra carrier insurance (extra carrier fees apply).",
"type": "object",
"properties": {
"amount": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 1000000
},
"currency": {
"type": "string",
"const": "EUR"
}
},
"required": [
"amount",
"currency"
],
"additionalProperties": false
}
},
"required": [
"length",
"width",
"height",
"weight"
],
"additionalProperties": false
},
"description": "The packages (one entry for a single parcel). Several packages: only UPS supports them."
},
"description": {
"description": "Contents. Mandatory for UPS international/non-standard and DHL Express. Shipments that need a customs declaration (outside the EU) are not supported here: create them in the shipcloud backoffice.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"notification_email": {
"description": "shipcloud emails this address on tracking updates.",
"type": "string",
"maxLength": 200,
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
},
"label_format": {
"description": "Label format, e.g. pdf_a6 or zpl2_4x6in_203dpi; carriers support different ones (shipcloud_list_carriers shows them per service).",
"type": "string",
"pattern": "^(pdf|zpl2)_[a-z0-9_]{1,40}$"
},
"reference_number": {
"description": "Your own reference (max 30 characters), searchable later.",
"type": "string",
"minLength": 1,
"maxLength": 30
}
},
"required": [
"carrier",
"to",
"packages"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴shipcloud_create_shipment_with_label(carrier, service, to, from, packages, ...)
WRITE, COSTS MONEY: create a shipment AND buy its shipping label at the carrier (create_shipping_label=true). With a LIVE key this charges the shipcloud account (price in EUR excl. VAT; get it first from shipcloud_get_shipment_quote) and creates a real label; with the sandbox key it is free and fake. A label can only be cancelled before the carrier's cut-off (about 17:00-20:00) with shipcloud_delete_shipment. The request is sent ONCE and never retried: if it times out or fails with a server error, the label may still exist, so check shipcloud_list_shipments with the same reference_number before trying again. An existing-label lookup and same-instance guard reduce duplicates but are not atomic or global: simultaneous requests across Worker instances can buy duplicate labels. Serialize purchases for each reference and check shipcloud after an uncertain result. Requires confirm=true after the user agreed to the purchase; give a unique reference_number. Shipments needing customs papers are not supported here. POST /shipments.
入力スキーマ
{
"type": "object",
"properties": {
"carrier": {
"type": "string",
"enum": [
"angel_de",
"asendia",
"cargo_international",
"dhl",
"dhl_express",
"dpag",
"dpd",
"gls",
"go",
"hermes",
"iloxx",
"parcel_one",
"ups"
],
"description": "Carrier acronym (shipcloud_list_carriers shows the ones this account can use)."
},
"service": {
"type": "string",
"enum": [
"standard",
"one_day",
"one_day_early",
"returns",
"asendia_epaq_standard_economy",
"asendia_epaq_standard_priority",
"cargo_international_express",
"dhl_europaket",
"dhl_prio",
"dhl_warenpost",
"dpag_warenpost",
"dpag_warenpost_signature",
"dpag_warenpost_untracked",
"gls_express_0800",
"gls_express_0900",
"gls_express_1000",
"gls_express_1200",
"ups_express_1200"
],
"description": "Service (default standard). Which services a carrier offers: shipcloud_list_carriers."
},
"to": {
"type": "object",
"properties": {
"company": {
"description": "Company name.",
"type": "string",
"minLength": 1,
"maxLength": 100
},
"first_name": {
"type": "string",
"minLength": 1,
"maxLength": 50
},
"last_name": {
"description": "Last name. Give this or a company.",
"type": "string",
"minLength": 1,
"maxLength": 50
},
"care_of": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"street": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "Street name (may include the house number)."
},
"street_no": {
"description": "House number, when the carrier needs it separately.",
"type": "string",
"minLength": 1,
"maxLength": 20
},
"zip_code": {
"type": "string",
"minLength": 1,
"maxLength": 20
},
"city": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"state": {
"type": "string",
"minLength": 1,
"maxLength": 50
},
"country": {
"type": "string",
"pattern": "^[A-Z]{2}$",
"description": "Country, uppercase ISO 3166-1 alpha-2, e.g. DE."
},
"phone": {
"description": "Phone (mandatory for UPS express services and for international UPS shipments).",
"type": "string",
"minLength": 1,
"maxLength": 40
},
"email": {
"type": "string",
"maxLength": 200,
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
}
},
"required": [
"street",
"zip_code",
"city",
"country"
],
"additionalProperties": false,
"description": "Recipient full address (company or last_name needed). Read a saved address first to copy its fields."
},
"from": {
"description": "Sender full address. If omitted, shipcloud uses the default sender address of the account.",
"type": "object",
"properties": {
"company": {
"description": "Company name.",
"type": "string",
"minLength": 1,
"maxLength": 100
},
"first_name": {
"type": "string",
"minLength": 1,
"maxLength": 50
},
"last_name": {
"description": "Last name. Give this or a company.",
"type": "string",
"minLength": 1,
"maxLength": 50
},
"care_of": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"street": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "Street name (may include the house number)."
},
"street_no": {
"description": "House number, when the carrier needs it separately.",
"type": "string",
"minLength": 1,
"maxLength": 20
},
"zip_code": {
"type": "string",
"minLength": 1,
"maxLength": 20
},
"city": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"state": {
"type": "string",
"minLength": 1,
"maxLength": 50
},
"country": {
"type": "string",
"pattern": "^[A-Z]{2}$",
"description": "Country, uppercase ISO 3166-1 alpha-2, e.g. DE."
},
"phone": {
"description": "Phone (mandatory for UPS express services and for international UPS shipments).",
"type": "string",
"minLength": 1,
"maxLength": 40
},
"email": {
"type": "string",
"maxLength": 200,
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
}
},
"required": [
"street",
"zip_code",
"city",
"country"
],
"additionalProperties": false
},
"packages": {
"minItems": 1,
"maxItems": 10,
"type": "array",
"items": {
"type": "object",
"properties": {
"length": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 1000,
"description": "Length in cm."
},
"width": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 1000,
"description": "Width in cm."
},
"height": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 1000,
"description": "Height in cm."
},
"weight": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 1000,
"description": "Weight in kg."
},
"type": {
"description": "Package type (default parcel).",
"type": "string",
"enum": [
"books",
"bulk",
"letter",
"parcel",
"parcel_letter"
]
},
"description": {
"description": "Contents. Mandatory for UPS returns.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"declared_value": {
"description": "Books extra carrier insurance (extra carrier fees apply).",
"type": "object",
"properties": {
"amount": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 1000000
},
"currency": {
"type": "string",
"const": "EUR"
}
},
"required": [
"amount",
"currency"
],
"additionalProperties": false
}
},
"required": [
"length",
"width",
"height",
"weight"
],
"additionalProperties": false
},
"description": "The packages (one entry for a single parcel). Several packages: only UPS supports them."
},
"description": {
"description": "Contents. Mandatory for UPS international/non-standard and DHL Express. Shipments that need a customs declaration (outside the EU) are not supported here: create them in the shipcloud backoffice.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"notification_email": {
"description": "shipcloud emails this address on tracking updates.",
"type": "string",
"maxLength": 200,
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
},
"label_format": {
"description": "Label format, e.g. pdf_a6 or zpl2_4x6in_203dpi; carriers support different ones (shipcloud_list_carriers shows them per service).",
"type": "string",
"pattern": "^(pdf|zpl2)_[a-z0-9_]{1,40}$"
},
"reference_number": {
"type": "string",
"minLength": 1,
"maxLength": 30,
"description": "Your own unique reference (max 30 characters). Required: it is how a possible duplicate is found after a timeout."
},
"confirm": {
"type": "boolean",
"const": true,
"description": "Must be exactly true. Set it ONLY after the user has explicitly agreed to buy this label and be charged for it. Ask first; do not assume."
}
},
"required": [
"carrier",
"to",
"packages",
"reference_number",
"confirm"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴shipcloud_delete_shipment(shipment_id, confirm)
WRITE, DESTRUCTIVE: delete a shipment. A prepared shipment (no label) can be deleted any time. For a shipment with a label, shipcloud cancels the label only before the carrier's cut-off (about 17:00-20:00); afterwards it fails. Cannot be undone. Requires confirm=true after the user agreed. DELETE /shipments/{id}.
入力スキーマ
{
"type": "object",
"properties": {
"shipment_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,100}$",
"description": "The id shipcloud returned."
},
"confirm": {
"type": "boolean",
"const": true,
"description": "Must be exactly true. Set it ONLY after the user has explicitly agreed to delete this shipment (and cancel its label). Ask first; do not assume."
}
},
"required": [
"shipment_id",
"confirm"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢shipcloud_list_trackers
List trackers: shipments created OUTSIDE shipcloud that shipcloud tracks by the carrier's tracking number (only for your own carrier contracts), with status and tracking events. GET /trackers.
入力スキーマ
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢shipcloud_get_tracker(tracker_id)
One tracker by id, with status and tracking events. GET /trackers/{id}.
入力スキーマ
{
"type": "object",
"properties": {
"tracker_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,100}$",
"description": "The id shipcloud returned."
}
},
"required": [
"tracker_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡shipcloud_create_tracker(carrier_tracking_no, carrier, notification_email)
WRITE: have shipcloud track a parcel that was NOT created with shipcloud, by the carrier's tracking number (only for your own carrier contracts; carriers dhl, dpd, gls, ups). Creates a tracker; no label, no shipping charge. POST /trackers.
入力スキーマ
{
"type": "object",
"properties": {
"carrier_tracking_no": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "The carrier's tracking number."
},
"carrier": {
"type": "string",
"enum": [
"dhl",
"dpd",
"gls",
"ups"
]
},
"notification_email": {
"type": "string",
"maxLength": 200,
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
}
},
"required": [
"carrier_tracking_no",
"carrier"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢shipcloud_list_pickup_requests
List carrier pickup requests with carrier, pickup time window, address and the shipments included. GET /pickup_requests.
入力スキーマ
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢shipcloud_get_pickup_request(pickup_request_id)
One pickup request by id. GET /pickup_requests/{id}.
入力スキーマ
{
"type": "object",
"properties": {
"pickup_request_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,100}$",
"description": "The id shipcloud returned."
}
},
"required": [
"pickup_request_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴shipcloud_create_pickup_request(carrier, earliest, latest, pickup_address, shipment_ids, ...)
WRITE: order a carrier (dpd, gls, hermes or ups) to pick up parcels at an address in a time window. A real request goes to the carrier and cannot be cancelled through this server; carriers may bill pickups. Without `shipment_ids` the carrier collects all shipments not yet picked up; return shipments cannot be picked up. Requires confirm=true after the user agreed. POST /pickup_requests.
入力スキーマ
{
"type": "object",
"properties": {
"carrier": {
"type": "string",
"enum": [
"dpd",
"gls",
"hermes",
"ups"
]
},
"earliest": {
"type": "string",
"description": "Earliest pickup, ISO 8601 with timezone."
},
"latest": {
"type": "string",
"description": "Latest pickup, ISO 8601 with timezone."
},
"pickup_address": {
"type": "object",
"properties": {
"company": {
"description": "Company name.",
"type": "string",
"minLength": 1,
"maxLength": 100
},
"first_name": {
"type": "string",
"minLength": 1,
"maxLength": 50
},
"last_name": {
"description": "Last name. Give this or a company.",
"type": "string",
"minLength": 1,
"maxLength": 50
},
"care_of": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"street": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "Street name (may include the house number)."
},
"street_no": {
"description": "House number, when the carrier needs it separately.",
"type": "string",
"minLength": 1,
"maxLength": 20
},
"zip_code": {
"type": "string",
"minLength": 1,
"maxLength": 20
},
"city": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"state": {
"type": "string",
"minLength": 1,
"maxLength": 50
},
"country": {
"type": "string",
"pattern": "^[A-Z]{2}$",
"description": "Country, uppercase ISO 3166-1 alpha-2, e.g. DE."
},
"phone": {
"description": "Phone (mandatory for UPS express services and for international UPS shipments).",
"type": "string",
"minLength": 1,
"maxLength": 40
},
"email": {
"type": "string",
"maxLength": 200,
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
}
},
"required": [
"street",
"zip_code",
"city",
"country"
],
"additionalProperties": false,
"description": "Where the carrier collects the parcels."
},
"shipment_ids": {
"description": "Only these shipments; omitted = all not yet picked up.",
"minItems": 1,
"maxItems": 100,
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,100}$",
"description": "The id shipcloud returned."
}
},
"confirm": {
"type": "boolean",
"const": true,
"description": "Must be exactly true. Set it ONLY after the user has explicitly agreed to order this carrier pickup. Ask first; do not assume."
}
},
"required": [
"carrier",
"earliest",
"latest",
"pickup_address",
"confirm"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢shipcloud_find_dropoff_locations(carriers, street, zip_code, city, state, ...)
Search a carrier's parcel shops, lockers and drop-off points near an address or coordinates (opening hours, distance). Give an address (street, zip_code, city, country) or latitude + longitude. GET /pickup_dropoff_locations.
入力スキーマ
{
"type": "object",
"properties": {
"carriers": {
"minItems": 1,
"maxItems": 5,
"type": "array",
"items": {
"type": "string",
"enum": [
"angel_de",
"asendia",
"cargo_international",
"dhl",
"dhl_express",
"dpag",
"dpd",
"gls",
"go",
"hermes",
"iloxx",
"parcel_one",
"ups"
],
"description": "Carrier acronym (shipcloud_list_carriers shows the ones this account can use)."
},
"description": "Carrier acronyms to search."
},
"street": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"zip_code": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"city": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"state": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"country": {
"description": "Uppercase ISO 3166-1 alpha-2 code.",
"type": "string",
"pattern": "^[A-Z]{2}$"
},
"latitude": {
"type": "number",
"minimum": -90,
"maximum": 90
},
"longitude": {
"type": "number",
"minimum": -180,
"maximum": 180
},
"radius": {
"description": "Search radius in meters (default 10000).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"limit": {
"description": "Max locations (default 10).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"required": [
"carriers"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢shipcloud_list_addresses(first_name, last_name, company, street, zip_code, ...)
List the address book (saved addresses with ids usable as `to` / `from`). Filter by any field. Paged. GET /addresses.
入力スキーマ
{
"type": "object",
"properties": {
"first_name": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"last_name": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"company": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"street": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"zip_code": {
"type": "string",
"minLength": 1,
"maxLength": 20
},
"city": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"country": {
"type": "string",
"pattern": "^[A-Z]{2}$"
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"per_page": {
"description": "Results per page, 1-100 (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢shipcloud_get_address(address_id)
One saved address by id. GET /addresses/{id}.
入力スキーマ
{
"type": "object",
"properties": {
"address_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,100}$",
"description": "The id shipcloud returned."
}
},
"required": [
"address_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡shipcloud_create_address(address)
WRITE: save an address in the shipcloud address book (no shipment, no cost). Returns its id. It cannot be removed through this server. POST /addresses.
入力スキーマ
{
"type": "object",
"properties": {
"address": {
"type": "object",
"properties": {
"company": {
"description": "Company name.",
"type": "string",
"minLength": 1,
"maxLength": 100
},
"first_name": {
"type": "string",
"minLength": 1,
"maxLength": 50
},
"last_name": {
"description": "Last name. Give this or a company.",
"type": "string",
"minLength": 1,
"maxLength": 50
},
"care_of": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"street": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "Street name (may include the house number)."
},
"street_no": {
"description": "House number, when the carrier needs it separately.",
"type": "string",
"minLength": 1,
"maxLength": 20
},
"zip_code": {
"type": "string",
"minLength": 1,
"maxLength": 20
},
"city": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"state": {
"type": "string",
"minLength": 1,
"maxLength": 50
},
"country": {
"type": "string",
"pattern": "^[A-Z]{2}$",
"description": "Country, uppercase ISO 3166-1 alpha-2, e.g. DE."
},
"phone": {
"description": "Phone (mandatory for UPS express services and for international UPS shipments).",
"type": "string",
"minLength": 1,
"maxLength": 40
},
"email": {
"type": "string",
"maxLength": 200,
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
}
},
"required": [
"street",
"zip_code",
"city",
"country"
],
"additionalProperties": false
}
},
"required": [
"address"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢shipcloud_list_orders
List orders sent to shipcloud (order data with line items, used by the Return Portal and linked to shipments by order_id). GET /orders.
入力スキーマ
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢shipcloud_get_order(order_id)
One order by id, with delivery address and line items. GET /orders/{id}.
入力スキーマ
{
"type": "object",
"properties": {
"order_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,100}$",
"description": "The id shipcloud returned."
}
},
"required": [
"order_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢shipcloud_list_webhooks
List the webhooks configured in the account: target URL, subscribed event types, deactivated flag. Credentials of a webhook are never shown. GET /webhooks.
入力スキーマ
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}コミュニティ
エビデンス