Packrift MCP

Find, size, price and order packaging: boxes, mailers, poly bags, tape. Live price and stock.

Sollte ich dies verwenden

Qualität und Sicherheit

A
Qualität der Beschreibung
99%
Vollständigkeit des Schemas
89%
Qualität der Benennung
93%
Risiko der Vergiftung
80%
Übereinstimmung der Berechtigungen
100%
Einhaltung des Protokolls
100%

Befunde (3)

  • HIGHTool poisoning patterns detected
  • MEDIUMTool 'get_shipping_estimate' description contains placeholder textin get_shipping_estimate
  • INFOTool description contains placeholder or incomplete textin get_shipping_estimate

Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.

Kontextkosten

~3,382Tokens (Tool-Definitionen)
~1.8 KBTypische Antwortgröße
Erhebliche Auswirkung auf die Aufmerksamkeit (2.64% von 128k Kontext)

Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.

Installieren

Installation mit einem Klick

Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:

{
  "mcpServers": {
    "packrift-mcp": {
      "url": "https://mcp.packrift.com/mcp"
    }
  }
}

Remote-Endpunkte

https://mcp.packrift.com/mcpstreamable-http

Was es kann

Tool-Inventar

Tools (15)

🟢 Nur lesen🟡 Schreiben🔴 Löschen⚪ Unbekannt
🟢search_products(query, limit)

Search Packrift by category, SKU, or the exact dimensions of the packaging the buyer wants. Explicit dimension tuples and pack counts must match; different sizes are not exact substitutes. Returns live price, stock and product URL. When the buyer describes an item's dimensions and needs packaging that fits around it, use find_packaging_for_item instead.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Free-text search; matches title, vendor, type, tags."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50,
      "default": 10
    }
  },
  "required": [
    "query"
  ]
}
🟢get_product(handle)

Use after find_packaging_for_item or search_products to pull full detail for a handle: all variants, SKUs, dimensions, weight, stock. Input: handle. Call before building a cart to map qty to the right variant.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "handle": {
      "type": "string"
    }
  },
  "required": [
    "handle"
  ]
}
🟢get_pricing(variant_ids, quantity, journey_id, result_set_id, selected_sku, ...)

Use to confirm live base catalog unit price and merchandise line total before cart handoff. Cart discounts, shipping and tax are not evaluated; the buyer's Shopify cart and checkout determine the final payable amount. Required argument: variant_ids as an array of numeric Shopify variant IDs encoded as strings, for example ["53475949216112"]. Optional quantity defaults to 1. Never send variant_ids as numbers. Never cached.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "variant_ids": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "minItems": 1,
      "description": "Numeric Shopify variant IDs as strings, not numbers. Example: [\"53475949216112\"]."
    },
    "quantity": {
      "type": "integer",
      "minimum": 1,
      "default": 1,
      "description": "Buyer-selected quantity for line total calculation."
    },
    "journey_id": {
      "type": "string"
    },
    "result_set_id": {
      "type": "string"
    },
    "selected_sku": {
      "type": "string"
    },
    "selected_handle": {
      "type": "string"
    },
    "match_type": {
      "type": "string"
    }
  },
  "required": [
    "variant_ids"
  ]
}
🟢check_inventory(variant_ids, journey_id, result_set_id, selected_sku, selected_handle, ...)

Use to confirm stock before recommending a SKU or building a cart. Required argument: variant_ids as an array of numeric Shopify variant IDs encoded as strings, for example ["53475949216112"]. Never send variant_ids as numbers. Live, never cached.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "variant_ids": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "minItems": 1,
      "description": "Numeric Shopify variant IDs as strings, not numbers. Example: [\"53475949216112\"]."
    },
    "journey_id": {
      "type": "string"
    },
    "result_set_id": {
      "type": "string"
    },
    "selected_sku": {
      "type": "string"
    },
    "selected_handle": {
      "type": "string"
    },
    "match_type": {
      "type": "string"
    }
  },
  "required": [
    "variant_ids"
  ]
}
🟢find_packaging_for_item(item_length_in, item_width_in, item_depth_in, item_weight_lb, use_case)

