PackIndex
Packaging material prices, quote checks, contract price adjustments, pack costing and supplier RFQs.
¿Debería usar esto?
Calidad y seguridad
Hallazgos (2)
- LOWen packindex_query
- LOWen get_index_forecast
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"packindex": {
"url": "https://opnplatform.com/api/mcp"
}
}
}Puntos de conexión remotos
https://opnplatform.com/api/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (26)
🟢search_indices(layer, limit, query)
Find PackIndex codes by material, input, format or plain words ('polypropylene', 'recovered paper', 'natural gas', 'kraftliner', 'corrugated box'). Returns published codes with layer (L0 inputs, L1 raw materials, L2 semi-finished, L3 finished packs), region and unit — no prices. Use first when you don't know the exact code.
Esquema de entrada
{
"type": "object",
"properties": {
"layer": {
"description": "Optional layer filter: L0 primary inputs, L1 raw materials, L2 semi-finished, L3 finished units.",
"enum": [
"L0",
"L1",
"L2",
"L3"
],
"type": "string"
},
"limit": {
"default": 10,
"maximum": 25,
"minimum": 1,
"type": "integer"
},
"query": {
"maxLength": 80,
"minLength": 2,
"type": "string"
}
},
"required": [
"query"
]
}🟢get_live_index(code, currency)
Today's value of one PackIndex code — commodity inputs (L0: oil, gas, power, metals, recovered fibre), raw materials (L1: PP, HDPE, pulp…), semi-finished (L2: kraftliner, films…) or finished packs (L3) — in USD (and your currency), with 1-week / 1-month / 3-month / 1-year change (each period only where that much history exists) and carbon data where scored. Free callers get a 12-week delayed reference value (plus a daily live rotation); live values need the Essential plan.
Esquema de entrada
{
"type": "object",
"properties": {
"code": {
"description": "PackIndex code, e.g. PP, KRLNR, OCC, GAS_TTF, CORR. Use search_indices if unsure.",
"type": "string"
},
"currency": {
"description": "Also show the value in this currency (ISO code, e.g. EUR, CAD). Defaults to the signed-in user's own currency; converted at live FX.",
"type": "string"
}
},
"required": [
"code"
]
}🟢get_index_history(code, months)
Price history for any PackIndex code (L0-L3), one value per date: every point for up to 3 months, weekly closes for longer spans, with the change between points. Depth follows the caller's plan (observer 3mo · essential 3mo · professional 24mo · intelligence 24mo); free history ends 12 weeks ago.
Esquema de entrada
{
"type": "object",
"properties": {
"code": {
"description": "PackIndex code, e.g. PP, KRLNR, OCC, GAS_TTF, CORR. Use search_indices if unsure.",
"type": "string"
},
"months": {
"default": 12,
"description": "Capped to the caller's plan depth.",
"minimum": 1,
"type": "integer"
}
},
"required": [
"code"
]
}🟢get_all_indices(layer, limit, offset)
Page through index values by layer: L0 primary inputs, L1 raw materials, L2 semi-finished (paid plans) and L3 finished packs. Prefer get_prices for specific codes; use this for portfolio scans. Paginate with limit/offset (next_offset is returned while more rows remain).
Esquema de entrada
{
"type": "object",
"properties": {
"layer": {
"default": "all",
"enum": [
"L0",
"L1",
"L2",
"L3",
"all"
],
"type": "string"
},
"limit": {
"default": 50,
"maximum": 200,
"minimum": 1,
"type": "integer"
},
"offset": {
"default": 0,
"minimum": 0,
"type": "integer"
}
}
}🟢get_carbon_index(code, recycled_content)
Carbon footprint: finished packs (L3) in kg CO2e per unit with grade A-D; raw materials and semi-finished (board grades, pulps, polymers, aluminium, steel, cullet) in kg CO2e per tonne, virgin and PEF CFF, optionally at your recycled content. For Scope 3 Category 1: factor × units or tonnes.
Esquema de entrada
{
"type": "object",
"properties": {
"code": {
"description": "PackIndex code, e.g. PP, KRLNR, OCC, GAS_TTF, CORR. Use search_indices if unsure.",
"type": "string"
},
"recycled_content": {
"description": "Materials only: recycled share 0-1 for the CFF value.",
"maximum": 1,
"minimum": 0,
"type": "number"
}
},
"required": [
"code"
]
}🟢packindex_query(currency, question)
Ask a plain-English question about packaging costs, indices or which PACKIQ agent to use. Returns a structured, citable answer grounded in PackIndex data.
Esquema de entrada
{
"type": "object",
"properties": {
"currency": {
"description": "Answer currency; auto-detected from the question if omitted.",
"enum": [
"USD",
"EUR",
"GBP",
"CAD",
"BRL",
"MXN"
],
"type": "string"
},
"question": {
"maxLength": 500,
"type": "string"
}
},
"required": [
"question"
]
}🟢list_packiq_agents(discipline)
Browse PACKIQ AI packaging co-workers (procurement, manufacturing, compliance, finance, sales, logistics, contracts, global markets). Returns agent IDs, names, credit costs and descriptions.
Esquema de entrada
{
"type": "object",
"properties": {
"discipline": {
"default": "all",
"enum": [
"Manufacturing",
"Procurement",
"Sales",
"Logistics",
"Finance",
"Compliance",
"Contract Intelligence",
"Global Markets",
"North America Compliance",
"all"
],
"type": "string"
}
}
}🟢get_agent_chain(agent_id, result_signal)
After a PACKIQ agent run, get the 2-3 most logical follow-on agents with reasons. Pass result_signal (e.g. 'OVERPRICED', 'BUY') to bias the pick.
Esquema de entrada
{
"type": "object",
"properties": {
"agent_id": {
"type": "string"
},
"result_signal": {
"maxLength": 200,
"type": "string"
}
},
"required": [
"agent_id"
]
}🟢get_index_forecast(code, currency)
12-week forward value for any PackIndex code — inputs, raw materials, semi-finished and finished packs: current level, projection, projected change and confidence. Professional plan and above.
Esquema de entrada
{
"type": "object",
"properties": {
"code": {
"description": "PackIndex code, e.g. PP, KRLNR, OCC, GAS_TTF, CORR. Use search_indices if unsure.",
"type": "string"
},
"currency": {
"description": "Also show the value in this currency (ISO code, e.g. EUR, CAD). Defaults to the signed-in user's own currency; converted at live FX.",
"type": "string"
}
},
"required": [
"code"
]
}🟢get_prices(codes, currency)
Today's values for up to 20 PackIndex codes in one call (any layer: oil, gas, resins, pulp, board, films, finished packs) with 1w/1m/3m/1y change — for watchlists and cost models. Free callers get 12-week delayed reference values.
Esquema de entrada
{
"type": "object",
"properties": {
"codes": {
"description": "PackIndex codes, e.g. ['PP','HDPE','KRLNR','GAS_TTF']",
"items": {
"type": "string"
},
"maxItems": 20,
"minItems": 1,
"type": "array"
},
"currency": {
"description": "Also show values in this currency (ISO code).",
"type": "string"
}
},
"required": [
"codes"
]
}🟢check_quote(code, currency, price, quantity, quote_date, ...)
Is this supplier price fair? Compares a quoted price (any currency; per t, kg, lb, unit…) with the PackIndex benchmark: difference %, verdict FAIR / HIGH / LOW, where the quote sits in the benchmark's 12-month range and, with a quantity, the overpayment. Free callers are compared with the 12-week delayed reference value.
Esquema de entrada
{
"type": "object",
"properties": {
"code": {
"description": "PackIndex code, e.g. PP, KRLNR, OCC, GAS_TTF, CORR. Use search_indices if unsure.",
"type": "string"
},
"currency": {
"default": "USD",
"description": "Quote currency (ISO code)",
"type": "string"
},
"price": {
"description": "Quoted price per unit",
"minimum": 0,
"type": "number"
},
"quantity": {
"description": "Order quantity in the quote's unit",
"type": "number"
},
"quote_date": {
"description": "YYYY-MM-DD; compares with the benchmark on that date (paid plans)",
"type": "string"
},
"region": {
"description": "Where the quote is for, e.g. 'Germany'",
"type": "string"
},
"unit": {
"description": "Quote unit: t, kg, lb, MWh, therm, L, bbl, unit, 1000… (defaults to the benchmark's unit)",
"type": "string"
}
},
"required": [
"code",
"price"
]
}🟢price_adjustment(adjustment_date, base_date, base_price, code, components, ...)
Recalculate an index-linked contract price: base price and base date plus the indices it follows and their weights (the rest is fixed). Returns the adjusted price, each index's ratio and effect, and the formula. Essential plan (base dates up to 3 months back), Professional (24 months).
Esquema de entrada
{
"type": "object",
"properties": {
"adjustment_date": {
"description": "YYYY-MM-DD, default today",
"type": "string"
},
"base_date": {
"description": "YYYY-MM-DD the base price was agreed",
"type": "string"
},
"base_price": {
"minimum": 0,
"type": "number"
},
"code": {
"description": "Shortcut for one index (with weight)",
"type": "string"
},
"components": {
"description": "e.g. [{'code':'PP','weight':0.6},{'code':'GAS_TTF','weight':0.1}]",
"items": {
"properties": {
"code": {
"type": "string"
},
"weight": {
"maximum": 1,
"minimum": 0,
"type": "number"
}
},
"required": [
"code",
"weight"
],
"type": "object"
},
"maxItems": 8,
"type": "array"
},
"currency": {
"description": "Currency of the contract price (label only)",
"type": "string"
},
"weight": {
"maximum": 1,
"minimum": 0,
"type": "number"
}
},
"required": [
"base_price",
"base_date"
]
}🟢compare_regions(codes, duty_pct, freight_per_unit, material, reference)
One material across regions — e.g. PP in Europe, US, China and the Middle East — in USD with spreads vs a reference region; add freight per unit and duty % to compare landed costs. Professional plan and above.
Esquema de entrada
{
"type": "object",
"properties": {
"codes": {
"description": "Or explicit codes to compare",
"items": {
"type": "string"
},
"maxItems": 10,
"type": "array"
},
"duty_pct": {
"description": "Import duty % into the reference region",
"type": "number"
},
"freight_per_unit": {
"description": "USD freight per benchmark unit into the reference region",
"type": "number"
},
"material": {
"description": "Code or name, e.g. PP, HDPE, OCC, 'polypropylene'",
"type": "string"
},
"reference": {
"description": "Reference code (default: the European benchmark)",
"type": "string"
}
}
}🟢explain_price_move(code, period)
Why did a price move? Splits the change over 1w / 1m / 3m / 6m / 1y into the moves of its inputs (e.g. PP ← propylene, gas, power; kraftliner ← OCC, pulp; boxes ← board grades) and the rest (margins, demand, supply). Essential plan and above.
Esquema de entrada
{
"type": "object",
"properties": {
"code": {
"description": "PackIndex code, e.g. PP, KRLNR, OCC, GAS_TTF, CORR. Use search_indices if unsure.",
"type": "string"
},
"period": {
"default": "1m",
"enum": [
"1w",
"1m",
"3m",
"6m",
"1y"
],
"type": "string"
}
},
"required": [
"code"
]
}🟢get_market_movers(group, layer, limit, period)
Biggest risers and fallers among inputs (L0), raw materials (L1) and semi-finished (L2) over 1w / 1m / 3m / 1y, optionally within a group (e.g. 'polymer', 'fibre', 'energy'). Essential plan and above.
Esquema de entrada
{
"type": "object",
"properties": {
"group": {
"description": "Optional group or name filter",
"type": "string"
},
"layer": {
"default": "all",
"enum": [
"L0",
"L1",
"L2",
"all"
],
"type": "string"
},
"limit": {
"default": 5,
"maximum": 15,
"minimum": 1,
"type": "integer"
},
"period": {
"default": "1w",
"enum": [
"1w",
"1m",
"3m",
"1y"
],
"type": "string"
}
}
}🟢estimate_packaging_price(currency, flute, format, height_mm, horizon, ...)
Price a corrugated RSC box (FEFCO 0201) from internal dimensions and flute (E, B, C, F or double-wall), anchored to the PackIndex RSC benchmark, with a low/mid/high band, optional order total and a next-quarter projection. Returns the sources to cite.
Esquema de entrada
{
"type": "object",
"properties": {
"currency": {
"description": "Also show the estimate in this currency (ISO code, e.g. CAD, EUR). Defaults to the region's currency; converted at live FX.",
"type": "string"
},
"flute": {
"default": "B",
"enum": [
"E",
"B",
"C",
"F",
"EB",
"BC",
"EC"
],
"type": "string"
},
"format": {
"default": "RSC",
"enum": [
"RSC"
],
"type": "string"
},
"height_mm": {
"maximum": 2500,
"minimum": 30,
"type": "number"
},
"horizon": {
"default": "now",
"enum": [
"now",
"next_quarter"
],
"type": "string"
},
"length_mm": {
"maximum": 2500,
"minimum": 30,
"type": "number"
},
"quantity": {
"minimum": 1,
"type": "integer"
},
"region": {
"description": "Country or region, e.g. 'US', 'Germany', 'Poland'",
"type": "string"
},
"width_mm": {
"maximum": 2500,
"minimum": 30,
"type": "number"
}
},
"required": [
"length_mm",
"width_mm",
"height_mm"
]
}⚪draft_packaging_spec(brief, project_name)
Turn a plain-language packaging brief into a structured spec (format, materials, dimensions, quantity, assumptions) saved as a Design Studio project. Requires the user's OPN account (sign-in or API key); spends 1 Suite run (Intelligence includes monthly free runs).
Esquema de entrada
{
"type": "object",
"properties": {
"brief": {
"maxLength": 6000,
"type": "string"
},
"project_name": {
"maxLength": 120,
"type": "string"
}
},
"required": [
"brief"
]
}⚪cost_packaging_spec(project_id, spec)
Derive the bill of materials for a Design Studio project (or a spec object) and anchor each component to live PackIndex values. Requires the user's OPN account (sign-in or API key); spends 1 Suite run.
Esquema de entrada
{
"type": "object",
"properties": {
"project_id": {
"description": "From draft_packaging_spec",
"type": "integer"
},
"spec": {
"description": "Alternative to project_id",
"type": "object"
}
}
}⚪compare_packaging_options(goal, index_category, material, performance, project_id)
Optimise a Design Studio project (or a material): right-size, lightweight and substitute options with cost and carbon savings anchored to PackIndex. Requires the user's OPN account (sign-in or API key); spends 1 Suite run.
Esquema de entrada
{
"type": "object",
"properties": {
"goal": {
"default": "both",
"enum": [
"cost",
"carbon",
"both"
],
"type": "string"
},
"index_category": {
"description": "Without a project: the material family to find substitutes for — one of BOPET, BOPP, COEX_7L, CRTN_FBB, FBB, FLUTE_NSSC, FLUTE_SC, KRLNR, KRLNR_125, LDPE, LDPE_FILM, LDPE_MONO, LLDPE, LLDPE_FILM, METBOPP, PET_BTL, PP, PP_BLOCK, PP_COPOL, PP_FILM, PP_INJ, PP_INJ_SEMI, PP_SHEET, PVC, SBB, SBS_FOOD, SBS_PPR, THERM_PP, VMPET, WHTOP",
"type": "string"
},
"material": {
"description": "Name of the material (shown in the result)",
"type": "string"
},
"performance": {
"additionalProperties": false,
"description": "Performance floor — use the pair that fits the pack. Downgauging is checked against the floor only when both current and required are given.",
"properties": {
"ect_current": {
"description": "Corrugated: current edge crush (ECT)",
"type": "number"
},
"ect_required": {
"description": "Corrugated: minimum ECT",
"type": "number"
},
"stiffness_current": {
"description": "Folding carton: current board bending stiffness, mN·m",
"type": "number"
},
"stiffness_required": {
"description": "Folding carton: minimum bending stiffness, mN·m",
"type": "number"
},
"topload_current_kgf": {
"description": "Rigid packs: current top-load, kgf",
"type": "number"
},
"topload_required_kgf": {
"description": "Rigid packs: minimum top-load, kgf",
"type": "number"
}
},
"type": "object"
},
"project_id": {
"description": "From draft_packaging_spec (with a costed BoM)",
"type": "integer"
}
}
}🟡update_project(contents_mm, name, performance, project_id, quantity, ...)
Change a Design Studio project's order quantity, target region, contents size (boxes — enables right-sizing), name or performance floor (corrugated: ECT; folding cartons: bending stiffness in mN·m; rigid packs: top-load kgf). Free — no Suite run; a new quantity re-prices the existing bill of materials. Use it when the user gives the real volume before comparing options or requesting quotes.
Esquema de entrada
{
"type": "object",
"properties": {
"contents_mm": {
"description": "Boxes: the product(s) as packed, 'L x W x H' in mm (3 balls of 74 mm in a row: '74 x 74 x 222'). Enables right-sizing.",
"type": "string"
},
"name": {
"maxLength": 120,
"type": "string"
},
"performance": {
"additionalProperties": false,
"description": "Performance floor — use the pair that fits the pack. Downgauging is checked against the floor only when both current and required are given.",
"properties": {
"ect_current": {
"description": "Corrugated: current edge crush (ECT)",
"type": "number"
},
"ect_required": {
"description": "Corrugated: minimum ECT",
"type": "number"
},
"stiffness_current": {
"description": "Folding carton: current board bending stiffness, mN·m",
"type": "number"
},
"stiffness_required": {
"description": "Folding carton: minimum bending stiffness, mN·m",
"type": "number"
},
"topload_current_kgf": {
"description": "Rigid packs: current top-load, kgf",
"type": "number"
},
"topload_required_kgf": {
"description": "Rigid packs: minimum top-load, kgf",
"type": "number"
}
},
"type": "object"
},
"project_id": {
"type": "integer"
},
"quantity": {
"description": "Units per order / year",
"minimum": 1,
"type": "integer"
},
"region": {
"description": "Target market or supply country",
"type": "string"
}
},
"required": [
"project_id"
]
}🟢list_my_projects
The user's Design Studio packaging projects (id, name, pack type, status) and Suite runs left. Use it before compare_packaging_options or post_rfq when the user refers to 'my project' without an id. Requires the user's OPN account.
Esquema de entrada
{
"type": "object",
"properties": {}
}🟡post_rfq(broadcast, company_slugs, currency, listing_ids, material_id, ...)
Request quotes on the OPN Trade Exchange for a Design Studio project or a PackIndex material code to up to 3 suppliers. listing_ids (from find_suppliers) or, by default, the 3 best-matching listings get an RFQ — needs a verified e-mail and an Exchange plan with RFQs (Business+). company_slugs (converters from find_suppliers) ask those companies to quote; the Exchange contacts them for the buyer, anonymously. Real e-mails are sent — confirm the selection with the user first.
Esquema de entrada
{
"type": "object",
"properties": {
"broadcast": {
"description": "Also send to every live listing for the material",
"type": "boolean"
},
"company_slugs": {
"description": "Converters to ask for a quote (company_slug from find_suppliers)",
"items": {
"type": "string"
},
"maxItems": 3,
"type": "array"
},
"currency": {
"default": "USD",
"type": "string"
},
"listing_ids": {
"description": "Only these listings (from search_exchange_listings)",
"items": {
"type": "integer"
},
"maxItems": 3,
"type": "array"
},
"material_id": {
"description": "PackIndex code, e.g. RSC_0201, KRLNR, PP",
"type": "string"
},
"needed_by": {
"description": "YYYY-MM-DD",
"type": "string"
},
"notes": {
"maxLength": 2000,
"type": "string"
},
"project_id": {
"description": "Design Studio project with a costed BoM",
"type": "integer"
},
"quantity": {
"type": "number"
},
"region": {
"type": "string"
},
"target_price": {
"type": "number"
},
"unit": {
"description": "e.g. units, t",
"type": "string"
}
}
}🟢find_suppliers(material_id, project_id, query, region)
Who can quote a material or a Design Studio project: live Trade Exchange listings (price vs PackIndex benchmark) plus matched converters from the verified supplier network, filtered by country. Use before post_rfq. A project_id needs the user's OPN account; a material code works for anyone.
Esquema de entrada
{
"type": "object",
"properties": {
"material_id": {
"description": "PackIndex code, e.g. RSC_0201, FBB, KRLNR",
"type": "string"
},
"project_id": {
"description": "Design Studio project (see list_my_projects)",
"type": "integer"
},
"query": {
"description": "Supplier name or keywords, e.g. 'Box Co', 'FSC', 'Ontario'",
"type": "string"
},
"region": {
"description": "Supplier country or region, e.g. Canada, CA, Germany, North America",
"type": "string"
}
}
}🟢get_my_rfqs(rfq_id)
The user's sent RFQs with how many suppliers received each and how many responded; pass rfq_id for the responses (bids and, once a supplier responds, their contact).
Esquema de entrada
{
"type": "object",
"properties": {
"rfq_id": {
"type": "integer"
}
}
}🟢search_exchange_listings(limit, material_id, query, region)
Live supplier offers on the OPN Trade Exchange, filterable by PackIndex material code and origin, each with its PackIndex benchmark (live on paid plans, 12-week delayed otherwise). No contact details — RFQs happen on the Exchange.
Esquema de entrada
{
"type": "object",
"properties": {
"limit": {
"default": 10,
"maximum": 25,
"minimum": 1,
"type": "integer"
},
"material_id": {
"description": "PackIndex code, e.g. KRLNR, PP, BOPP",
"type": "string"
},
"query": {
"description": "Supplier name or keywords (grade, certification, city)",
"type": "string"
},
"region": {
"description": "Origin country or region, e.g. Canada, CA, North America",
"type": "string"
}
}
}⚪run_packiq_agent(agent_id, input, inputs)
Run a PACKIQ agent on the caller's data (quotes, invoices, BOMs, specs). Requires the user's OPN account (sign-in or API key); spends the agent's credit cost (refunded automatically if the run fails). Returns structured JSON plus a next_agent recommendation.
Esquema de entrada
{
"type": "object",
"properties": {
"agent_id": {
"description": "From list_packiq_agents, e.g. quote-analyser.",
"type": "string"
},
"input": {
"description": "The data to analyse as text.",
"maxLength": 24000,
"type": "string"
},
"inputs": {
"description": "Alternative to input: agent-specific fields as key/value pairs.",
"type": "object"
}
},
"required": [
"agent_id"
]
}Comunidad
Evidencia