ncrypted

One-time, end-to-end encrypted secrets for agents. 0.005 USDC per secret via x402.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
100%
Naming quality
80%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~956Tokens (tool definitions)
~1.2 KBTypical response size
Moderate attention impact (0.75% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "ncrypted": {
      "command": "npx",
      "args": [
        "@seidl-family/ncrypted-mcp"
      ]
    }
  }
}

Runnable packages

npm@seidl-family/ncrypted-mcp0.2.2stdio

Remote endpoints

https://ncrypted.ai/mcpstreamable-http

What it can do

Tool inventory

Tools (4)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟡ncrypted_create(secret, ttl_seconds, passphrase)

Store a password, API key or sensitive note as a one-time link that self-destructs after a single read. The first 3 per day are free (TTL up to 24h); after that each costs 0.005 USDC, paid via x402 on Base (your MCP client must support x402). Share the link with a person or another agent; never echo the secret in chat. Returns { link, id, receiptToken, expiresAt }; keep id and receiptToken to check delivery (ncrypted_status) or revoke the link (ncrypted_burn). Hosted mode: this server encrypts the secret for you, so it sees the plaintext briefly over TLS (never stored or logged). For end-to-end, zero-knowledge encryption run the local MCP server `npx -y @seidl-family/ncrypted-mcp` instead.

Input Schema

{
  "type": "object",
  "properties": {
    "secret": {
      "type": "string",
      "minLength": 1,
      "maxLength": 65536,
      "description": "The sensitive value to share. Max 64 KB."
    },
    "ttl_seconds": {
      "description": "Expiry if never read. Default 86400 (24h), max 7 days.",
      "type": "integer",
      "minimum": 300,
      "maximum": 604800
    },
    "passphrase": {
      "description": "Optional second factor the recipient also needs. Share it through a different channel.",
      "type": "string"
    }
  },
  "required": [
    "secret"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴ncrypted_read(link, passphrase)

Open an ncrypted link (https://.../s/{id}#{key}) and return the secret. This destroys it permanently. Free. Only use the value for the task at hand and do not repeat it in chat. To check whether someone opened a link you created, use ncrypted_status instead (it doesn't consume anything). Hosted mode: this server decrypts the secret for you, so it sees the plaintext briefly over TLS (never stored or logged). For end-to-end, zero-knowledge encryption run the local MCP server `npx -y @seidl-family/ncrypted-mcp` instead.

Input Schema

{
  "type": "object",
  "properties": {
    "link": {
      "type": "string",
      "format": "uri",
      "description": "The full ncrypted link including the #key fragment."
    },
    "passphrase": {
      "description": "Required only if the sender set a passphrase.",
      "type": "string"
    }
  },
  "required": [
    "link"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢ncrypted_status(id, receiptToken)

Check whether a secret you created has been opened yet, without consuming it. Returns { status, expiresAt, readAt? } where status is pending (not opened), read, burned or expired. Use it to confirm delivery, or before deciding to ncrypted_burn a link. Only works for secrets you created (needs their receiptToken); to open a link, use ncrypted_read. Free.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "The secret's id, returned as `id` by ncrypted_create."
    },
    "receiptToken": {
      "type": "string",
      "description": "The creator's receipt token, returned as `receiptToken` by ncrypted_create. Only the creator has it; the link alone isn't enough."
    }
  },
  "required": [
    "id",
    "receiptToken"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴ncrypted_burn(id, receiptToken)

Permanently destroy an unread secret you created, so its link stops working (e.g. it was sent to the wrong place or is no longer needed). Irreversible. Returns { burned: true } if it was destroyed, or { burned: false, status } if there was nothing left to destroy because it was already read, burned or expired; if it was already read, the recipient has the value, so rotate the credential. Only works for secrets you created (needs their receiptToken). Free.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "The secret's id, returned as `id` by ncrypted_create."
    },
    "receiptToken": {
      "type": "string",
      "description": "The creator's receipt token, returned as `receiptToken` by ncrypted_create. Only the creator has it; the link alone isn't enough."
    }
  },
  "required": [
    "id",
    "receiptToken"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded4 tools