Use when the buyer has item dimensions and needs a fitting box or mailer. Required arguments are item_length_in, item_width_in, item_depth_in, item_weight_lb, and use_case. Canonical use_case values are mailer|box|fragile|apparel|ecommerce; free text such as 'shipping ceramic mugs' is accepted and mapped to the closest canonical context. Returns up to 5 curated SKUs ranked by fit with price, stock, URL, and cart-continuity fields.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "item_length_in": {
      "type": "number",
      "minimum": 0.1,
      "description": "Item length in inches."
    },
    "item_width_in": {
      "type": "number",
      "minimum": 0.1,
      "description": "Item width in inches."
    },
    "item_depth_in": {
      "type": "number",
      "minimum": 0.1,
      "description": "Item depth/height in inches."
    },
    "item_weight_lb": {
      "type": "number",
      "minimum": 0,
      "description": "Packed item weight in pounds; use 0 when unknown."
    },
    "use_case": {
      "type": "string",
      "description": "Packaging context that guides fit ranking. Canonical values: mailer, box, fragile, apparel, ecommerce. Free text (e.g. 'shipping ceramic mugs') is accepted and mapped to the closest canonical context."
    }
  },
  "required": [
    "item_length_in",
    "item_width_in",
    "item_depth_in",
    "item_weight_lb",
    "use_case"
  ]
}
🟢get_shipping_estimate(destination_postal_code, country, destination_address, items, journey_id, ...)

Use when the buyer asks shipping cost for selected catalog variants. Provide destination_address with address1, city and province_code for an estimate using the supplied address; otherwise the estimate uses postal-code placeholders and is approximate. Addresses are not validated. Cart shipping discounts and final tax are not evaluated; Shopify cart and checkout are authoritative. Required arguments: destination_postal_code, country (US|CA), and items with variant_id as a numeric Shopify variant ID string plus qty, for example {"variant_id":"53475949216112","qty":1}. Never send variant_id as a number.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "destination_postal_code": {
      "type": "string"
    },
    "country": {
      "type": "string",
      "enum": [
        "US",
        "CA"
      ]
    },
    "destination_address": {
      "type": "object",
      "description": "Optional address details used with destination_postal_code and country. Supply all three fields or omit this object. Values are passed through, not address-validated.",
      "properties": {
        "address1": {
          "type": "string",
          "minLength": 1
        },
        "city": {
          "type": "string",
          "minLength": 1
        },
        "province_code": {
          "type": "string",
          "minLength": 1,
          "description": "State or province code, for example WI or ON."
        }
      },
      "required": [
        "address1",
        "city",
        "province_code"
      ],
      "additionalProperties": false
    },
    "items": {
      "type": "array",
      "minItems": 1,
      "items": {
        "type": "object",
        "properties": {
          "variant_id": {
            "type": "string",
            "description": "Numeric Shopify variant ID as a string, not a number. Example: \"53475949216112\"."
          },
          "qty": {
            "type": "integer",
            "minimum": 1,
            "description": "Quantity for this line item. The alias key quantity is also accepted."
          }
        },
        "required": [
          "variant_id",
          "qty"
        ]
      }
    },
    "journey_id": {
      "type": "string"
    },
    "result_set_id": {
      "type": "string"
    },
    "selected_sku": {
      "type": "string"
    },
    "selected_handle": {
      "type": "string"
    },
    "match_type": {
      "type": "string"
    }
  },
  "required": [
    "destination_postal_code",
    "country",
    "items"
  ]
}
🟢get_cart_handoff_candidates(limit, family, sku)

Returns curated Packrift SKUs that are ready for cart handoff, including create_cart_url arguments, SKU records, product/reorder/quote links, and the required live-confirmation sequence.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50,
      "default": 10
    },
    "family": {
      "type": "string",
      "enum": [
        "boxes",
        "mailers",
        "labels",
        "tape",
        "poly_bags",
        "stretch_film",
        "strapping",
        "tags",
        "void_fill",
        "packing_list_envelopes"
      ],
      "description": "Optional product family filter."
    },
    "sku": {
      "type": "string",
      "description": "Optional exact Packrift SKU filter."
    }
  }
}
🟢create_cart_url(sku, quantity, items, discount_code, source_context, ...)

