Skip to content

PackIndex

by opnplatform.com · remote · no sign-in to list tools · v1.1.0 · published by com.opnplatform

Packaging material prices, quote checks, contract price adjustments, pack costing and supplier RFQs.

Deletes · 1Changes · 15

26 tools: 1 can delete or cancel things, 15 change things and 10 only read.

Scanned Oct 21, 2026

8 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http packindex https://opnplatform.com/api/mcp

Findings

Matches of fixed checks, with the text they matched.

8 warn
  • The server marks "get_live_index" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "get_live_index" says "get": a word for reading.

    What this check looks for
  • The server marks "get_index_history" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "get_index_history" says "get": a word for reading.

    What this check looks for
  • The server marks "get_carbon_index" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "get_carbon_index" says "get": a word for reading.

    What this check looks for
  • The server marks "get_index_forecast" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "get_index_forecast" says "get": a word for reading.

    What this check looks for
  • The server marks "check_quote" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The input takes a statement or command to run (input.code), which can change anything it can reach.

    What this check looks for
  • The server marks "price_adjustment" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The input takes a statement or command to run (input.code), which can change anything it can reach.

    What this check looks for
Show 2 more findings
  • The server marks "explain_price_move" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "explain_price_move" says "explain": a word for reading.

    What this check looks for
  • The server marks "compare_packaging_options" as not read-only (readOnlyHint: false), and its words say it reads.

    Matched text

    annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}; The name "compare_packaging_options" says "compare": a word for reading.

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

26 tools

Deletes or cancels 1Claude Code: deny
  • update_projectChange a Design Studio project's order quantity, target region, contents size (boxes — enables right-sizing), name or performance floor (corrugated: ECT; folding cartons: bending s…No findings

    Why it is in this group

    • The name "update_project" says "update": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    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.

    Annotations the server declares

    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: false
    • title: Design Studio: update a project
Changes things 15Claude Code: ask
  • check_quoteIs this supplier price fair?1 finding

    Why it is in this group

    • The input takes a statement or command to run (input.code), which can change anything it can reach.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "check_quote" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The input takes a statement or command to run (input.code), which can change anything it can reach.

      What this check looks for
    Description, as the server wrote it
    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.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
    • title: Check a supplier quote
  • compare_packaging_optionsOptimise a Design Studio project (or a material): right-size, lightweight and substitute options with cost and carbon savings anchored to PackIndex.1 finding

    Why it is in this group

    • The name "compare_packaging_options" says "compare": a word for reading.
    • The server marks it as not read-only (readOnlyHint: false).

    Findings

    • Warn

      The server marks "compare_packaging_options" as not read-only (readOnlyHint: false), and its words say it reads.

      Matched text

      annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}; The name "compare_packaging_options" says "compare": a word for reading.

      What this check looks for
    Description, as the server wrote it
    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.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
    • readOnlyHint: false
    • title: Design Studio: compare options
  • cost_packaging_specDerive the bill of materials for a Design Studio project (or a spec object) and anchor each component to live PackIndex values.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
    • readOnlyHint: false
    • title: Design Studio: cost a spec
  • draft_packaging_specTurn a plain-language packaging brief into a structured spec (format, materials, dimensions, quantity, assumptions) saved as a Design Studio project.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    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).

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
    • readOnlyHint: false
    • title: Design Studio: brief to spec
  • estimate_packaging_pricePrice 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 …No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
    • title: Estimate a corrugated box price
  • explain_price_moveWhy did a price move?1 finding

    Why it is in this group

    • The name "explain_price_move" says "explain": a word for reading.
    • The input takes a statement or command to run (input.code), which can change anything it can reach.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "explain_price_move" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "explain_price_move" says "explain": a word for reading.

      What this check looks for
    Description, as the server wrote it
    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.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
    • title: Explain a price move
  • get_carbon_indexCarbon 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 t…1 finding

    Why it is in this group

    • The name "get_carbon_index" says "get": a word for reading.
    • The input takes a statement or command to run (input.code), which can change anything it can reach.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "get_carbon_index" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "get_carbon_index" says "get": a word for reading.

      What this check looks for
    Description, as the server wrote it
    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.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
    • title: Get Green Index carbon score
  • get_index_forecast12-week forward value for any PackIndex code — inputs, raw materials, semi-finished and finished packs: current level, projection, projected change and confidence.1 finding

    Why it is in this group

    • The name "get_index_forecast" says "get": a word for reading.
    • The input takes a statement or command to run (input.code), which can change anything it can reach.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "get_index_forecast" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "get_index_forecast" says "get": a word for reading.

      What this check looks for
    Description, as the server wrote it
    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.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
    • title: Get index forecast
  • get_index_historyPrice 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.1 finding

    Why it is in this group

    • The name "get_index_history" says "get": a word for reading.
    • The input takes a statement or command to run (input.code), which can change anything it can reach.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "get_index_history" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "get_index_history" says "get": a word for reading.

      What this check looks for
    Description, as the server wrote it
    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.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
    • title: Get index history
  • get_live_indexToday'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…) o…1 finding

    Why it is in this group

    • The name "get_live_index" says "get": a word for reading.
    • The input takes a statement or command to run (input.code), which can change anything it can reach.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "get_live_index" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "get_live_index" says "get": a word for reading.

      What this check looks for
    Description, as the server wrote it
    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.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
    • title: Get one index value
  • packiq_epr_feesEstimate annual Extended Producer Responsibility fees for a packaging portfolio across active schemes (EU member states, UK, US states, Canada, Chile, Brazil): fee band per format,…No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Estimate annual Extended Producer Responsibility fees for a packaging portfolio across active schemes (EU member states, UK, US states, Canada, Chile, Brazil): fee band per format, total liability by market and a reformulation priority list. Requires the user's OPN account; costs 4 PACKIQ credits (refunded automatically if the run fails).

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
    • readOnlyHint: false
    • title: PACKIQ: calculate EPR fees
  • packiq_quote_analysisBenchmark every line of a pasted supplier packaging quote against live PackIndex finished-pack indices: deviation from the benchmark and a verdict per line (Sharp, Competitive, Hig…No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Benchmark every line of a pasted supplier packaging quote against live PackIndex finished-pack indices: deviation from the benchmark and a verdict per line (Sharp, Competitive, High, Overpriced), with market evidence for lines more than 8% above index. Requires the user's OPN account; costs 2 PACKIQ credits (refunded automatically if the run fails).

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
    • readOnlyHint: false
    • title: PACKIQ: analyse a supplier quote
  • packiq_recyclabilityGrade a packaging structure on the EU PPWR recyclability scale (A to F) from its substrate, layers, inks, closures and adhesives: grade, reasoning, EPR eco-modulation impact and op…No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Grade a packaging structure on the EU PPWR recyclability scale (A to F) from its substrate, layers, inks, closures and adhesives: grade, reasoning, EPR eco-modulation impact and options to reach a higher grade. Requires the user's OPN account; costs 4 PACKIQ credits (refunded automatically if the run fails).

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
    • readOnlyHint: false
    • title: PACKIQ: grade recyclability
  • post_rfqRequest quotes on the OPN Trade Exchange for a Design Studio project or a PackIndex material code to up to 3 suppliers.No findings

    Why it is in this group

    • The name "post_rfq" says "post": a word for a change.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
    • readOnlyHint: false
    • title: Exchange: send an RFQ
  • price_adjustmentRecalculate an index-linked contract price: base price and base date plus the indices it follows and their weights (the rest is fixed).1 finding

    Why it is in this group

    • The input takes a statement or command to run (input.code), which can change anything it can reach.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "price_adjustment" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The input takes a statement or command to run (input.code), which can change anything it can reach.

      What this check looks for
    Description, as the server wrote it
    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).

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
    • title: Index-linked price adjustment
