Release a lease
lease_releaseRelease a lease you hold so the next worker can take it immediately instead of waiting for the TTL. FREE. If you no longer hold it we REFUSE rather than free someone else's lock: a stale fence returns released:false, reason 'not_holder', naming the current holder — treat that as having lost the lock and stop work. An already-expired lease returns released:false, reason 'expired'. Neither is an error you can retry away; both mean the lock is not yours. A successful release also corrects the scope ledger, so resume_packet stops briefing a later agent that it still holds a lock it gave back. FREE — this tool never charges. Authenticate with Authorization: Bearer , or pass agent_key as an argument if your host cannot set headers. Equivalent HTTP route: POST /v1/lease/release.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | The leased key. Example: 'queue/orders'. | |
| fence | Yes | The fence token from lease(). Required, and checked exactly: a stale one is refused, never honoured. Each acquisition's token is an independent draw, so the one you were given for an earlier generation of this key does not become the current one by adding to it. The example below is a shape, not a usable value. Example: '3170294857216913'. | |
| holder | Yes | The holder id that owns the lease. Example: 'worker-3-6f2a91'. | |
| agent_key | No | Your agent_secret, if your MCP host cannot set the Authorization header. Prefer the header. |