save-forever-mcp 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,52 @@
1
+ # save-forever-mcp
2
+
3
+ An [MCP](https://modelcontextprotocol.io) server that gives any MCP host (Claude Desktop, Cursor, agent apps) two tools:
4
+
5
+ - **`archive_file`** — permanently store a file on **Arweave**, **end-to-end encrypted**, paying a few cents in USDC via [x402](https://x402.org). The file is encrypted *locally* before upload (zero-knowledge — the service can't read it). Returns a permanent `archive_id` + Arweave tx and a **recovery phrase**.
6
+ - **`retrieve_archive`** — pay $0.01 to fetch a previously archived file and decrypt it locally (wallet by default, or a recovery phrase).
7
+
8
+ It calls the live [Save Forever](https://saveforever.xyz) API.
9
+
10
+ ## Setup
11
+
12
+ Add it to your MCP host config (e.g. Claude Desktop `claude_desktop_config.json`):
13
+
14
+ ```json
15
+ {
16
+ "mcpServers": {
17
+ "save-forever": {
18
+ "command": "npx",
19
+ "args": ["-y", "save-forever-mcp"],
20
+ "env": {
21
+ "SAVE_FOREVER_WALLET_PRIVATE_KEY": "0xYOUR_FUNDED_HOT_WALLET_KEY",
22
+ "SAVE_FOREVER_NETWORK": "base"
23
+ }
24
+ }
25
+ }
26
+ }
27
+ ```
28
+
29
+ ### Wallet & spending safety
30
+
31
+ The server pays x402 charges from a wallet **you** configure — it is never custodied by the service.
32
+
33
+ - **Use a DEDICATED, low-balance hot wallet.** Fund it with only the USDC you're willing to spend autonomously. **Its balance is your hard cap.** Never use a wallet holding significant funds.
34
+ - `SAVE_FOREVER_MAX_USD` (default `1.00`) — per-call spend cap. A quote above this is **refused before paying**. Raise it to archive large files.
35
+ - `SAVE_FOREVER_MAX_OPS` (default `50`) — paid operations per server session (loop guard).
36
+
37
+ ### Env vars
38
+
39
+ | Var | Required | Default | Purpose |
40
+ |---|---|---|---|
41
+ | `SAVE_FOREVER_WALLET_PRIVATE_KEY` | ✅ | — | Funded hot wallet (USDC on Base) used to pay. |
42
+ | `SAVE_FOREVER_NETWORK` | | `base` | `base` (mainnet) or `base-sepolia`. |
43
+ | `SAVE_FOREVER_API_URL` | | the live API | Override the Save Forever endpoint. |
44
+ | `SAVE_FOREVER_MAX_USD` | | `1.00` | Per-call spend cap (USD). |
45
+ | `SAVE_FOREVER_MAX_OPS` | | `50` | Paid ops per session. |
46
+ | `SAVE_FOREVER_RECOVERY_DIR` | | cwd | Where recovery phrases / retrieved files are written. |
47
+
48
+ ## How it works
49
+
50
+ Encryption is client-side AES-256-GCM with a random data key, wrapped under both your wallet signature (primary) and a recovery phrase (backup). The server only ever receives ciphertext + the two wrapped keys; it can never decrypt. See the [Save Forever docs](https://saveforever.xyz/llms.txt).
51
+
52
+ > The recovery phrase is the only backup if you lose your wallet, and it is **not** stored by the service. `archive_file` returns it and also writes it to a local file — keep it safe.