ncrypted

io.github.Seidl-Family由 GitHub 帳號 Seidl-Family 發布v0.2.2更新於 Oct 24, 2026

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

已驗證Streamable HTTP可網頁執行溝通與協作安全與監控

概覽

AI 產生的概覽

產生一次性、端對端加密的機密連結(密碼、API 金鑰或敏感備註),並讓助理讀取、查詢狀態或銷毀這些連結。

可以做什麼
把密碼、API 金鑰或敏感備註建立為一次性機密連結,可設定有效期限、選擇以電子郵件寄送或加上通關語。讀取一次機密連結,讀取後即永久銷毀。查詢自己建立的機密是否仍待讀取、已讀取、已銷毀或已過期,且不會消耗它。永久銷毀自己建立的未讀機密,使其連結失效。
適用情境
適合助理需要把憑證或敏感內容交給某個人或另一個代理、又不願直接貼進對話的情況;也適合助理接收機密並寫入設定檔或環境變數。還可用於確認送達狀況,或撤銷寄錯地方的連結。
執行需求
可作為遠端端點執行,也可透過 npx 以本機 npm 套件(stdio)執行。超出每日免費額度建立機密時,需要一個持有 USDC 的專用 Base 錢包,透過環境變數 NCRYPTED_WALLET_PRIVATE_KEY 或預設金鑰檔提供;MCP 用戶端需支援 x402 付款。需要連線至 ncrypted API、Base 網路,使用電子郵件功能時還需連線至 Resend。
安裝前請注意
每天超過三個機密後,每個收取 0.005 USDC,從所設定私鑰對應的錢包扣款,建議使用專用的低餘額錢包。讀取連結會永久銷毀該機密,銷毀操作不可逆。以電子郵件寄送連結時,收件位址和含解密金鑰的連結會經該服務與 Resend 傳送。託管端點採伺服器端加密,而非本機加密。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 ncrypted,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/io.github.Seidl-Family%2Fncrypted/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "ncrypted": {
      "type": "http",
      "url": "https://ncrypted.ai/mcp"
    }
  }
}

README

ncrypted

One-time, end-to-end encrypted secrets for AI agents.

An agent encrypts a password, API key or note locally and gets a link that opens exactly once. Share it with a person, email it, or hand it to another agent; reading destroys it. Agents can also request a secret from a user and write it straight into a Vercel env var or .env file without the model ever seeing the value.

The first 3 secrets per day are free; after that each costs 0.005 USDC over x402 on Base. Reads, requests and deliveries are free.

Works with Claude Code, Codex, Cursor, Gemini CLI, any MCP client, the Vercel AI SDK, LangChain and CrewAI (Coinbase AgentKit support is in review). Guides: https://ncrypted.ai/guides

https://ncrypted.ai/s/{id}#{key}                                    └─ decryption key, never sent to the server

Install

You need a dedicated, low-balance Base wallet with some USDC (no ETH needed). Export its key as NCRYPTED_WALLET_PRIVATE_KEY.

Claude Code

/plugin marketplace add Seidl-Family/ncrypted/plugin install ncrypted@ncrypted

Any MCP client (Claude Desktop, Cursor, Codex, …)

json
{ "mcpServers": { "ncrypted": { "command": "npx", "args": ["-y", "@seidl-family/ncrypted-mcp"], "env": { "NCRYPTED_WALLET_PRIVATE_KEY": "0x..." } } } }

Agent Skill: npx skills add Seidl-Family/ncrypted

CLI / SDK

sh
echo "hunter2" | npx ncrypted create --ttl 1h [--email [email protected]] [--passphrase X]npx ncrypted read "https://ncrypted.ai/s/abc#key"
ts
import { Ncrypted } from "ncrypted";const nc = new Ncrypted(); // reads NCRYPTED_WALLET_PRIVATE_KEYconst { link, receiptToken, id } = await nc.create("hunter2", { ttl: 3600 });const value = await nc.read(link); // free, destroys it

How it works

  • Zero-knowledge: AES-256-GCM with a random 256-bit key, derived via HKDF (plus PBKDF2 if you set a passphrase). The server stores ciphertext only.
  • Exactly once: reads use Redis GETDEL, so concurrent readers can't both get it. Unread secrets expire after their TTL (5 min to 7 days).
  • Preview-safe: opening the web page doesn't consume the secret; the recipient has to click Reveal.
  • Pay per secret: x402 exact scheme, USDC on Base, settled only after the secret is stored. The SDK refuses to pay more than $0.01 per request.
  • Email: the creator can email the link once. It passes through the server for that request and isn't stored. Use a passphrase for very sensitive values.