Build the checkout handoff URL once the buyer has confirmed an exact product, quantity, live price, and stock. Preferred input is sku plus quantity; use items only when you already hold variant IDs as strings. Returns a tracked packrift.com cart URL plus a Shopify cart permalink; it never places an order.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "sku": {
      "type": "string",
      "description": "Shortcut for exact Packrift SKUs such as 1066, MFL1295, or LL251WR. When provided without items, the approved variant is resolved automatically."
    },
    "quantity": {
      "type": "integer",
      "minimum": 1,
      "default": 1,
      "description": "Buyer-confirmed quantity to use with sku shortcut. Ignored when items is provided."
    },
    "items": {
      "type": "array",
      "description": "Advanced path for agents that already have approved variant IDs. Most buyers should use sku plus quantity instead.",
      "minItems": 1,
      "items": {
        "type": "object",
        "properties": {
          "variant_id": {
            "type": "string",
            "description": "Numeric Shopify variant ID as a string, not a number. Example: \"53475949216112\"."
          },
          "qty": {
            "type": "integer",
            "minimum": 1,
            "description": "Buyer-confirmed quantity for this line item. The alias key quantity is also accepted."
          }
        },
        "required": [
          "variant_id",
          "qty"
        ]
      }
    },
    "discount_code": {
      "type": "string",
      "description": "Optional discount code to apply to the cart."
    },
    "source_context": {
      "type": "string",
      "description": "Optional short context label for the handoff, such as exact_match, reorder, or quote_followup."
    },
    "journey_id": {
      "type": "string",
      "description": "Optional continuity ID echoed from an earlier search or pricing result in this conversation."
    },
    "result_set_id": {
      "type": "string",
      "description": "Optional continuity ID echoed from the result set the buyer chose from."
    },
    "selected_sku": {
      "type": "string",
      "description": "Buyer-confirmed SKU. When provided, it must resolve to the same catalog item as the cart variant."
    },
    "selected_handle": {
      "type": "string",
      "description": "Buyer-confirmed product handle. When provided, it must resolve to the same catalog item as the cart variant."
    },
    "match_type": {
      "type": "string",
      "description": "Optional continuity label describing how the product was matched, echoed from earlier results."
    }
  },
  "anyOf": [
    {
      "required": [
        "items"
      ]
    },
    {
      "required": [
        "sku"
      ]
    }
  ]
}
🟢prepare_purchase_handoff(sku, quantity, buyer_confirmed, source_context, journey_id, ...)

Two-step exact-SKU purchase prep. Call first with sku, quantity, and buyer_confirmed=false to confirm the product, live price, and live stock in one call. After the buyer approves, call again with buyer_confirmed=true to receive the tracked checkout handoff URL. It never places an order.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "sku": {
      "type": "string",
      "description": "Exact Packrift SKU such as 1066, MFL1295, or LL251WR."
    },
    "quantity": {
      "type": "integer",
      "minimum": 1,
      "default": 1,
      "description": "Buyer-selected quantity. Defaults to 1."
    },
    "buyer_confirmed": {
      "type": "boolean",
      "default": false,
      "description": "Set true only after the buyer confirms the exact SKU and quantity. Without this, no cart URL is created."
    },
    "source_context": {
      "type": "string",
      "description": "Optional short context label for the handoff, such as exact_sku_reorder or quote_followup."
    },
    "journey_id": {
      "type": "string",
      "description": "Optional continuity ID echoed from an earlier search or pricing result in this conversation."
    },
    "result_set_id": {
      "type": "string",
      "description": "Optional continuity ID echoed from the result set the buyer chose from."
    }
  },
  "required": [
    "sku"
  ]
}
🟢compare_alternatives(requested_spec, family, competitor_reference, limit)

Exploration tool for buyers comparing a packaging spec, competitor-style item, or catalog-number request against Packrift's curated catalog. Returns ranked Packrift candidates plus a plain-language comparison summary.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "requested_spec": {
      "type": "string",
      "description": "Packaging request, competitor-style spec, or exact dimensions/material/count to compare."
    },
    "family": {
      "type": "string",
      "enum": [
        "boxes",
        "mailers",
        "labels",
        "tape",
        "poly_bags",
        "stretch_film",
        "strapping",
        "tags",
        "void_fill",
        "packing_list_envelopes"
      ]
    },
    "competitor_reference": {
      "type": "string",
      "description": "Optional competitor or source name, used only as context; Packrift does not claim live competitor price or inventory."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 8,
      "default": 5
    }
  },
  "required": [
    "requested_spec"
  ]
}
🟢pack_calculator(item_length_in, item_width_in, item_depth_in, item_weight_lb, padding_in, ...)

