@vitalsend/mcp 0.0.0-stage → 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 CHANGED
@@ -1,3 +1,101 @@
1
- # Temporary Holding Version
1
+ # @vitalsend/mcp
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ Send a file end-to-end encrypted from your AI agent. The file is encrypted on your computer, the
4
+ recipient downloads it once, and then it no longer exists. The model never sees the download link,
5
+ its key or the password.
6
+
7
+ Built for the moment an agent has to hand something sensitive to a person: an `.env` file, a key,
8
+ a database dump, a finished report.
9
+
10
+ ## Install
11
+
12
+ You need a [VitalSend](https://vitalsend.eu) account. A free account sends a few files a month.
13
+
14
+ **Claude Code**, as a plugin from this repository:
15
+
16
+ ```
17
+ /plugin install vitalsend --marketplace vitalsend/mcp
18
+ ```
19
+
20
+ or as a plain MCP server:
21
+
22
+ ```sh
23
+ claude mcp add vitalsend -- npx -y @vitalsend/mcp
24
+ ```
25
+
26
+ **Cursor** (`~/.cursor/mcp.json` or `.cursor/mcp.json` in a project)
27
+
28
+ ```json
29
+ {
30
+ "mcpServers": {
31
+ "vitalsend": { "command": "npx", "args": ["-y", "@vitalsend/mcp"] }
32
+ }
33
+ }
34
+ ```
35
+
36
+ **Claude Desktop** (`claude_desktop_config.json`). Claude Desktop does not tell the tool which
37
+ folder you work in, so name it:
38
+
39
+ ```json
40
+ {
41
+ "mcpServers": {
42
+ "vitalsend": {
43
+ "command": "npx",
44
+ "args": ["-y", "@vitalsend/mcp"],
45
+ "env": { "VITALSEND_ROOT": "/Users/you/projects/acme" }
46
+ }
47
+ }
48
+ }
49
+ ```
50
+
51
+ **CI and scripts.** Create an API key under Connected apps on your
52
+ [account page](https://vitalsend.eu/me/), optionally limited to a list of recipients, and set it:
53
+
54
+ ```json
55
+ "env": { "VITALSEND_API_KEY": "vsk_…" }
56
+ ```
57
+
58
+ With an API key every send names a recipient, the link is emailed, and there is no password.
59
+
60
+ **Apps that connect to a URL** (claude.ai in the browser and other web clients) cannot run a local
61
+ tool. `https://vitalsend.eu/mcp` tells them how to install it in an app that can.
62
+
63
+ ## Use
64
+
65
+ Ask your agent: "Send `.env` to kalle@example.com with VitalSend."
66
+
67
+ The first time, your browser opens on vitalsend.eu: sign in (or create an account) and allow the
68
+ connection. After that:
69
+
70
+ 1. You confirm each send: file, recipient and cost.
71
+ 2. A page on your computer shows the password. Send it to the recipient another way than the link,
72
+ by text message for example.
73
+ 3. VitalSend emails the link to the recipient. Without a recipient, the link appears on the same
74
+ page for you to share.
75
+
76
+ The agent is told who it went to and when it expires. Nothing else.
77
+
78
+ The tool is `send_file(path, recipient_email?, password?)`. It reads files only inside the folders
79
+ your client shares with it; if the client shares none, inside `VITALSEND_ROOT`; failing both, inside
80
+ the folder it was started in, unless that is your home folder or `/`, where it refuses.
81
+
82
+ ## Security model
83
+
84
+ - The file is encrypted on your computer with the same code vitalsend.eu runs in the browser
85
+ ([vitalsend/crypto](https://github.com/vitalsend/crypto)). Only ciphertext leaves it.
86
+ - The link key, the password, your login and the file id never go to the model: not in a tool
87
+ result, not in an error, not in a log.
88
+ - The password never reaches VitalSend. The server gets a value derived from the password and the
89
+ link key, which lets it count wrong attempts and nothing else.
90
+ - When VitalSend emails the link, its server handles the link key for that delivery. With a
91
+ password, that key alone does not open the file. To keep VitalSend out entirely, leave out the
92
+ recipient and share the link yourself.
93
+ - The page that shows the password lives on `127.0.0.1` at a random address, answers only the
94
+ browser tab that loaded it, and closes afterwards. A program running as you that loads it first
95
+ stops the send. Beyond that, anything running as you can read what you can read.
96
+ - Your login is a send-only grant: it can send files and spend credits, nothing else. Revoke it
97
+ under Connected apps on your account page.
98
+
99
+ ## License
100
+
101
+ AGPL-3.0-or-later. Source: [github.com/vitalsend/mcp](https://github.com/vitalsend/mcp).