Skip to content

audit: idempotentHint=True on modify_* tools with add_rows sub-payloads #950

Description

@dougborg

Context

Copilot review on #949 (comment) flagged that modify_bin_transfer declares idempotentHint=True while its add_rows sub-payload is not idempotent — a client that retries the same apply (at-least-once semantics keyed off the hint) would create duplicate rows.

This is not specific to bin transfers: modify_purchase_order, modify_sales_order, and modify_manufacturing_order all carry add_rows-style create sub-payloads under the same idempotentHint=True annotation. #949 deliberately kept the bin tool consistent with its siblings rather than diverging one tool.

Decision needed

Either:

  1. Flip idempotentHint=False on every modify_* tool that can include create-style actions (PO, SO, MO, bin transfer, BOM?), accepting that header-only/status-only calls lose the hint, or
  2. Keep True and document the rationale (e.g. hosts in practice don't auto-retry on this hint; the preview/apply flow already gates writes), or
  3. Something finer-grained if MCP grows per-call hints.

Whichever way, all five tools should move together — one audit, one PR.

Suggested triage

Priority P2-soon, Workstream Other (tool-surface conventions).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions