volta-mcp-server
@voltanotes/mcp
Servidor MCP para Volta Notes: crea y lee notas cifradas de un solo uso desde cualquier agente de IA.
Las notas están cifradas de extremo a extremo utilizando AES-256-GCM. La clave de descifrado reside únicamente en el fragmento de la URL; nunca se envía a ningún servidor. Las notas se almacenan en Internet Computer y se destruyen permanentemente después de una sola lectura.
Por qué
Los agentes de IA necesitan regularmente información confidencial durante la ejecución: claves API, contraseñas, credenciales. Hoy en día, los usuarios pegan esto en el chat, donde se almacena permanentemente en el historial de la conversación.
Con este servidor MCP, el patrón cambia a:
El usuario crea una nota en voltanotes.com y envía la URL de un solo uso
El agente llama a
read_volta_note: se devuelve el secreto y la nota se destruye permanentementeNada confidencial aparece nunca en el historial del chat
O a la inversa: un agente puede usar create_volta_note para enviar credenciales a un usuario a través de un enlace que se autodestruye.
Related MCP server: Vaulted MCP Server
Inicio rápido
Claude Code (CLI y aplicación de escritorio)
Paso 1: Instalar globalmente:
npm install -g @voltanotes/mcpPaso 2: Registrar el servidor:
claude mcp add -s user volta -- node $(npm root -g)/@voltanotes/mcp/dist/index.jsEso es todo. Reinicia Claude Code y las herramientas create_volta_note y read_volta_note estarán disponibles.
¿Por qué
claude mcp adden lugar de editar archivos de configuración? Claude Code lee los servidores MCP desde su propio registro, no desde~/.claude/mcp.json. Usar la CLI asegura que el servidor se registre correctamente. La bandera-s userlo hace disponible en todos los proyectos.
¿No se encuentra
node? Usa la ruta completa: reemplazanodecon la salida dewhich node(por ejemplo,/usr/local/bin/node).
Claude Desktop (Independiente)
Añade esto a tu claude_desktop_config.json:
{
"mcpServers": {
"volta": {
"command": "npx",
"args": ["-y", "@voltanotes/mcp"]
}
}
}Otros clientes compatibles con MCP
La configuración npx anterior funciona con cualquier cliente que admita el formato estándar command/args de MCP, incluyendo Cursor, Windsurf, Cline, Continue.dev y otros. Consulta la documentación de MCP de tu cliente para saber dónde añadir la configuración del servidor.
Hermes Agent (Nous Research)
Volta MCP funciona con Hermes Agent a través de su integración MCP. Añade el servidor a tu configuración de Hermes (~/.hermes/config.yaml):
mcp:
servers:
- name: volta
command: npx
args:
- "-y"
- "@voltanotes/mcp"Reinicia Hermes y las herramientas create_volta_note y read_volta_note estarán disponibles para tu agente.
Caso de uso de agente a agente: Los agentes de Hermes que se ejecutan de forma autónoma a menudo necesitan pasar credenciales entre flujos de trabajo sin exponerlas en registros o memoria. Volta Notes está diseñado específicamente para esto: un agente crea una nota, pasa la URL de un solo uso al siguiente, y el secreto se destruye al leerlo. Nada persiste en el historial de la conversación ni en los registros de salida de las herramientas.
Consulta la documentación de Hermes MCP para ver todas las opciones de configuración.
Windows (Claude Code CLI)
La sintaxis $(npm root -g) no funciona en PowerShell o CMD. Usa esto en su lugar:
claude mcp add -s user volta -- node "%APPDATA%\npm\node_modules\@voltanotes\mcp\dist\index.js"O utiliza el método de Claude Desktop / npx anterior, que funciona en todas las plataformas.
Herramientas
create_volta_note
Crea una nota cifrada y devuelve una URL de un solo uso.
Parámetro | Tipo | Descripción |
| string | Contenido secreto a cifrar (máx. 2 KB) |
Devuelve: Una URL de voltanotes.com. El destinatario la abre una vez, lee el contenido y desaparece para siempre.
read_volta_note
Lee y destruye permanentemente una nota de Volta.
Parámetro | Tipo | Descripción |
| string | URL completa de Volta incluyendo el fragmento |
Devuelve: El contenido de la nota descifrada. La nota se elimina permanentemente del canister; una segunda lectura fallará.
Fragmento de prompt para el agente
Añade esto al prompt del sistema de cualquier agente para habilitar la transferencia segura de credenciales:
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.Modelo de seguridad
El cifrado AES-256-GCM ocurre localmente antes de que se envíe nada al canister
La clave de cifrado existe solo en el fragmento de la URL (
#...): los navegadores y servidores nunca transmiten fragmentosEl canister de ICP almacena solo texto cifrado; incluso si se viera comprometido, todos los datos serían ilegibles
Las notas se destruyen en la primera lectura. Las notas no leídas caducan después de 7 días.
Sin cuentas, sin inicio de sesión, sin seguimiento
Cómo funciona
Agent 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 foreverSolución de problemas
Comprobar si el servidor está conectado
claude mcp listDeberías ver volta: ... ✓ Connected. Si no, consulta a continuación.
El servidor no aparece
¿Usaste
claude mcp add? Editar~/.claude/mcp.jsonmanualmente no funcionará; Claude Code lee los servidores desde su propio registro. Usa siempreclaude mcp addpara registrar servidores.¿Está
nodeen tu PATH? El shell de Claude Code tiene un PATH mínimo. Si no se encuentranode, usa la ruta completa:
claude mcp add -s user volta -- $(which node) $(npm root -g)/@voltanotes/mcp/dist/index.jsSe requiere reinicio. Después de añadir o cambiar un servidor MCP, reinicia completamente Claude Code (cierra y vuelve a abrir).
¿Cómo sé si el servidor se inició?
El servidor registra Volta MCP server started en stderr al iniciarse correctamente. Ejecuta claude mcp list para comprobar el estado de la conexión.
Requisitos
Node.js 18+ (utiliza la API Web Crypto integrada)
Licencia
MIT — Unprompted Labs
Available Tools
2 toolscreate_volta_noteA
Creates 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.
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | The secret content to encrypt and store. Maximum 2,048 characters. Will be AES-256-GCM encrypted before leaving this machine. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full behavioral disclosure burden. It successfully explains the critical one-time/self-destruct nature ('gone' after opening) and return value (one-time URL). Minor gap: doesn't mention expiration timeouts, rate limits, or specific return structure location.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tightly constructed sentences with zero waste: sentence 1 states function+output, sentence 2 explains the usage pattern, sentence 3 provides examples. Information is front-loaded and every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema exists, the description adequately compensates by stating the tool 'returns a one-time URL'. For a single-parameter creation tool, this covers the essential missing output information. Could be improved by specifying URL expiration behavior or exact return format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% coverage with detailed technical description. The description adds semantic value by specifying what content belongs in the parameter ('generated passwords, private keys, sensitive output'), helping the agent map user intent to the 'content' field effectively.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with specific verb 'Creates' + resource 'Volta secure note' and immediately distinguishes the core mechanism ('returns a one-time URL'). This clearly differentiates it from sibling 'read_volta_note' by establishing this as the creation/entry point.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use ('send sensitive information to a user'), describes the complete UX lifecycle ('open the link once, read it, and it's gone'), and provides concrete examples ('generated passwords, private keys'). This gives clear selection criteria against the read sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_volta_noteA
Reads 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.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The full Volta note URL including the #fragment key, e.g. https://app.voltanotes.com/r/abc12345#encryptionKeyHere |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and excellently discloses critical behavioral traits: the destructive nature ('permanently destroys'), one-time access ('returned once'), and irreversibility ('cannot be recovered').
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tightly constructed sentences with zero waste: first states the core action, second provides the usage trigger, and third explains the critical one-time behavioral constraint. Information is front-loaded effectively.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite lacking annotations and an output schema, the description adequately covers the return value behavior ('note content is returned once') and compensates for missing safety annotations by explicitly describing the destruction. Could optionally note authentication requirements or error states.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a detailed example URL in the schema description. The description references the URL in context ('sends you a voltanotes.com URL') but does not add semantic meaning beyond what the schema already provides, meeting the baseline for high-coverage schemas.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verbs ('Reads' and 'destroys') with the resource ('Volta secure note') and clearly distinguishes from sibling tool create_volta_note by emphasizing consumption/destruction versus creation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use guidance ('Call this when a user sends you a voltanotes.com URL containing sensitive information'), though it does not explicitly name the sibling tool as an alternative for creation workflows.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
v1.0.0- First observed
create_volta_note - First observed
read_volta_note
TDQS
Scored across 2 tools
The tools have clearly distinct purposes with no functional overlap: one creates secure notes while the other consumes them. An agent can easily distinguish between generating a new URL versus retrieving and destroying an existing note.
Both tools follow a consistent verb_noun pattern using snake_case (create_volta_note, read_volta_note), with identical resource naming ('volta_note') and parallel grammatical structure.
While two tools falls slightly below the typical optimal range, it is reasonable for this narrowly scoped one-time secret service where only creation and retrieval operations are relevant to the security model.
The tools cover the essential lifecycle (create and read-once-destroy) for secure note sharing. Minor potential gaps include missing expiration configuration or metadata retrieval, though these may be intentionally excluded for security.
Maintenance
Related MCP Connectors
Share text, markdown, code, or HTML as auto-expiring links
Paste short text, get a shareable URL. Read any by slug; create with an API key.
Meet an agent you have not met, exchange messages that expire, and prove it happened. No account.
Deploy HTML and Markdown as live URLs. Create, search, update, and manage pastes from any AI agent.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceSelf-hosted, zero-knowledge encrypted, self-destructing secrets for secure agent-to-agent coordination3AGPL 3.0
- AlicenseAqualityDmaintenanceShare encrypted, self-destructing secrets from your AI agent. Zero-knowledge E2E encryption. Agent-blind input sources (env:, file:, dotenv:) keep secrets out of LLM context.414 npm1MIT
- FlicenseNot gradedqualityDmaintenanceEnables AI agents to create end-to-end encrypted, self-destructing notes that can be securely shared via a one-click link, ensuring secrets are never stored in plain text in chat history.1-
- AlicenseNot gradedqualityAmaintenanceEnables sharing and reading encrypted files (text, images, logs) for AI workflows, with automatic 24-hour expiration and host-blind security.19 npm157MIT