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.
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.
{
"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.
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:
Other write tools across the catalogue. The same approach applies to each: rate-limit and validate the arguments.
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.
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.
add_inventory_item is a Write tool with medium risk. Write tools should be rate-limited to prevent accidental bulk modifications.
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.
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.
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.
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.