Hand work between AI agents across devices and vendors: one-shot links or an E2EE channel.
Connect Remote server
claude mcp add --transport http handover https://handover.tools/mcp
{
"mcpServers": {
"handover": {
"url": "https://handover.tools/mcp"
}
}
}
{
"servers": {
"handover": {
"type": "http",
"url": "https://handover.tools/mcp"
}
}
}
Settings > Connectors > Add custom connector
URL: https://handover.tools/mcp
Tools 9 found in our last check
handoff_putStore 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 yo…
handoff_getFetch 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 th…
handoff_revokeDestroy 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 se…
channel_openStart 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 loca…
channel_joinSecond 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 nam…
channel_sendRelay 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_fetchUse 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 ma…
channel_ackUse 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 int…
channel_closeEither side can close. Deletes the channel, both keys, and every stored message immediately. The other side's next fetch reports not_found_or_closed.
Details
| Endpoint | https://handover.tools/mcp (Streamable HTTP) |
| First published | 19 Oct 2026 |
| Last updated | 19 Oct 2026 |
| Registry name | tools.handover/handover |
More ai and media servers See all
Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.