Only reads 10Claude Code: allow
  • compare_regionsOne material across regions — e.g.No findings

    Why it is in this group

    • The name "compare_regions" says "compare": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
    • title: Compare a material across regions
  • find_suppliersWho 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, filtere…No findings

    Why it is in this group

    • The name "find_suppliers" says "find": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
    • title: Exchange: find suppliers
  • get_all_indicesPage through index values by layer: L0 primary inputs, L1 raw materials, L2 semi-finished (paid plans) and L3 finished packs.No findings

    Why it is in this group

    • The name "get_all_indices" says "get": a word for reading.
    Description, as the server wrote it
    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).

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
    • title: List index values (paginated)
  • get_market_moversBiggest risers and fallers among inputs (L0), raw materials (L1) and semi-finished (L2) over 1w / 1m / 3m / 1y, optionally within a group (e.g.No findings

    Why it is in this group

    • The name "get_market_movers" says "get": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
    • title: Market movers
  • get_my_rfqsThe 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).No findings

    Why it is in this group

    • The name "get_my_rfqs" says "get": a word for reading.
    Description, as the server wrote it
    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).

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
    • title: Exchange: my RFQs
  • get_pricesToday'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.No findings

    Why it is in this group

    • The name "get_prices" says "get": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
    • title: Get several index values
  • list_my_projectsThe user's Design Studio packaging projects (id, name, pack type, status) and Suite runs left.No findings

    Why it is in this group

    • The name "list_my_projects" says "list": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
    • title: Design Studio: my projects
  • packindex_queryAsk a plain-English question about packaging costs, indices or which PACKIQ agent to use.No findings

    Why it is in this group

    • The name "packindex_query" says "query": a word for reading.
    Description, as the server wrote it
    Ask a plain-English question about packaging costs, indices or which PACKIQ agent to use. Returns a structured, citable answer grounded in PackIndex data.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
    • title: Ask PackIndex
  • search_exchange_listingsLive 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 findings

    Why it is in this group

    • The name "search_exchange_listings" says "search": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • readOnlyHint: true
    • title: Search Exchange listings
  • search_indicesFind PackIndex codes by material, input, format or plain words ('polypropylene', 'recovered paper', 'natural gas', 'kraftliner', 'corrugated box').No findings

    Why it is in this group

    • The name "search_indices" says "search": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
    • title: Search PackIndex codes

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.1.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http packindex https://opnplatform.com/api/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__packindex__search_indices",
      "mcp__packindex__get_all_indices",
      "mcp__packindex__packindex_query",
      "mcp__packindex__get_prices",
      "mcp__packindex__compare_regions",
      "mcp__packindex__get_market_movers",
      "mcp__packindex__list_my_projects",
      "mcp__packindex__find_suppliers",
      "mcp__packindex__get_my_rfqs",
      "mcp__packindex__search_exchange_listings"
    ],
    "ask": [
      "mcp__packindex__get_live_index",
      "mcp__packindex__get_index_history",
      "mcp__packindex__get_carbon_index",
      "mcp__packindex__get_index_forecast",
      "mcp__packindex__check_quote",
      "mcp__packindex__price_adjustment",
      "mcp__packindex__explain_price_move",
      "mcp__packindex__estimate_packaging_price",
      "mcp__packindex__draft_packaging_spec",
      "mcp__packindex__cost_packaging_spec",
      "mcp__packindex__compare_packaging_options",
      "mcp__packindex__post_rfq",
      "mcp__packindex__packiq_quote_analysis",
      "mcp__packindex__packiq_epr_fees",
      "mcp__packindex__packiq_recyclability"
    ],
    "deny": [
      "mcp__packindex__update_project"
    ]
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as packindex. Review it before you use it.