Payments and safety

ncrypted charges a fixed 0.005 USDC per secret created, paid over x402 on Base. Everything else is free: reading, status checks, revoking.

  • Narrow scope: the only payment the plugin can make is ncrypted's own fee for ncrypted_create. It has no tool to send arbitrary amounts, trade, swap, or pay anyone else.
  • Hard cap: the SDK refuses to pay more than 0.01 USDC for a single request, whatever the server asks.
  • Dedicated wallet: payments come from a low-balance wallet the user creates on purpose (npx ncrypted wallet new) and funds themselves. The plugin never asks for, reads or stores the user's main wallet, and the skill tells the agent never to ask for private keys in chat.
  • Visible and explicit: every charge is an explicit ncrypted_create tool call. There are no background or recurring charges.
  • No charge on failure: payment settles through Coinbase's x402 facilitator only after the secret is stored.
  • Zero-knowledge by default: the local MCP server encrypts on the user's machine, so the service stores ciphertext only. The optional hosted endpoint (https://ncrypted.ai/mcp) is clearly labeled as server-side encryption.

Data and services contacted

The plugin's MCP server, the CLI and the skill contact only these services:

ServiceWhat is sentWhen
ncrypted API (https://ncrypted.ai, Vercel + Upstash Redis)Ciphertext, IV, salt, passphrase flag and TTL. Never the key, passphrase or plaintext.Creating, reading, checking status of or burning a secret
Coinbase x402 facilitator / Base networkA signed USDC payment authorization (payer address, amount, payee)Creating a secret (0.005 USDC)
Base public RPC (mainnet.base.org)The payer wallet addressncrypted_wallet / ncrypted wallet balance checks
Resend, via the ncrypted APIRecipient email address, the share link (which includes the key) and an optional note. Relayed once and not stored by ncrypted.Only when the user asks to email a link

Retention: ciphertext is deleted on first read, when burned, or at expiry (at most 7 days). Receipt metadata is deleted 7 days after expiry. No analytics, no cookies. Details: privacy policy.

Repo layout

PathWhat
apps/webNext.js app on Vercel: API, viewer page, llms.txt, openapi.json
packages/sdkncrypted on npm: crypto, client, CLI
packages/mcp@seidl-family/ncrypted-mcp on npm: stdio MCP server
skills/ncryptedAgent Skill (SKILL.md)
plugins/ncryptedClaude Code plugin; .claude-plugin/marketplace.json lists it
server.jsonMCP Registry manifest (published by .github/workflows/mcp-registry.yml)

Development

sh
npm installnpm test                       # crypto unit testscp apps/web/.env.example apps/web/.env.local   # set NCRYPTED_PAY_TOnpm run dev                    # in-memory store when Redis isn't configurednpm run build && npm run e2e   # needs .env.e2e with a funded Base Sepolia wallet

After editing skills/ncrypted/SKILL.md, run npm run sync:skill.

Tool-selection evals: ./scripts/run-evals.sh runs evals/ (14 cases, mocked MCP tools, ~$2.50) against a temporary copy of the plugin. Re-run after changing tool descriptions or the skill, and refresh evals/mocks/ncrypted/_tools.json from tools/list when tools change.

On each MCP release, bump the pinned version in Dockerfile, plugins/ncrypted/.mcp.json, plugins/ncrypted/package.json (then npm install --package-lock-only there) and gemini-extension.json (the Claude directory rejects @latest), then run the "Publish to MCP Registry" workflow.

來源:README.md,提交 613b169

工具

4

ncrypted_create

Create one-time secret

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.

輸入參數secret必填passphrasettl_seconds

ncrypted_read

Read one-time secret

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.

輸入參數link必填passphrase

ncrypted_status

Check one-time secret status

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.

輸入參數id必填receiptToken必填

ncrypted_burn

Burn one-time secret

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.

輸入參數id必填receiptToken必填

版本歷史

2
  1. v0.2.2最新Oct 17, 2026
  2. v0.2.1Oct 16, 2026

評分

已滿足適用檢查項的 100%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分