Inventory Planner MCP by usefulapi

Read Inventory Planner forecasts, replenishment and purchase orders; create draft purchase orders.

我该使用它吗

质量与安全性

A
描述质量
100%
模式完整度
93%
命名质量
64%
投毒风险
100%
权限匹配度
100%
协议合规性
100%

发现(9)

  • LOWTool 'inventoryplanner_list_variant_vendors' name length outside 3-30 range在 inventoryplanner_list_variant_vendors 中
  • LOWTool 'inventoryplanner_get_variant_vendor' name length outside 3-30 range在 inventoryplanner_get_variant_vendor 中
  • LOWTool 'inventoryplanner_list_purchase_orders' name length outside 3-30 range在 inventoryplanner_list_purchase_orders 中
  • LOWTool 'inventoryplanner_get_purchase_order' name length outside 3-30 range在 inventoryplanner_get_purchase_order 中
  • LOWTool 'inventoryplanner_list_purchase_order_items' name length outside 3-30 range在 inventoryplanner_list_purchase_order_items 中
  • LOWTool 'inventoryplanner_get_purchase_order_connections' name length outside 3-30 range在 inventoryplanner_get_purchase_order_connections 中
  • LOWTool 'inventoryplanner_get_purchase_order_stock_update' name length outside 3-30 range在 inventoryplanner_get_purchase_order_stock_update 中
  • LOWTool 'inventoryplanner_create_draft_purchase_order' name length outside 3-30 range在 inventoryplanner_create_draft_purchase_order 中
  • LOWTool 'inventoryplanner_update_draft_purchase_order' name length outside 3-30 range在 inventoryplanner_update_draft_purchase_order 中

基于对工具定义和协议合规性的自动分析。

上下文开销

~2,925token 数(工具定义)
~1.7 KB典型响应大小
对注意力有显著影响(占 128k 上下文窗口的 2.29%)

这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。

安装

一键安装

将以下内容添加到你的 `claude_desktop_config.json` 文件中:

{
  "mcpServers": {
    "inventory-planner": {
      "url": "https://inventory-planner.usefulapi.io/mcp"
    }
  }
}

远程端点

https://inventory-planner.usefulapi.io/mcpstreamable-http

它能做什么

工具清单

工具(11)

🟢 只读🟡 写入🔴 删除⚪ 未知
🟢inventoryplanner_list_variants(fields, filters, sort, include_removed, page, ...)

List product variants with Inventory Planner's computed metrics (forecast, replenishment, days to sell out, lost revenue, lead time, review period and ~200 more). Always pass `fields` to pick the metrics you need (default: id,sku,lead_time,review_period,replenishment,oos,under_value; oos = forecasted days to sell out, under_value = forecasted lost revenue, replenishment = recommended order quantity). Use `filters` and `sort` for questions like "which SKUs need reordering". Removed variants are excluded unless include_removed. GET /api/v1/variants.

输入模式

