Make a retryable agent action safe in five minutes.
Agent retries are normal. Duplicate invoices, emails, refunds, orders, and tickets are not. This workflow gives equivalent action attempts one stable identity, atomically reserves it, and tells the agent whether execution is safe.
Derive one stable action identity
Send the action name, scope, and identity-defining arguments. Object-key order does not change the fingerprint. Arguments are not stored or echoed.
curl https://api.scrubmytext.com/v1/actions/fingerprint \
-H "Content-Type: application/json" \
-d '{"action":"send_invoice","scope":"production","arguments":{"invoice_id":"inv_42","customer_id":"customer_7"}}'
Fingerprint and reserve atomically
curl https://api.scrubmytext.com/v1/actions/lock-intent \
-H "Authorization: Bearer smt_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"action":"send_invoice","scope":"production","arguments":{"invoice_id":"inv_42","customer_id":"customer_7"}}'
Execute only on an explicit yes
Proceed only when safe_to_execute is true. A retry with equivalent arguments returns the same identity and cannot acquire a second active lock.
After the external action succeeds, call complete_action with the returned key and lock_id. Release only if the external action did not happen.
Use the same workflow through remote MCP
Connect a Streamable HTTP MCP client to the public endpoint. Tool discovery and the free fingerprint_action allowance require no account. Subscription operations send the bearer key in the connection headers.
{
"mcpServers": {
"scrubmytext": {
"url": "https://api.scrubmytext.com/mcp"
}
}
}
What this does—and does not—prove
LockMyAction prevents the same subscribed identity from acquiring two active locks for the same canonical action intent. It does not prove authorization, confirm that an external side effect occurred, replace the destination system's idempotency controls, or make secret arguments anonymous. Do not include passwords, API keys, or secret tokens in the action arguments.
