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 分