handover.tools
by handover.tools in Other
Hand work between AI agents across devices and vendors: one-shot links or an E2EE channel.
https://handover.tools/mcp- Tools
- 9
- open to any client
- Uptime
- 97.0%
- last 30 days
- Response time
- 2.7 s
- 5.3 s slowest 5%
- Last check
- Passed
- 6 h ago, next any minute now
Reliability
Status and outage history · Atom feed · Watch with other listings
How to connect
Add it to any MCP client that supports remote servers.
{
"mcpServers": {
"handover-tools": {
"type": "http",
"url": "https://handover.tools/mcp"
}
}
}9 tools
- handoff_put
Store a piece of context and get back a short code. The person gives the link handover.tools/<code> to an agent on another device and it can fetch the content — no copy-paste of long text. The code is 8 letters, easy to type on a phone. NOT ENCRYPTED: the server can read what…
- handoff_get
Fetch content stored by handoff_put using its 8-character code. The code is case-insensitive and hyphens are ignored, so 'kvmtrhxp' and 'KVMT-RHXP' are the same; the person may give it as a link like handover.tools/kvmtrhxp, and passing that is fine too. Return the content to…
- handoff_revoke
Destroy content stored by handoff_put right now, before its TTL runs out and whether or not it has been fetched. Requires the revoke_key returned by handoff_put — the person fetching with the short code cannot revoke, only the writer can. Use this the moment someone says they…
- channel_open
Start pairing two agents on different machines for a multi-round exchange (e.g. one explores, the other studies and asks follow-up questions). Use the local client at https://handover.tools/client/channel.py — do not call this by hand. The client generates a secret password…
- channel_join
Second half of pairing, run by the local client at https://handover.tools/client/channel.py. Send only the first 3 characters of the spoken code (the nameplate) plus this side's SPAKE2 message; the other 5 characters are the password and must never be sent to the server. The…
- channel_send
Relay one ciphertext to the other side of a paired channel. The ciphertext must come from the local client at https://handover.tools/client/channel.py; do not call this by hand, and never base64-encode plaintext into it (that is rejected). Only send after the person has seen and…
- channel_fetch
Use the local client at https://handover.tools/client/channel.py rather than calling this by hand: it returns ciphertext only the client can decrypt. Returns the peer's messages this side has not fetched yet. Call only when the person asks. Clients fetch with peek=true, which…
- channel_ack
Use the local client at https://handover.tools/client/channel.py rather than calling this by hand. After a fetch with peek=true, the client calls this with the highest sequence number it processed. That is what the peer sees as read, so a response lost in transit never turns…
- channel_close
Either side can close. Deletes the channel, both keys, and every stored message immediately. The other side's next fetch reports not_found_or_closed.
Security scan
No findings
We scan names, descriptions and tool definitions for hidden instructions and other prompt-injection patterns.
Recent checks
| When | Result | HTTP | Time |
|---|---|---|---|
| 6 h ago | Passed | 200 | 149 ms |
| 17 h ago | Passed | 200 | 135 ms |
| 28 h ago | Passed | 200 | 150 ms |
| 39 h ago | Passed | 200 | 2.7 s |
| 2 days ago | Passed | 200 | 2.0 s |
Show 10 older checks
| 2 days ago | Passed | 200 | 5.9 s |
| 3 days ago | Passed | 200 | 2.3 s |
| 3 days ago | Passed | 200 | 2.6 s |
| 4 days ago | Passed | 200 | 133 ms |
| 4 days ago | Passed | 200 | 2.5 s |
| 4 days ago | Passed | 200 | 2.5 s |
| 5 days ago | Passed | 200 | 2.5 s |
| 5 days ago | Passed | 200 | 3.2 s |
| 6 days ago | Passed | 200 | 2.6 s |
| 6 days ago | Passed | 200 | 2.1 s |