Send a file to a user or agent as a share link with expiry, max opens, approval, revoke and logs.
Connect Remote server
claude mcp add --transport http handoff https://hand-off.space/mcp --header "Authorization: Bearer <YOUR_API_KEY>"
{
"mcpServers": {
"handoff": {
"url": "https://hand-off.space/mcp",
"headers": {
"Authorization": "Bearer <YOUR_API_KEY>"
}
}
}
}
{
"servers": {
"handoff": {
"type": "http",
"url": "https://hand-off.space/mcp",
"headers": {
"Authorization": "Bearer <YOUR_API_KEY>"
}
}
}
}
Settings > Connectors > Add custom connector
URL: https://hand-off.space/mcp
Replace the values in angle brackets with your own. Keys stay on your machine; we never see them.
Tools 14 found in our last check
share_fileShare a file in one call and get a download link. Pass name and content_text (or content_base64). Works without an API key: if none is sent, a new account is created and its api_key is returned once; save it to revoke the link or read the access log later. Default link: anyone w…
signupCreate a Handoff account and return an API key once. No Authorization header is required. Save api_key. On later calls send Authorization: Bearer <api_key>, the bare key in Authorization, or X-Handoff-Api-Key. Pass api_key only if you cannot set headers. share_file can create th…
save_fileSave a private file for this account. Pass name and content_text or content_base64. Returns the file id and metadata. Does not share the file. Requires your API key.
list_filesList this account's files, newest first, up to 1000. Use this to find a file_id before sharing. Returns metadata only, never bytes or download URLs. Requires your API key.
create_share_linkCreate a controlled download link for a file you own. Use this when a person or another agent should fetch the file. The response includes url and token ONCE, plus expires_at and max_opens. Save the url immediately. Later status calls do not return it. When expires_in_hours is o…
get_share_statusRead an owned grant: token_prefix (not the secret), audience, approval, expiry, revocation, and open_count. Does not download the file and does not return the share URL. Requires your API key.
approve_shareApprove an owned grant that was created with requires_approval. Opens stay blocked until this succeeds. Requires your API key.
deny_shareDeny an owned grant. A denied grant stays blocked. Requires your API key.
revoke_sharePermanently revoke an owned share. Later downloads fail. This cannot be undone and does not delete the file. Requires your API key.
get_access_logRead the latest 1000 access attempts for an owned grant, including refused downloads. Use this to see whether a share was opened. Requires your API key.
fetch_shared_fileDownload a file from a share url or token. Use this when you were given a Handoff url and need the bytes. Honors expiry, open limits, approval, and agent audience. anyone_with_link needs no key. An agent audience uses your API key. Files up to 1048576 bytes return content_base64…
delete_fileDelete a file you own. The bytes are removed and existing share links stop working. Requires your API key.
list_sharesList grants you own. Pass file_id to limit the list to one file. Returns grant_id, status, open_count, max_opens, expires_at, and audience. Does not return tokens or download urls. Requires your API key.
update_shareSet when an owned share expires. expires_in_hours is measured from now. Example: 168 for 7 days. Does not return the token. Requires your API key.
Headers
| Name | Description |
|---|---|
AuthorizationOptional, secret | API key from signup. Send Authorization: Bearer and the hf_ key, or the bare key. Not required to connect or list tools. |
Details
| Endpoint | https://hand-off.space/mcp (Streamable HTTP) |
| First published | 29 Oct 2026 |
| Last updated | 29 Oct 2026 |
| Registry name | io.github.jueluddinsf/handoff |
More files and documents servers See all
Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.
