Thanks Mike, you're right, and this was a real bug in the default rather than an edge case. The log had no expiry, so with ["*"] a deliberate repeat a week later was answered with the first result and nothing happened, which is worse than a duplicate because the agent thinks it worked. The README's "nothing legitimate is ever refused" hid that: it wasn't refused, it was silently replayed.
Fixed in mcp/v0.6.0: policies now have a replay_window, 10 minutes by default for ["*"] since that identity is only a guess. After the window, the same arguments are a new operation with a new key, so a server that deduplicates on the key doesn't swallow it either. An unknown outcome never expires, since that would bring back the double charge. I went with a window rather than a run id because a restart after a crash starts a new run, and that's exactly the retry that has to be recognised.
The marker idea is good. It turns "unknown, go check" into a lookup, which is the part I most want to improve. The limits I see are that it needs a free-text field and changes the caller's arguments, and that search indexing lags, so "not found" isn't proof. As an opt-in per tool, with the lookup configured alongside it, I think it works. Would you use it that way?