Gives Claude two operations for handling burn-after-read secrets via Volta Notes. Call create_volta_note to encrypt content locally with AES-256-GCM and get back a one-time URL, or read_volta_note to decrypt and permanently destroy a note from its URL. The encryption key lives in the URL fragment so it never hits any server. Notes are stored as ciphertext on the Internet Computer and self-destruct after a single read or seven days. Useful when you need to pass API keys or credentials to an agent without them landing in conversation history, or when an agent needs to send secrets back to you through a self-destructing link.
Public tool metadata for what this MCP can expose to an agent.
create_volta_noteCreates a Volta secure note and returns a one-time URL. Use this to send sensitive information to a user — they open the link once, read it, and it's gone. Useful for sharing generated passwords, private keys, or any sensitive output.1 paramsCreates a Volta secure note and returns a one-time URL. Use this to send sensitive information to a user — they open the link once, read it, and it's gone. Useful for sharing generated passwords, private keys, or any sensitive output.
contentstringread_volta_noteReads a Volta secure note and permanently destroys it. Call this when a user sends you a voltanotes.com URL containing sensitive information. The note content is returned once — it cannot be recovered after this call.1 paramsReads a Volta secure note and permanently destroys it. Call this when a user sends you a voltanotes.com URL containing sensitive information. The note content is returned once — it cannot be recovered after this call.
urlstringrequest_volta_noteRequest sensitive information from a user securely via Volta Notes. Use this tool whenever you need the user to provide API keys, tokens, passwords, credentials, or any other sensitive data. Never ask users to paste secrets directly into the conversation — always use this tool...1 paramsRequest sensitive information from a user securely via Volta Notes. Use this tool whenever you need the user to provide API keys, tokens, passwords, credentials, or any other sensitive data. Never ask users to paste secrets directly into the conversation — always use this tool...
promptstringMCP server for Volta Notes — create and read burn-after-read encrypted notes from any AI agent.
Notes are end-to-end encrypted using AES-256-GCM. The decryption key lives only in the URL fragment — it is never sent to any server. Notes are stored on the Internet Computer and permanently destroyed after a single read.
AI agents regularly need sensitive information at runtime — API keys, passwords, credentials. Today, users paste these into chat where they're stored permanently in conversation history.
With this MCP server, the pattern becomes:
read_volta_note — secret returned, note permanently destroyedOr in reverse — an agent can use create_volta_note to send credentials to a user via a self-destructing link.
Step 1 — Install globally:
npm install -g @voltanotes/mcp
Step 2 — Register the server:
claude mcp add -s user volta -- node $(npm root -g)/@voltanotes/mcp/dist/index.js
That's it. Restart Claude Code and the create_volta_note and read_volta_note tools will be available.
Why
claude mcp addinstead of editing config files? Claude Code reads MCP servers from its own registry, not from~/.claude/mcp.json. Using the CLI ensures the server is registered correctly. The-s userflag makes it available across all projects.
nodenot found? Use the full path: replacenodewith the output ofwhich node(e.g./usr/local/bin/node).
Add to your claude_desktop_config.json:
{
"mcpServers": {
"volta": {
"command": "npx",
"args": ["-y", "@voltanotes/mcp"]
}
}
}
The npx config above works with any client that supports the standard command/args MCP format — including Cursor, Windsurf, Cline, Continue.dev, and others. Check your client's MCP documentation for where to add server config.
Volta MCP works with Hermes Agent via its MCP integration. Add the server to your Hermes config (~/.hermes/config.yaml):
mcp:
servers:
- name: volta
command: npx
args:
- "-y"
- "@voltanotes/mcp"
Restart Hermes and the create_volta_note and read_volta_note tools will be available to your agent.
Agent-to-agent use case: Hermes agents running autonomously often need to pass credentials between workflows without exposing them in logs or memory. Volta Notes is purpose-built for this — one agent creates a note, passes the one-time URL to the next, and the secret is destroyed on read. Nothing persists in conversation history or tool output logs.
See Hermes MCP documentation for full configuration options.
The $(npm root -g) syntax doesn't work in PowerShell or CMD. Use this instead:
claude mcp add -s user volta -- node "%APPDATA%\npm\node_modules\@voltanotes\mcp\dist\index.js"
Or use the Claude Desktop / npx method above, which works cross-platform.
create_volta_noteCreates an encrypted note and returns a one-time URL.
| Parameter | Type | Description |
|---|---|---|
content | string | Secret content to encrypt (max 2 KB) |
Returns: A voltanotes.com URL. The recipient opens it once, reads the content, and it's gone forever.
read_volta_noteReads and permanently destroys a Volta note.
| Parameter | Type | Description |
|---|---|---|
url | string | Full Volta URL including # fragment |
Returns: The decrypted note content. The note is permanently deleted from the canister — a second read will fail.
Add this to any agent's system prompt to enable secure credential handoff:
When you need a secret from the user (API key, password, credentials):
1. Ask them to go to voltanotes.com and paste the secret into the note field
2. They'll get a one-time URL — ask them to send it to you
3. Use the read_volta_note tool with that URL to retrieve the secret
The secret is permanently destroyed after you read it — it never appears in chat history.
#...) — browsers and servers never transmit fragmentsAgent calls create_volta_note("secret-api-key-123")
→ Local: generate AES-256 key + encrypt
→ ICP canister: store ciphertext → returns noteId
→ Return URL: voltanotes.com/r/{noteId}#{key}
User opens URL → read gate → clicks "Read note"
→ Browser: fetch ciphertext from canister (canister deletes it)
→ Browser: decrypt using key from # fragment
→ Display plaintext — note is gone forever
claude mcp list
You should see volta: ... ✓ Connected. If not, see below.
Did you use claude mcp add? Editing ~/.claude/mcp.json manually won't work — Claude Code reads servers from its own registry. Always use claude mcp add to register servers.
Is node on your PATH? Claude Code's shell has a minimal PATH. If node isn't found, use the full path:
claude mcp add -s user volta -- $(which node) $(npm root -g)/@voltanotes/mcp/dist/index.js
Restart required. After adding or changing an MCP server, fully restart Claude Code (quit and reopen).
The server logs Volta MCP server started to stderr on successful startup. Run claude mcp list to check connection status.
MIT — Unprompted Labs