{
  "type": "object",
  "properties": {
    "fields": {
      "type": "string",
      "maxLength": 2000,
      "pattern": "^[A-Za-z0-9_.,-]+$"
    },
    "filters": {
      "description": "Filters, as {\"<field>\": value} or {\"<field>_<operator>\": value}. Operators: eq (default), eqi (case-insensitive), ne, gt, gte, lt, lte, range (\"5-10\"), match (regex), in (comma-separated). Example: {\"replenishment_gt\": 0, \"sku_match\": \"^TSHIRT\"}.",
      "type": "object",
      "propertyNames": {
        "type": "string",
        "pattern": "^[A-Za-z0-9_]{1,80}$"
      },
      "additionalProperties": {
        "anyOf": [
          {
            "type": "string",
            "maxLength": 500
          },
          {
            "type": "number"
          },
          {
            "type": "boolean"
          }
        ]
      }
    },
    "sort": {
      "description": "Sort by one field, e.g. {\"field\": \"under_value\", \"direction\": \"desc\"}.",
      "type": "object",
      "properties": {
        "field": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_]{1,80}$"
        },
        "direction": {
          "default": "asc",
          "type": "string",
          "enum": [
            "asc",
            "desc"
          ]
        }
      },
      "required": [
        "field"
      ]
    },
    "include_removed": {
      "type": "boolean"
    },
    "page": {
      "description": "Page number, counting from 0 (default 0). Pass the previous reply's next_page.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    },
    "limit": {
      "description": "Results per page, 1-1000 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 1000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢inventoryplanner_get_variant(variant_id, fields)

One variant by its Inventory Planner id, with the metrics named in `fields` (default: id,sku,lead_time,review_period,replenishment,oos,under_value). GET /api/v1/variants/{id}.

输入模式

{
  "type": "object",
  "properties": {
    "variant_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Inventory Planner id."
    },
    "fields": {
      "type": "string",
      "maxLength": 2000,
      "pattern": "^[A-Za-z0-9_.,-]+$"
    }
  },
  "required": [
    "variant_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢inventoryplanner_list_variant_vendors(variant_id)

The vendors a variant can be ordered from, with cost_price, landing_cost_price, vendor_reference (vendor SKU), vendor_name, vendor_packaging (MOQ) and uom_ordering. GET /api/v1/variants/{id}/vendors.

输入模式

{
  "type": "object",
  "properties": {
    "variant_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Inventory Planner id."
    }
  },
  "required": [
    "variant_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢inventoryplanner_get_variant_vendor(variant_id, vendor_id)

One vendor's terms for a variant: cost_price, landing_cost_price, vendor_reference, vendor_name, vendor_packaging (MOQ), uom_ordering. vendor_id is the vendor name in lowercase. GET /api/v1/variants/{id}/vendors/{vendor_id}.

输入模式

{
  "type": "object",
  "properties": {
    "variant_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Inventory Planner id."
    },
    "vendor_id": {
      "description": "The vendor name in lowercase, as listed by inventoryplanner_list_variant_vendors.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    }
  },
  "required": [
    "variant_id",
    "vendor_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢inventoryplanner_list_purchase_orders(fields, filters, sort, page, limit)

List stock orders: purchase orders, transfers and assembly orders (the `type` field is "po"/empty, "transfer" or "assembly"). Filter with `filters`, e.g. {"status": "OPEN", "vendor": "Acme", "expected_date_lt": "2026-11-01"}. Default fields: id,reference,status,type,vendor,warehouse,source,created_date,expected_date,received_date,currency,total,total_ordered,total_received. GET /api/v1/purchase-orders.

输入模式

{
  "type": "object",
  "properties": {
    "fields": {
      "type": "string",
      "maxLength": 2000,
      "pattern": "^[A-Za-z0-9_.,-]+$"
    },
    "filters": {
      "description": "Filters, as {\"<field>\": value} or {\"<field>_<operator>\": value}. Operators: eq (default), eqi (case-insensitive), ne, gt, gte, lt, lte, range (\"5-10\"), match (regex), in (comma-separated). Example: {\"replenishment_gt\": 0, \"sku_match\": \"^TSHIRT\"}.",
      "type": "object",
      "propertyNames": {
        "type": "string",
        "pattern": "^[A-Za-z0-9_]{1,80}$"
      },
      "additionalProperties": {
        "anyOf": [
          {
            "type": "string",
            "maxLength": 500
          },
          {
            "type": "number"
          },
          {
            "type": "boolean"
          }
        ]
      }
    },
    "sort": {
      "description": "Sort by one field, e.g. {\"field\": \"under_value\", \"direction\": \"desc\"}.",
      "type": "object",
      "properties": {
        "field": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_]{1,80}$"
        },
        "direction": {
          "default": "asc",
          "type": "string",
          "enum": [
            "asc",
            "desc"
          ]
        }
      },
      "required": [
        "field"
      ]
    },
    "page": {
      "description": "Page number, counting from 0 (default 0). Pass the previous reply's next_page.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    },
    "limit": {
      "description": "Results per page, 1-1000 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 1000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢inventoryplanner_get_purchase_order(purchase_order_id, fields)

One purchase order, transfer or assembly order by id, with its header fields (reference, status, vendor, warehouse, dates, addresses, totals, notes) and line items. GET /api/v1/purchase-orders/{id}.

输入模式

{
  "type": "object",
  "properties": {
    "purchase_order_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Inventory Planner id."
    },
    "fields": {
      "type": "string",
      "maxLength": 2000,
      "pattern": "^[A-Za-z0-9_.,-]+$"
    }
  },
  "required": [
    "purchase_order_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢inventoryplanner_list_purchase_order_items(purchase_order_id, fields, page, limit)

The line items of a purchase order: variant id, sku, title, ordered quantity (replenishment), received quantity and received_history, cost price, tax, discount and stock snapshots. GET /api/v1/purchase-orders/{id}/items.

输入模式

{
  "type": "object",
  "properties": {
    "purchase_order_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Inventory Planner id."
    },
    "fields": {
      "type": "string",
      "maxLength": 2000,
      "pattern": "^[A-Za-z0-9_.,-]+$"
    },
    "page": {
      "description": "Page number, counting from 0 (default 0). Pass the previous reply's next_page.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    },
    "limit": {
      "description": "Results per page, 1-1000 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 1000
    }
  },
  "required": [
    "purchase_order_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢inventoryplanner_get_purchase_order_connections(purchase_order_id)

Whether and how a purchase order was saved to connected systems (ERP, accounting): per connection the status (success, error, run, queued), save_po flag and the PO's id and reference there. Read-only. GET /api/v1/purchase-orders/{id}/connections.

输入模式

{
  "type": "object",
  "properties": {
    "purchase_order_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Inventory Planner id."
    }
  },
  "required": [
    "purchase_order_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢inventoryplanner_get_purchase_order_stock_update(purchase_order_id, for_destination)

The stock updates a purchase order has computed: per warehouse (wh) the items with stock_before, delta and error. for_destination false reads the source warehouse of a transfer. Read-only: nothing is pushed. GET /api/v1/purchase-orders/{id}/stock-update.

输入模式

{
  "type": "object",
  "properties": {
    "purchase_order_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Inventory Planner id."
    },
    "for_destination": {
      "description": "true (default) = the destination warehouse; false = the source warehouse (transfers only).",
      "type": "boolean"
    }
  },
  "required": [
    "purchase_order_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡inventoryplanner_create_draft_purchase_order(vendor, warehouse, reference, expected_date, currency, ...)

WRITE: create a purchase order with status "draft" in Inventory Planner (POST /api/v1/purchase-orders). A draft is only a plan inside Inventory Planner: it is NOT sent to the vendor, NOT saved to any connected system and moves no stock or money. Purchase orders only (no transfers or assembly orders). Each line item is a variant id plus the quantity to order (replenishment).

输入模式

{
  "type": "object",
  "properties": {
    "vendor": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "The vendor name, as it appears in Inventory Planner."
    },
    "warehouse": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "The destination warehouse, as it appears in Inventory Planner."
    },
    "reference": {
      "description": "Your PO reference.",
      "type": "string",
      "maxLength": 200
    },
    "expected_date": {
      "description": "Expected delivery date, e.g. 2026-11-15 or 2026-11-15T10:00:00+01:00.",
      "type": "string",
      "maxLength": 40
    },
    "currency": {
      "type": "string",
      "pattern": "^[A-Za-z]{3}$"
    },
    "notes": {
      "type": "string",
      "maxLength": 2000
    },
    "items": {
      "minItems": 1,
      "maxItems": 500,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200,
            "description": "Variant id."
          },
          "quantity": {
            "type": "number",
            "exclusiveMinimum": 0,
            "maximum": 10000000,
            "description": "Quantity to order."
          }
        },
        "required": [
          "id",
          "quantity"
        ]
      }
    }
  },
  "required": [
    "vendor",
    "warehouse",
    "items"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴inventoryplanner_update_draft_purchase_order(purchase_order_id, reference, expected_date, notes)

WRITE: change the reference, expected date or notes of a purchase order that is still a draft (PATCH /api/v1/purchase-orders/{id}). The order is read first and refused unless its status is "draft". It never changes the status, sends the order, or touches line items or received quantities.

输入模式

{
  "type": "object",
  "properties": {
    "purchase_order_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Inventory Planner id."
    },
    "reference": {
      "type": "string",
      "maxLength": 200
    },
    "expected_date": {
      "description": "Expected delivery date, e.g. 2026-11-15 or 2026-11-15T10:00:00+01:00.",
      "type": "string",
      "maxLength": 40
    },
    "notes": {
      "type": "string",
      "maxLength": 2000
    }
  },
  "required": [
    "purchase_order_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

社区

评价此服务器

证据

最近观测

已验证未记录版本11 个工具