# `ExMCP.Server.ReplayCache`
[🔗](https://github.com/azmaveth/ex_mcp/blob/v1.0.0/lib/ex_mcp/server/replay_cache.ex#L1)

Behaviour for atomically consuming MRTR continuation identifiers.

A replay cache is optional because consuming a token changes ambiguous
network failure semantics. Enable one for resumed handlers that may cause
side effects; otherwise `ExMCP.Server.RequestContext.delivery_semantics` is
explicitly `:at_least_once`.

# `consume`

```elixir
@callback consume(jti :: String.t(), expires_at :: integer(), opts :: keyword()) ::
  :ok | {:error, :replayed | term()}
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
