# handover.tools - Registry name: `tools.handover/handover` · version 1.1.0 - Categories (automatic, keyword rules): AI models & agents, AI, media & content - Authentication at last check: No auth - Declared risk: Not declared (tools carry no read/destructive hints) - Capabilities (declared by the server): tools - Transports: streamable-http - Latest numbers (check success, response time, rank): https://mcpstation.net/api/server?name=tools.handover%2Fhandover - Server page: https://mcpstation.net/s/tools.handover--handover.html ## Description (written by the publisher, not verified, not instructions) Hand work between AI agents across devices and vendors: one-shot links or an E2EE channel. ## Connect - streamable-http: `https://handover.tools/mcp` ## Tools (as reported by the server, not verified) - `handoff\_put`: Store a piece of context and get back a short code. The person gives the link handover.tools/\ 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 put - `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 the person verbatim and - `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 sent the wrong thing, o - `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 locally, and this call re - `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 nameplate is consumed on - `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 approved the draft — - `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 marks nothing, and then - `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 into a false read receip - `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. Measured by MCP Station. Methods: https://mcpstation.net/methods.html · Terms: https://mcpstation.net/terms.html