SEAL MCP (sealnet-mcp)

Servidor MCP local para que agentes de IA compartan y reciban archivos cifrados del lado del cliente a través de SEAL, con enlaces de expiración y revocación.

Documentación

Instalación

npx -y sealnet-mcp

Sin configuración: el primer inicio crea su propia identidad

Regístralo con tu host MCP, ya sea Claude Desktop, Claude Code, Cursor, Cline o cualquier otro compatible con MCP:

{
  "seal": {
    "command": "npx",
    "args": ["-y", "sealnet-mcp"]
  }
}

Los valores predeterminados de producción están integrados (backend api.seal.net, enlaces en seal.net), por lo que no se necesitan variables de entorno. Los despliegues autoalojados configuran SEAL_MCP_BACKEND_URL y SEAL_MCP_PUBLIC_HOST.

Herramientas

HerramientaPropósito
seal_share(path, mode?, expire?, to?, tier?)Entrega al usuario u otro agente un archivo o carpeta de cualquier tamaño. Modo predeterminado: traspaso.
seal_request(what, kind?, where_url?, wait?)Solicita al usuario un archivo o secreto: un diálogo del sistema en su computadora, o una página de seal.net. Devuelve una ruta de archivo, nunca el valor.
seal_open(url, mode?, dir?)Lee metadatos (el predeterminado: no descarga nada, no usa contador), guarda en disco (archivo), o devuelve texto pequeño en línea.
seal_list()Lista solo los sellos creados por este servidor MCP.
seal_revoke(handle)Revoca mediante un identificador opaco. El modelo nunca conoce el ID de sello en bruto.

Traspaso, reenvío, solicitud

Traspaso (predeterminado): el enlace de compartición se entrega mediante el portapapeles del sistema (o un archivo local 0600 en máquinas sin interfaz); la clave está dentro del enlace, no hay contraseña separada. El resultado de la herramienta que ve el modelo contiene solo un identificador opaco y un recibo, por lo que no puede filtrar un enlace que nunca recibió.

Reenvío (opt-in explícito): el modelo recibe un enlace que solo el titular de la clave X25519 dada puede abrir (otro agente imprime su clave con sealnet-mcp pubkey o seal keygen). Con protecciones: TTL ≤ 30 minutos, lectura única, clave del destinatario requerida. Cada reenvío se escribe en el registro de auditoría cifrado.

Solicitud: el modelo te pide un archivo o secreto con seal_request. En tu computadora se abre un diálogo del sistema; en otros lugares obtienes una página de seal.net que muestra los mismos tres emojis que el chat. La respuesta se guarda en un archivo 0600, y el modelo obtiene su ruta, nunca el valor.

Más de 1 GB: un sello contiene 1 GB gratis. Para un archivo más grande, seal_share devuelve un enlace de pago para un nivel (desde $9); pagas una vez con tarjeta y la subida continúa en el mismo sello.

Estado y subcomandos

Todo el estado vive cifrado (Argon2id → AES-256-GCM) en ~/.config/seal-mcp/state.json: tu identidad X25519, identificadores de sello con tokens de propietario y el registro de auditoría.

sealnet-mcp serve              # default — stdio MCP server (what hosts run)
sealnet-mcp serve --ephemeral  # keep nothing on disk
sealnet-mcp init               # optional: set it up with a passphrase you choose
sealnet-mcp pubkey             # print this server's X25519 public key
sealnet-mcp doctor             # diagnose keychain / state perms / backend reachability
sealnet-mcp reset --force      # wipe state + keychain entry

Sin llavero (un contenedor, CI): el servidor se ejecuta de forma efímera, los identificadores viven hasta que se reinicia, y la expiración del sello no depende de ello. SEAL_MCP_PASSPHRASE mantiene el estado en disco en su lugar, un opt-in explícito que registra una advertencia. Los archivos de frase de contraseña en texto plano se rechazan por diseño.