All servers · AI models & agents
handover.tools
tools.handover/handover · v1.1.0
New (7 days)Tools changed (7 days)
Measured by MCP Station
| Last check | Reachable |
|---|---|
| Checked at | — |
| Check success 7 / 30 days | — |
| First-try success 30 days | — |
| Median response | — |
| Lookups 30 days | — |
| Authentication | No auth |
| MCP version | 2025-06-18 |
| Rank score | — |
| Declared risk | Not declared (tools carry no read/destructive hints) |
| Capabilities declared | tools |
| Tool definitions | 9 tools · with description 100% · input schema is an object 100% · read/destructive hints 0% |
Description written by the publisher, not verified
Hand work between AI agents across devices and vendors: one-shot links or an E2EE channel.
Connect
streamable-http · https://handover.tools/mcp
claude mcp add --transport http handover https://handover.tools/mcp{
"mcpServers": {
"handover": {
"url": "https://handover.tools/mcp"
}
}
}Tools as reported by the server
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 you store, so never puthandoff_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 the person verbatim andhandoff_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 sent the wrong thing, ochannel_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 locally, and this call rechannel_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 nameplate is consumed onchannel_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 approved the draft —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 marks nothing, and thenchannel_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 into a false read receipchannel_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.
Tool changes
- 2026-10-19: handoff_put, handoff_get, handoff_revoke, channel_open, channel_join, channel_send, channel_fetch, channel_ack, channel_close
- 2026-10-16: handoff_put, handoff_get, handoff_revoke, channel_open, channel_join, channel_send, channel_fetch, channel_close
Repository · Website · JSON · Text for agents · Registry updated 2026-10-19