Exploration tool for item dimensions and weight. Calculates required inside dimensions, ranks Packrift box/mailer candidates, and gives void-fill guidance before live price/inventory confirmation.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "item_length_in": {
      "type": "number",
      "minimum": 0.1
    },
    "item_width_in": {
      "type": "number",
      "minimum": 0.1
    },
    "item_depth_in": {
      "type": "number",
      "minimum": 0.1
    },
    "item_weight_lb": {
      "type": "number",
      "minimum": 0,
      "default": 0
    },
    "padding_in": {
      "type": "number",
      "minimum": 0,
      "maximum": 6,
      "default": 0.5
    },
    "use_case": {
      "type": "string",
      "enum": [
        "auto",
        "box",
        "mailer",
        "fragile",
        "apparel",
        "ecommerce"
      ],
      "default": "auto"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 8,
      "default": 5
    }
  },
  "required": [
    "item_length_in",
    "item_width_in",
    "item_depth_in"
  ]
}
🟢inventory_status(variant_ids, sku, handle, quantity)

Live inventory exploration for one or more catalog variants. Returns total quantity, available-for-sale state, warehouse-level quantities where available, and a plain-language fulfillment summary.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "variant_ids": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "minItems": 1
    },
    "sku": {
      "type": "string",
      "description": "Packrift SKU such as 1066."
    },
    "handle": {
      "type": "string",
      "description": "Packrift product handle."
    },
    "quantity": {
      "type": "integer",
      "minimum": 1,
      "default": 1
    }
  }
}
🟢get_reorder_link(sku, handle, source_context)

Return the reorder URL, product URL, and a copyable procurement spec for one catalog SKU or handle. Use for repeat-buy and procurement handoff workflows.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "sku": {
      "type": "string",
      "description": "Packrift SKU such as 1066, MFL1295, or LL251WR."
    },
    "handle": {
      "type": "string",
      "description": "Packrift product handle if SKU is unknown."
    },
    "source_context": {
      "type": "string",
      "description": "Optional short context label, such as reorder or procurement."
    }
  }
}
🟢get_bulk_quote_link(requested_spec, sku, family, quantity, reason)

Return a quote-request URL for an exact packaging spec or SKU. Use when no exact match exists or the buyer needs bulk or procurement review.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "requested_spec": {
      "type": "string",
      "description": "Exact unavailable or bulk quote packaging spec."
    },
    "sku": {
      "type": "string",
      "description": "Optional Packrift SKU to prefill if the quote relates to a known product."
    },
    "family": {
      "type": "string",
      "description": "Optional product family such as boxes, labels, mailers, tape, or poly_bags."
    },
    "quantity": {
      "type": "string",
      "description": "Optional buyer quantity. Numbers are accepted and coerced to string."
    },
    "reason": {
      "type": "string",
      "description": "Optional reason for quote handoff."
    }
  },
  "required": [
    "requested_spec"
  ]
}
🟢explain_no_exact_match(requested_spec, family, missing_or_mismatched_fields, reason)

Explain why a nearby product should not be presented as an exact match for the buyer's spec, then return safe next actions and a quote-request URL.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "requested_spec": {
      "type": "string",
      "description": "The buyer's exact requested packaging spec."
    },
    "family": {
      "type": "string",
      "description": "Optional product family."
    },
    "missing_or_mismatched_fields": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Required fields that were unavailable or different, such as length, material, color, or pack_count."
    },
    "reason": {
      "type": "string",
      "description": "Optional short explanation from the caller."
    }
  },
  "required": [
    "requested_spec"
  ]
}

Community

Diesen Server bewerten

Nachweis

Aktuelle Beobachtungen

verifiziertVersion nicht aufgezeichnet15 Tools
verifiziertVersion nicht aufgezeichnet15 Tools