
Safehold
io.github.Spacetime-Technology由 GitHub 账号 Spacetime-Technology 发布v1.2.0更新于 Oct 24, 2026
Local, encrypted MCP vault for passports, IDs, visas and photos. You control access.
概览
本地加密保险库,让助手在逐字段征得你同意后读取护照号码等身份证件字段。
- 可以做什么
- Safehold 把护照、身份证、驾照、签证和照片以单独加密的文件形式保存在你的机器上。工具支持助手添加、列出、更新和删除证件,并读取护照、身份证、驾照、签证、照片或任意证件类型中的指定字段。每次读取都带一个用途参数,会在征求同意时展示给你,所有访问都会写入加密的访问日志,之后可以查看。内置提示词覆盖证件录入、出行前检查、最小化分享和到期审计。
- 适用场景
- 当你希望助手用你自己的证件填写表单、办理值机或完成身份验证,又不想把护照号码粘贴到对话里、也不想把整个保险库交给助手时,适合安装。它面向需要逐字段授权和访问记录的用户,而不是通用密码管理器或普通 JSON 文件。
- 运行要求
- 通过 npm 包 safehold 以 stdio MCP 服务器在本地运行,需要 Node.js 20 或更高版本,无需构建步骤。仅支持桌面客户端,需在各客户端的 MCP 配置文件中配置。未声明账号、API 密钥或环境变量;证件和密钥保存在本地 safehold 目录下。
安装
在 SourceWeft 中
- 打开 控制台中的 Safehold,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
Safehold
[npm version] [node] [MCP Registry] [License: MIT]
Your identity documents, on your machine, shared only when you say so.
What it is
Safehold is a local MCP server that stores passports, visas, driving licences, and other identity documents. When an AI agent needs your passport number to book a flight, it asks Safehold. You see what's being requested and why, then approve or deny. Nothing leaves your device.
Why it exists
Your identity data is scattered across dozens of services you don't control: banks, airlines, government portals, SaaS products. Each one holds a copy and decides for itself how to store it, whether to sell it, and how long it'll stick around. AI agents make this worse. Anything an agent can access, every API it touches can reach too.
Safehold is the alternative. The agent gets a field value. You get a consent prompt instead of a privacy policy. Your files stay where they are.
Open source, so none of this requires trust.
What it isn't
A few things that get confused with safehold but solve a different problem.
1Password, Bitwarden, op CLI
You can stuff a passport into 1Password. The op CLI can read specific fields. There's even an official 1Password MCP server now. So yes, parts of this overlap.
What's different is the trust model. Once your 1Password vault is unlocked, anything with that session can read anything in it. No per-field consent, no "why are you asking for this?" prompt. The vault is built for humans typing passwords, not for agents pulling structured fields with a stated reason.
Safehold gates each field individually, every time, with a purpose attached.
Browser autofill, Apple Passwords, iCloud Keychain
Works fine if your agent is a browser filling a form. Doesn't help when it isn't. Agents working over APIs, CLI tools, or other MCP servers never see the autofill layer, so you end up copy-pasting from a passwords app into a chat anyway. Safehold gives a non-browser agent a way to request a passport number without that detour.
Apple Wallet, Google Wallet, government digital ID apps
Locked to the platform. Apple Wallet won't hand your boarding pass to a third-party agent. mDL pilots and the EU eIDAS wallet are issuer-controlled and narrow in scope. None of them speak MCP, and none will let an agent on your laptop request a field from your driving licence.
Pasting it into the chat
People do this. They drop their passport number into a system prompt, or type it into a message and trust the agent to handle it. The number then lives in chat history, gets shipped to the model provider, and sticks around in their logs. You also have no record of which agent used it for what.
Safehold keeps the document on disk, encrypted, and only releases the one field the agent asked for. Nothing extra ends up in the conversation.
A plain JSON file plus the filesystem MCP
Tempting if you're a developer. ~/identity.json plus the filesystem MCP is three lines of config and done. It also gives every other agent on the box the same access, with no encryption at rest, no logging, and no consent step. The first time that file shows up in a backup or a screen share, you have a problem.
Persona, Stripe Identity, Onfido, Plaid
KYC vendors. You send them your documents, they store them, and partner services query them on your behalf. The model assumes you don't hold the keys. Safehold takes the other direction: documents stay on your machine and you approve every release.
HashiCorp Vault, AWS Secrets Manager, Doppler, Infisical
Built for service secrets, not personal identity. No human-facing consent flow, no schema for documents, and operationally heavy for someone who just wants their passport readable by an agent on their laptop.
How it works
Safehold runs as a stdio MCP server. Documents go into ~/.safehold/vault/ as individual encrypted files. Every retrieval is logged to ~/.safehold/access-log.enc.
Encryption is XChaCha20-Poly1305 via @noble/ciphers, audited by Cure53, no external dependencies. On first run a 32-byte key is written to ~/.safehold/master.key (mode 0600).
Other MCP clients can request specific fields from your documents. You control what gets shared, every time.
Tools (v1)
Every retrieval tool accepts a purpose parameter. That purpose is shown to you at consent time so you always know why a field is being requested.
Prompts (v1)
Safehold also ships ready-made workflow prompts. These show up as slash commands in MCP clients (Claude Desktop, Cursor, Claude Code, Zed) so common tasks don't have to be re-prompted from scratch.
Prompts don't access your data themselves. They tell the calling agent which Safehold tools to call, in what order, and with what purpose. Every retrieval still goes through the normal consent flow.
Skills
safehold-skills is a companion package of Claude Code skills that turn Safehold from a vault into finished workflows: airline check-in, ESTA applications, KYC forms, and so on. Each skill pairs Safehold with a browser MCP and asks for fields one at a time with a precise purpose string.
Quick Install
Requires Node.js >=20. No build step.
Most clients use the same JSON config — just the file path differs:
Clients with slightly different config formats:
Claude Code (CLI)
VS Code (GitHub Copilot) — uses "servers" key, enable Agent mode in Copilot Chat. Edit .vscode/mcp.json (project) or ~/Library/Application Support/Code/User/mcp.json (global, macOS):
Zed — uses "context_servers" key in ~/.config/zed/settings.json:
OpenAI Codex CLI — TOML format in ~/.codex/config.toml:
Continue.dev — create .continue/mcpServers/safehold.json (enable Agent mode):
Hermes (Nous Research) — YAML format in ~/.hermes/config.yaml:
OpenClaw — uses "servers" key in ~/.openclaw/mcp.json:
Roadmap
get_travel_authorization- ESTA, eTA, UK ETA, and similarget_vaccination_certificate- international vaccination recordsget_residency_permit- BRP, Green Card, and equivalentsget_birth_certificateget_tax_id- NI number, SSN, TFN, and equivalentsget_proof_of_address- utility bills, bank lettersget_travel_insurance
Development
Releasing
Checks that you're on a clean, up-to-date main branch, bumps the version, commits, tags, and pushes. CI publishes to npm.
Built by
来源:README.md,提交 4243403
工具
0版本历史
1- v1.2.0最新Sep 16, 2026
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分