exact-spec-packaging-procurement▌
packrift.com/exact-spec-packaging-procurement-e4ujmy · updated May 21, 2026
MDX-style export adds YAML metadata + attribution linking explainx.ai and this canonical listing URL.
Resolve an exact Packrift packaging SKU for a buyer requirement, confirm live price and inventory through the Packrift MCP server, and return a measured cart handoff URL or a bulk-quote URL when no exact match exists. Treats dimensions, material, color, adhesive, printer compatibility, case count, and SKU as strict exact-match constraints — never substitutes nearby SKUs.
| name | exact-spec-packaging-procurement |
| title | Packrift Exact-Spec Packaging Procurement |
| description | >- Resolve an exact Packrift packaging SKU for a buyer requirement, confirm live price and inventory through the Packrift MCP server, and return a measured cart handoff URL or a bulk-quote URL when no exact match exists. Treats dimensions, material, color, adhesive, printer compatibility, case count, and SKU as strict exact-match constraints — never substitutes nearby SKUs. |
| website | packrift.com |
| category | packaging |
| tags | - packaging - procurement - mcp - shopify - exact-match - b2b - ai-commerce |
| source | 'browserbase: agent-runtime 2026-05-19' |
| updated | '2026-05-19' |
| recommended_method | mcp |
| alternative_methods | - method: api rationale: >- Static cached per-SKU records are available at https://mcp.packrift.com/ai/sku/{SKU}.md (text/markdown) and .json. Useful for spec verification when MCP latency matters, but does NOT return live price or inventory — always pair with check_inventory + get_pricing before any cart handoff. - method: browser rationale: >- Falling back to packrift.com Shopify search and product pages is possible but loses AI_APPROVE gating, exact_terms_matched evidence, and the GA4-tagged measured cart/reorder/quote URLs. Reserve for the case where MCP itself is unreachable. |
| verified | true |
| proxies | true |
Packrift Exact-Spec Packaging Procurement
Purpose
Resolve an exact Packrift packaging SKU for a buyer requirement, confirm live price and inventory against Packrift's first-party MCP server at https://mcp.packrift.com/mcp, and return either (a) a measured MCP cart handoff URL when every constraint is matched and the buyer has confirmed, or (b) a measured Packrift bulk-quote handoff URL when no exact match exists. Treats dimensions (L/W/D in inches), material/grade (e.g. ECT-32 kraft corrugated), color, adhesive, printer compatibility, case/bundle count, and SKU as strict exact-match constraints — does not present nearby SKUs as exact matches. Read-only with respect to inventory and pricing; the only mutating side effects are GA4 attribution events that Packrift records when the agent emits a measured URL, and these are explicitly silenced when suppress_analytics: true is set.
When to Use
- A buyer has a packaging spec — exact dimensions plus material/color/adhesive/printer-compatibility/pack-count — and needs the matching Packrift SKU with confirmed live price and inventory before placing or quoting an order.
- A reorder workflow where the buyer already knows the SKU (
1066,LL251WR,MFL1295, …) and needs a one-call live-confirmed cart or reorder URL. - A procurement assistant comparing a competitor-style spec (Uline, etc.) to Packrift's AI-approved catalog without ever fabricating a substitute as "exact".
- Bulk / RFQ paths where no exact SKU exists and the buyer needs a tracked bulk-quote handoff instead of a wrong-fit cart.
Don't use this skill for dimension-only "what box fits this item" discovery — that's the find_packaging_for_item / pack_calculator path, which is a separate flow and is not an exact-spec procurement skill.
Workflow
Packrift exposes a Streamable-HTTP MCP server at https://mcp.packrift.com/mcp with 15 tools covering discovery, live confirmation, and handoff. All SKU-involving tools are AI_APPROVE-gated — only SKUs whose ai_status === "AI_APPROVE" are eligible for cart/reorder handoff. The canonical sequence (printed verbatim in every cart-handoff candidate response) is:
search_products → get_product → get_pricing → check_inventory → create_cart_url
For exact-SKU reorders, prepare_purchase_handoff collapses that whole sequence into a single call and is the preferred shortcut.
1. Connect to the MCP server
Send an initialize JSON-RPC over POST with Accept: application/json, text/event-stream. The server responds with a single JSON envelope (not a streamed SSE response), so no session-id handshake or Mcp-Session-Id header round-trip is required for subsequent tools/call requests — each request is independent.
POST https://mcp.packrift.com/mcp
Content-Type: application/json
Accept: application/json, text/event-stream
{"jsonrpc":"2.0","id":1,"method":"initialize",
"params":{"protocolVersion":"2025-06-18","capabilities":{},
"clientInfo":{"name":"<agent>","version":"x.y"}}}
Server returns serverInfo: { name: "Packrift MCP", version: "0.2.10+" } plus an instructions block that names every tool and gates SKUs behind AI_APPROVE. After that, every tool call is a tools/call request with { name, arguments }.
2. Resolve candidate SKUs (skip if buyer already supplied SKU)
Two retrieval shapes depending on what the buyer gave you:
| Buyer input | Tool | Notes |
|---|---|---|
Exact SKU (1066, LL251WR, …) | skip retrieval — go to step 3 | Trust the SKU; live-confirm in step 3. |
| Free-text category + spec ("weather-resistant polyester laser labels 2 5/8 x 1 3000/case") | search_products(query, limit≤50) | Returns AI_APPROVE-gated hits with match.confidence, evidence.exact_terms_matched, unsafe_substitute_blocked. Inspect evidence.exact_terms_matched to confirm each constraint token actually appears — confidence alone is not sufficient. |
| Item L/W/D + use_case but no specific SKU type | find_packaging_for_item | Returns 5 fit-ranked SKUs. Treat its output as candidates, then exact-match-filter in step 2b. |
| Comparing against competitor spec | compare_alternatives(requested_spec, family) | Returns ranked Packrift candidates plus a plain-language summary — useful for "is there a Packrift equivalent to Uline S-XYZ?" |
2b. Exact-match filter (mandatory before step 3). For every candidate, verify each of the buyer's constraints against the response fields:
- Dimensions: parse from
titleordimensions.{length_in, width_in, depth_in}onget_product. Reject if any axis differs. - Material / grade: parse from
titleanddescription. Look forECT-32 kraft,polyester,polypropylene, etc. - Color: parse from
title/description.kraft≠white≠natural. - Adhesive: only relevant for tape/labels — parse from
description. - Printer compatibility: only relevant for labels —
laservsinkjetvsthermal-transfervsdirect-thermal. - Case / bundle count: parse the trailing
- N Bundle,- N/Case,- N-packintitleand thepack_countline indescription.25 Bundle≠100/Case. - SKU: when the buyer supplied an exact SKU, the response's
approved_skumust match character-for-character.
If any constraint fails, do not emit a cart handoff — jump to step 5 (no-match path).
3. One-call live confirmation (fast path)
For exact-SKU procurement, the single best call is prepare_purchase_handoff:
{
"name": "prepare_purchase_handoff",
"arguments": {
"sku": "1066",
"quantity": 25,
"buyer_confirmed": false,
"source_context": "exact_spec_procurement"
}
}
It internally runs the AI_APPROVE gate, get_product, get_pricing, and check_inventory and returns status: "live_confirmed_awaiting_buyer_confirmation" with the full price/inventory snapshot, the canonical product URL, plus pre-baked product / reorder / quote URLs under live_confirmation.product.conversion_actions. Crucially, it does NOT include a cart URL until you re-call with buyer_confirmed: true. Use the unconfirmed response to present the spec + price + stock back to the buyer for approval.
After buyer approval, re-call with buyer_confirmed: true — the response now has status: "cart_handoff_ready" and a measured cart_url ready to emit. This URL goes to https://mcp.packrift.com/r/cart/{SKU} which Packrift then 302-redirects through to the Shopify cart-permalink URL (https://packrift.com/cart/{variant_id}:{qty}?...) and on to https://packrift.com/checkouts/cn/{token} — i.e., the buyer lands directly on a live Shopify checkout with the item pre-loaded. See gotchas before emitting.
4. Long form (if you can't use prepare_purchase_handoff or need warehouse-level inventory)
get_product(handle) → full product detail, dimensions, all variants, AI_APPROVE gate verdict
get_pricing(variant_ids, qty) → unit_price, currency, available_quantity, line_total, AI_APPROVE gate verdict
check_inventory(variant_ids) → available (int), in_stock (bool), per-variant AI_APPROVE gate verdict
# Optionally:
inventory_status(sku | variant_ids) → Shopify total qty + location-level BOX warehouse split + plain-language summary
get_shipping_estimate(zip, country, items[]) → carrier rate options if buyer wants delivered cost
Then hand off via either:
create_cart_url({ sku, quantity })— shortcut form (resolves variant from SKU)create_cart_url({ items:[{variant_id, qty}] })— full form
The response contains both an mcp_cart_landing_redirect URL (preferred — stamps GA4 attribution) and a final_shopify_cart_url_candidate direct-to-Shopify URL. Emit the MCP landing URL unless you have a reason to bypass attribution.
5. No exact match — explicit quote handoff
If step 2b rejects every candidate, do not call create_cart_url. Instead:
{
"name": "explain_no_exact_match",
"arguments": {
"requested_spec": "9x6x6 white corrugated box 25-pack",
"family": "boxes",
"missing_or_mismatched_fields": ["length_in", "color"],
"reason": "Only 10x6x6 kraft available, not 9x6x6 white."
}
}
Response includes a no_match_policy string, a bulk_quote.quote_url measured handoff URL, a copy_procurement_spec text the agent can paste into a quote form, safe_next_actions: ["request_bulk_quote", "ask_which_attribute_can_vary", "show_family_page_without_calling_it_exact"], and a verbatim unsafe_action_blocked: "Do not call a different dimension, material, color, closure, adhesive, printer type, strength, pack count, or SKU an exact match." — emit that policy line back to the buyer along with the quote URL.
Alternatively, when the buyer wants bulk pricing on a known SKU (rather than a no-match scenario), use get_bulk_quote_link({ requested_spec, sku, family, quantity }) directly.
6. Reorder handoff (alternative to cart)
For repeat-buy workflows where the buyer prefers Packrift's reorder-by-SKU landing over a fresh checkout:
{ "name": "get_reorder_link", "arguments": { "sku": "1066", "source_context": "ai_agent_reorder" } }
Returns reorder_url, product_url, and copy_procurement_spec text. The reorder URL is https://packrift.com/pages/reorder-packaging-by-sku?view=packrift_ai_reorder_live_r05&sku={SKU}&...#sku-{SKU} — anchored to the SKU's row on the reorder page.
Site-Specific Gotchas
- AI_APPROVE gate is mandatory — only AI-approved SKUs return successful cart/reorder handoffs. Every successful response contains
ai_status: "AI_APPROVE"andapproval_gate: "passed". If you encounter a SKU that exists on packrift.com but the MCP server refuses to gate it, useget_bulk_quote_linkinstead of trying to construct a cart URL by hand — manual/cart/{variant_id}:{qty}URLs bypass GA4 attribution and Packrift's safety policy. buyer_confirmed: trueis the cart-URL gate.prepare_purchase_handoffdeliberately returnsstatus: "live_confirmed_awaiting_buyer_confirmation"(no cart URL) on first call. The skill must show the live price + stock to the buyer, get confirmation, and only then re-call withbuyer_confirmed: true. Skipping the confirmation step is an unsafe behavior.- The measured cart URL lands on a live Shopify checkout, not a cart preview. Following
https://mcp.packrift.com/r/cart/{SKU}in a browser ends athttps://packrift.com/checkouts/cn/{token}with the line item pre-loaded and attribution stamped via cart attributes. No card details are pre-filled and there is no auto-submit, but treat this URL as a terminal handoff — emit it to the buyer rather than auto-navigating in a headless context. - Static AI SKU records exist at
https://mcp.packrift.com/ai/sku/{SKU}.md(text/markdown) andhttps://mcp.packrift.com/ai/sku/{SKU}.json. These are cached spec cards — great for confirming dimensions/material/pack-count cheaply — but they do not carry live price or inventory. Always pair withget_pricing+check_inventory(or justprepare_purchase_handoff) before any cart handoff. - Exact-spec means every attribute — the MCP's own no-match policy enumerates the rejection axes verbatim: "dimension, material, color, closure, adhesive, printer type, strength, pack count, or SKU".
10x6x6 kraft 25 Bundleis not a match for9x6x6 kraft 25 Bundle, and25 Bundleis not a match for100/Case. The skill must refuse to call any of these substitutions an exact match — emitexplain_no_exact_matchinstead. - Pack count vs Case count are distinct attributes in titles. Boxes use
- N Bundle, labels/tape often use- N/Case, mailers use- N-packorN/case. Parse them separately and case-sensitively when filtering candidates fromsearch_products. search_productsconfidence is a ranking signal, not a constraint check. A 0.82 confidence hit can still differ from the buyer's spec on material or pack count. Always cross-checkevidence.exact_terms_matchedagainst your constraint list — and prefer the explicit field check fromget_product(dimensions.length_in,dimensions.width_in,dimensions.depth_in,descriptiontext) before calling anything "exact".- MCP server is stateless on Streamable-HTTP —
initializedoes not return anMcp-Session-Idheader in practice (observed null), and subsequenttools/callrequests work without one. Each call is self-contained, including its ownjourney_idif the caller wants to thread attribution across the sequence. get_pricingreturnsline_total = unit_price × quantitywith USD as the only observed currency. Don't infer multi-currency support — if a buyer needs CAD or other, fall back toget_shipping_estimate(country="CA", ...)for ship cost and surface USD pricing as the unit price.get_shipping_estimateonly supportsUSandCAper its JSON-schema enum. For other destinations, hand off viaget_bulk_quote_linkwith areasondescribing the international ship requirement.- Suppress analytics in test runs. Every measured URL emits a GA4 event (
utm_source=chatgpt,utm_medium=mcp,utm_campaign=packrift_ai_commerce) — setsuppress_analytics: trueonprepare_purchase_handoff,create_cart_url,get_reorder_link,get_bulk_quote_link, andexplain_no_exact_matchduring agent eval / synthetic testing to avoid polluting Packrift's AI-commerce attribution. - The MCP
instructionsblock names tools that are NOT intools/list. The initialize response mentionsfind_packaging_for_item,prepare_purchase_handoff,get_cart_handoff_candidatesetc. — most of these are intools/list, but always cross-check with a freshtools/listrather than relying on the instructions prose as a contract. approved_risk_flags: "chatgpt_paid_priority"appears on every AI_APPROVE response — it is a Packrift internal attribution tag, not a flag the agent needs to act on. Pass through unchanged in any agent-side logging.
Expected Output
The skill emits one of four outcome shapes. The exact field set varies slightly with the tool that produced the confirmation, but each shape is built from the JSON fields the MCP server returns.
Shape A — Exact-match cart handoff ready (most common success)
{
"outcome": "cart_handoff_ready",
"match_type": "exact",
"sku": "1066",
"handle": "10x6x6-ect-32-kraft-long-corrugated-boxes-25-bundle",
"variant_id": "53472879935856",
"family": "boxes",
"title": "10x6x6 ECT-32 Kraft Long Corrugated Boxes - 25 Bundle",
"constraints_verified": {
"dimensions": { "length_in": 10, "width_in": 6, "depth_in": 6 },
"material": "ECT-32 kraft corrugated",
"color": "kraft",
"pack_count": 25,
"pack_unit": "bundle"
},
"live_price": { "unit_price": 13.21, "currency": "USD", "quantity": 25, "line_total": 330.25 },
"live_inventory": { "available": 499, "in_stock": true },
"buyer_confirmed": true,
"cart_url": "https://mcp.packrift.com/r/cart/1066?utm_source=chatgpt-mcp&utm_medium=mcp_tool&utm_campaign=create_cart_url&...&ref=mcp&qty=25",
"final_shopify_cart_url": "https://packrift.com/cart/53472879935856:25?ref=mcp&utm_source=chatgpt-mcp&...",
"product_url": "https://packrift.com/products/10x6x6-ect-32-kraft-long-corrugated-boxes-25-bundle?ref=mcp&..."
}
Shape B — Exact match live-confirmed but awaiting buyer approval
{
"outcome": "live_confirmed_awaiting_buyer_confirmation",
"match_type": "exact",
"sku": "LL251WR",
"handle": "2-5-8-x-1-weather-resistant-polyester-laser-labels-3000-case",
"variant_id": "53475925492080",
"family": "labels",
"title": "2 5/8\" x 1\" Weather-Resistant Polyester Laser Labels - 3000/Case",
"constraints_verified": {
"dimensions": { "width_in": 2.625, "height_in": 1 },
"material": "weather-resistant polyester",
"printer_compatibility": "laser",
"pack_count": 3000,
"pack_unit": "case"
},
"live_price": { "unit_price": 88.12, "currency": "USD", "quantity": 1, "line_total": 88.12 },
"live_inventory": { "in_stock": true },
"buyer_confirmed": false,
"cart_url": null,
"next_action": "Present price + stock to buyer; re-call prepare_purchase_handoff with buyer_confirmed=true to receive cart_url."
}
Shape C — Reorder handoff (alternative to cart)
{
"outcome": "reorder_handoff",
"match_type": "exact",
"sku": "1066",
"variant_id": "53472879935856",
"title": "10x6x6 ECT-32 Kraft Long Corrugated Boxes - 25 Bundle",
"live_price": { "unit_price": 13.21, "currency": "USD" },
"live_inventory": { "available": 499, "in_stock": true },
"reorder_url": "https://packrift.com/pages/reorder-packaging-by-sku?view=packrift_ai_reorder_live_r05&sku=1066&...#sku-1066",
"product_url": "https://packrift.com/products/10x6x6-ect-32-kraft-long-corrugated-boxes-25-bundle?...",
"copy_procurement_spec": "Packrift SKU 1066 — 10x6x6 ECT-32 Kraft Long Corrugated Boxes - 25 Bundle"
}
Shape D — No exact match → bulk-quote handoff
{
"outcome": "no_exact_match",
"match_type": "no_exact_match",
"requested_spec": "9x6x6 white corrugated box 25-pack",
"family": "boxes",
"missing_or_mismatched_fields": ["length_in", "color"],
"reason": "Only 10x6x6 kraft available; no 9x6x6 white SKU in AI_APPROVE catalog.",
"no_match_policy": "Exact matches only for purchase handoff. Nearby products must be labeled as alternatives and require buyer confirmation.",
"unsafe_action_blocked": "Do not call a different dimension, material, color, closure, adhesive, printer type, strength, pack count, or SKU an exact match.",
"quote_url": "https://packrift.com/pages/bulk-quote?spec=9x6x6+white+corrugated+box+25-pack&family=boxes&ref=mcp&utm_source=chatgpt&utm_medium=mcp&...",
"copy_procurement_spec": "Requested spec: 9x6x6 white corrugated box 25-pack.",
"safe_next_actions": ["request_bulk_quote", "ask_which_attribute_can_vary", "show_family_page_without_calling_it_exact"]
}
How to use exact-spec-packaging-procurement on Cursor
AI-first code editor with Composer
Prerequisites
Before installing skills in Cursor, ensure your development environment meets these requirements:
- ›Cursor installed and configured on your development machine
- ›Node.js version 16.0+ with npm package manager (verify with
node --version) - ›Active project directory or workspace where you want to add exact-spec-packaging-procurement
Execute installation command
Execute the skills CLI command in your project's root directory to begin installation:
The skills CLI fetches exact-spec-packaging-procurement from GitHub repository packrift.com/exact-spec-packaging-procurement-e4ujmy and configures it for Cursor.
Select Cursor when prompted
The CLI will show a list of available agents. Use arrow keys to navigate and space to select Cursor:
Verify installation
Confirm successful installation by checking the skill directory location:
Reload or restart Cursor to activate exact-spec-packaging-procurement. Access the skill through slash commands (e.g., /exact-spec-packaging-procurement) or your agent's skill management interface.
Security & Verification Notice
We perform automated surface-level scans (Gen AI Scanner, Socket, Snyk) during installation. These checks detect common vulnerabilities but do not guarantee complete security. Always review skill source code and verify the publisher's reputation before production use.
Skills execute code in your development environment. Always verify the publisher's identity, review recent commits, and test in isolated environments before production deployment.
List & Monetize Your Skill
Submit your Claude Code skill and start earning
Use Cases▌
Task Automation & Efficiency
Automate repetitive workflows and reduce manual effort
Example
Generate reports, summarize documents, draft communications
Save 3-5 hours per week on routine tasks
Knowledge Enhancement
Learn new skills, understand complex topics, get expert guidance
Example
Explain concepts, provide examples, suggest learning resources
Accelerate learning and skill development by 2x
Quality Improvement
Enhance output quality through reviews, suggestions, and refinements
Example
Review drafts, suggest improvements, catch errors
Improve work quality by 30-40% with less effort
Implementation Guide▌
Prerequisites
- ›Claude Desktop or compatible AI client with skill support
- ›Clear understanding of task or problem to solve
- ›Willingness to iterate and refine outputs
Time Estimate
15-45 minutes depending on use case complexity
Installation Steps
- 1.Install skill using provided installation command
- 2.Test with simple use case relevant to your work
- 3.Evaluate output quality and relevance
- 4.Iterate on prompts to improve results
- 5.Integrate into regular workflow if valuable
Common Pitfalls
- ⚠Expecting perfect results without iteration
- ⚠Not providing enough context in prompts
- ⚠Using skill for tasks outside its intended scope
- ⚠Accepting outputs without review and validation
Best Practices▌
✓ Do
- +Start with clear, specific prompts
- +Provide relevant context and constraints
- +Review and refine all outputs before using
- +Iterate to improve output quality
- +Document successful prompt patterns
✗ Don't
- −Don't use without understanding skill limitations
- −Don't skip validation of outputs
- −Don't share sensitive information in prompts
- −Don't expect skill to replace human judgment
💡 Pro Tips
- ★Be specific about desired format and style
- ★Ask for multiple options to choose from
- ★Request explanations to understand reasoning
- ★Combine AI efficiency with human expertise
When to Use This▌
✓ Use When
Use when skill capabilities match your task, clear ROI on time saved, and you can validate outputs. Best for repetitive tasks, learning, and quality improvement.
✗ Avoid When
Avoid when task requires deep expertise you can't validate, involves sensitive decisions, or when learning process is more valuable than speed of completion.
Learning Path▌
- 1Familiarize yourself with skill capabilities and limitations
- 2Start with low-risk, non-critical tasks
- 3Progress to more complex and valuable use cases
- 4Build expertise through regular use and experimentation
Discussion
Product Hunt–style comments (not star reviews)- No comments yet — start the thread.
Ratings
4.8★★★★★75 reviews- ★★★★★Alexander Smith· Dec 24, 2024
Keeps context tight: exact-spec-packaging-procurement is the kind of skill you can hand to a new teammate without a long onboarding doc.
- ★★★★★Pratham Ware· Dec 20, 2024
Solid pick for teams standardizing on skills: exact-spec-packaging-procurement is focused, and the summary matches what you get after install.
- ★★★★★Diego Ramirez· Dec 20, 2024
exact-spec-packaging-procurement has been reliable in day-to-day use. Documentation quality is above average for community skills.
- ★★★★★Neel Ndlovu· Dec 12, 2024
Useful defaults in exact-spec-packaging-procurement — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.
- ★★★★★Nikhil Liu· Dec 8, 2024
Registry listing for exact-spec-packaging-procurement matched our evaluation — installs cleanly and behaves as described in the markdown.
- ★★★★★Jin Jain· Nov 19, 2024
Useful defaults in exact-spec-packaging-procurement — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.
- ★★★★★Jin Iyer· Nov 19, 2024
I recommend exact-spec-packaging-procurement for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.
- ★★★★★Daniel Anderson· Nov 19, 2024
Keeps context tight: exact-spec-packaging-procurement is the kind of skill you can hand to a new teammate without a long onboarding doc.
- ★★★★★Nikhil Zhang· Nov 15, 2024
Registry listing for exact-spec-packaging-procurement matched our evaluation — installs cleanly and behaves as described in the markdown.
- ★★★★★Sakshi Patil· Nov 11, 2024
We added exact-spec-packaging-procurement from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.
showing 1-10 of 75