Medium Risk

add_inventory_item

Add an item to the caller's personal inventory. Authenticated. Required OAuth scope: inventory:write. One creation tool covers all lifecycle states — set status based on the user's intent: "I bought" → owned, "I want" → wanted, "I'm selling" → for_sale. Either product_id (linked to an existing Pa...

Risk signalsHandles credentials or secrets (api_key) · High parameter count (15 properties)

Part of the Partle server.

add_inventory_item can modify Partle data, with no limits today. PolicyLayer puts allow, deny, and rate-limit rules on every call. Live in minutes.

SECURE PARTLE →

Free to start. No card required.

AI agents use add_inventory_item to create or modify resources in Partle. Write operations carry medium risk because an autonomous agent could trigger bulk unintended modifications. Rate limits prevent a single agent session from making hundreds of changes in rapid succession. Argument validation ensures the agent passes expected values.

Without a policy, an AI agent could call add_inventory_item repeatedly, creating or modifying resources faster than any human could review. PolicyLayer's rate limiting ensures write operations happen at a controlled pace, and argument validation catches malformed or unexpected inputs before they reach Partle.

Write tools can modify data. A rate limit prevents runaway bulk operations from AI agents.

policy.json
{
  "version": "1",
  "default": "deny",
  "tools": {
    "add_inventory_item": {
      "limits": [
        {
          "counter": "add_inventory_item_rate",
          "window": "minute",
          "max": 30,
          "scope": "grant"
        }
      ]
    }
  }
}

See the full Partle policy for all 21 tools.

Get this rule live on your own Partle server in minutes. PolicyLayer enforces it on every call, before it runs.

ENFORCE ON MY PARTLE →

View all 21 tools →

These attack patterns abuse exactly the kind of access add_inventory_item gives an agent. Each links to the full case and the policy that stops it:

Browse the full MCP Attack Database →

Every attack above starts with a tool call. PolicyLayer checks each one against your policy first, so add_inventory_item only ever does what you allow.

SECURE PARTLE →

Other write tools across the catalogue. The same approach applies to each: rate-limit and validate the arguments.

What does the add_inventory_item tool do? +

Add an item to the caller's personal inventory. Authenticated. Required OAuth scope: inventory:write. One creation tool covers all lifecycle states — set status based on the user's intent: "I bought" → owned, "I want" → wanted, "I'm selling" → for_sale. Either product_id (linked to an existing Partle product) or name (freeform) must be set. Not idempotent — each call creates a new row. Args: name: Freeform name for items not yet linked to a Partle product. Either name or product_id must be set. product_id: Link to a canonical Partle product. status: Lifecycle. One of: owned, wanted, for_sale, sold, discarded. Default owned. quantity: How many. Fractional allowed. Default 1. notes: Freeform multi-line text — the dumping ground for anything not modeled as a column: extra URLs, comments, where stored, condition narrative, purpose, source, history, log entries. Markdown is fine. Put extra URLs here, not in another field. acquisition_price: What the user paid. acquisition_currency: Currency of acquisition_price. purchased_at: ISO date (YYYY-MM-DD) when it was acquired. asking_price: When status=for_sale, asking price. asking_currency: Currency of asking_price. condition: Free string — typical: new, like_new, good, fair, poor. external_link: Primary click-through URL only (source listing, vendor page, manufacturer page). Exactly one. Additional URLs go in notes as markdown links. external_id: Stable identifier from the source system, used as a dedup key. Per-user unique when set — same external_id can't appear twice for one user. Format is up to you (e.g. aliexpress:1005004714348221, amazon:order/3024.../line/1, content hash). Leave null for handwritten items. project: Tag for grouping (e.g. "kitchen-renovation"). api_key: Legacy/fallback auth. Returns: The newly-created inventory row (with embedded product if linked), or {"error": ...} on auth/validation failure.. It is categorised as a Write tool in the Partle MCP Server, which means it can create or modify data. Consider rate limits to prevent runaway writes.

How do I enforce a policy on add_inventory_item? +

Register the Partle MCP server in PolicyLayer and add a rule for add_inventory_item: allow, deny, rate-limit, or require approval. Point your MCP client at the PolicyLayer proxy URL and the rule is enforced on every call, before it reaches Partle. Nothing to install.

What risk level is add_inventory_item? +

add_inventory_item is a Write tool with medium risk. Write tools should be rate-limited to prevent accidental bulk modifications.

Can I rate-limit add_inventory_item? +

Yes. Add a rate_limit block to the add_inventory_item rule in your PolicyLayer policy. For example, setting max: 10 and window: 60 limits the tool to 10 calls per minute. Rate limits are tracked per agent session and reset automatically.

How do I block add_inventory_item completely? +

Set action: deny in the PolicyLayer policy for add_inventory_item. The AI agent will receive a policy violation error and cannot call the tool. You can also include a reason field to explain why the tool is blocked.

What MCP server provides add_inventory_item? +

add_inventory_item is provided by the Partle MCP server (https://partle.rubenayla.xyz/mcp/). PolicyLayer sits as a proxy in front of this server to enforce policies before tool calls reach the server.

Enforce policy on every Partle tool call.

Deterministic rules across all 21 Partle tools. Per-identity grants. Full audit log. Live in minutes. Nothing to install.

Free to start. No card required.

4,600+ MCP servers and 31,000+ tools scanned and risk-classified.

// GET IN TOUCH

Have a question or want to learn more? Send us a message.

Message sent.

We'll get back to you soon.