One distinction worth measuring is transport success versus actual operation success.
A tool can return HTTP 200 while making no useful progress. The agent may then repeat the same call with identical arguments.
We're exploring this from an observability angle with KORA Doctor. It can flag repeated tool calls using privacy-preserving fingerprints, but it doesn't block live retries or determine whether caching is safe.
Do your generated MCP tools expose operation-level status or state-change evidence so external tools can distinguish a successful repair from another no-op retry?
Hi! We have our tools try to confirm every write before they end. This can be quite difficult in reality, so we do have a "can't tell" state as well that we're trying to cut down on.