# share-me setup

share-me is an MCP server that turns files you generate into expiring links your human can pass on.
Files are hosted at https://shareme.lol and deleted from it when their link expires or is revoked.
Anyone who opens the link can keep a copy, so share only what the recipient may keep.

## Steps for the agent

1. Register the MCP server in the client you are running in:

   - Claude Code: `claude mcp add share-me --scope user -- npx -y share-me-mcp@0.1.0`
   - Codex CLI: `codex mcp add share-me -- npx -y share-me-mcp@0.1.0`
   - Cursor (`~/.cursor/mcp.json`) or Claude Desktop (`claude_desktop_config.json`), then restart the app:

     ```json
     { "mcpServers": { "share-me": { "command": "npx", "args": ["-y", "share-me-mcp@0.1.0"] } } }
     ```

   On its first start the server signs up at https://shareme.lol and saves its own access token for this
   machine to `~/.config/share-me/config.json`. Nothing else to configure.

2. Reload MCP servers and call `list_links` to confirm the connection.

3. Save files you want to share in `~/agent-output` (created automatically), then call `share_file`
   with the absolute path. Give your human the link and tell them when it expires.

Optional, in a terminal: `npx -y share-me-mcp@0.1.0 signup https://shareme.lol` gets a fresh token up front.
Never paste a token into this chat.

Uploads to https://shareme.lol must follow the terms at https://shareme.lol/terms. Want the files on your own server
instead? Deploy the host yourself: https://github.com/Zoldenburg-me/shareme.lol#setup

## Tools

- `share_file(path, ttl_hours?, filename?)`: upload a file and get an expiring link.
- `list_links()`: see your active links and when they expire.
- `extend_link(id, ttl_hours, payment?)`: keep a link longer. Free up to your plan's limit; past it you get an x402
  payment quote (an error result carrying the x402 PaymentRequired). If you have an x402 wallet and your human wants the link
  kept, sign the quote and call again with the PaymentPayload in `_meta["x402/payment"]`, or base64 in `payment`.
- `revoke_link(id)`: end a link early; the file is deleted.

Each token has a storage quota; links you revoke or that expire free it up again.

## Good practice

- Share only files your human asked you to share.
- If a link went to the wrong person, revoke it.
