mcpField
S
Sovereign Identity Wallet

Sovereign Identity Wallet

本地服务
github.com安全05 周前更新

关于 Sovereign Identity Wallet

Sovereign Identity Wallet 是面向 MCP Agent 的自托管身份钱包,为所有者与 Agent 提供 DID、授权委托和任务授权,并支持网站验证授权链。私钥在本地加密保存。

主要功能

  1. 01创建所有者与 Agent 身份
  2. 02签发带范围和金额限制的授权
  3. 03生成任务授权凭证
  4. 04验证凭证及多级委托链
  5. 05按受众生成成对 DID

适用场景

  1. 01为 MCP Agent 建立 DID 身份
  2. 02限制 Agent 可执行的授权范围和金额
  3. 03网站验证任务授权及委托链
  4. 04避免不同网站关联同一身份

MCP 相关

它作为 MCP 服务向兼容客户端提供身份创建、授权签发和验证等工具。支持 stdio,也可通过带 Bearer token 的 HTTP 模式提供远程连接。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"tamtunnel-si-wallet": {
"command": "npx",
"args": [
"-y",
"@tamtunnel/si-wallet-mcp"
]
}
}
}
启动命令npx -y @tamtunnel/si-wallet-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@tamtunnel/si-wallet-mcp0.1.3

工具

7

收录的工具列表 · 更新于 2 周前

参数类型必填说明
roleenum否要查询哪种身份owner | agent

详细介绍

si-wallet-mcp

作为 MCP 服务的主权身份钱包。 为任何支持 MCP 的 Agent 提供 DID、所有者→Agent 授权和任务委托凭证—— 这是 AWAS 网站身份验证的底层身份层。

协议: TamTunnel/sovereign-identity — 本钱包实现的 DIDs、代理授权、任务委托凭证和 AWAS 网站绑定。

版本: 0.1.0 · 许可证: Apache-2.0

工具

工具功能
wallet_onboard创建所有者/Agent 身份(如果已存在则返回现有身份)
wallet_did获取某个角色的 DID
issue_grant所有者将权限范围和 USD 限额委托给某个 Agent DID
mint_mandateAgent 为某个网站受众签发任务委托凭证(返回 Authorization: Mandate … 值)。传入 subjectDid,可将权限委托给权限范围/金额更受限的下游 Agent
verify_mandate网站端验证:签名、到期时间、受众、重放、授权绑定、权限范围/金额限制
verify_chain网站端验证多跳委托链(所有者 → … → Agent):逐跳验证签名、绑定、权限收窄和重放
pairwise_did为每个受众生成新的成对 DID(避免跨站关联)

防护措施在服务端强制执行:金额超过 $100 的任务委托凭证需要 confirmOverLimit=true(仅在所有者明确批准后才能设置),验证器 会直接拒绝非规范的 base64url。

快速开始

npm install -g @tamtunnel/si-wallet-mcp   # after publish; or clone and npm install
export SI_WALLET_PASSPHRASE="your passphrase"   # required for signing
si-wallet-mcp                                # stdio mode (default)

状态存储在 ~/.sov-id(可通过 SI_WALLET_DIR 覆盖)。密钥使用 scrypt + AES-256-GCM 加密后静态存储,文件权限为 600。

本地 MCP 客户端(Claude Code、Hermes、OpenClaw、…)

添加到客户端的 MCP 配置中:

{
  "mcpServers": {
    "si-wallet": {
      "command": "node",
      "args": ["/path/to/si-wallet-mcp/server.mjs"],
      "env": { "SI_WALLET_PASSPHRASE": "your passphrase" }
    }
  }
}
Muse(自定义连接器)

Muse 自定义连接器通过可流式传输的 HTTP 连接远程 MCP 服务—— 笔记本电脑上运行的服务无法从 Meta 的云端访问。运行:

export SI_WALLET_PASSPHRASE="your passphrase"
export SI_MCP_TOKEN="$(openssl rand -hex 32)"   # required in HTTP mode
si-wallet-mcp --http --port 8787

将其暴露在公共 HTTPS URL 上(使用你的 VPS、fly.io、Tailscale 等),然后在 Muse 中将该 URL 添加为自定义连接器,并设置 Authorization: Bearer <token>。 默认情况下,服务绑定到 127.0.0.1;仅在 TLS 后方才设置 SI_MCP_HOST=0.0.0.0。 完整指南:DEPLOY.md。

Docker
docker build -t si-wallet-mcp .
docker run -d --name si-wallet \
  -e SI_MCP_TOKEN="$(openssl rand -hex 32)" \
  -e SI_WALLET_PASSPHRASE="your passphrase" \
  -v si-wallet-data:/data \
  -p 127.0.0.1:8787:8787 \
  si-wallet-mcp

有关 fly.io、Tailscale、TLS、入门设置、备份和连接 Meta Muse 的说明,请参阅 DEPLOY.md。

委托演示:所有者 → Muse → Hermes

examples/delegation-chain/ 是一个可运行的示例,证明任务委托凭证可在不同 Agent 和框架间组合使用,无需针对特定组合的连接器:所有者授予 Muse 广泛权限,Muse 向 Hermes 委托权限范围更窄的授权,Hermes 向网站出示叶节点任务委托凭证,网站则验证整条经过权限收窄的委托链。示例会尝试并拒绝四种攻击(权限范围升级、金额升级、篡改、重放)。

node examples/delegation-chain/run.mjs

由谁托管?

每位用户自行托管。 这正是设计初衷。钱包持有私钥,因此没有共享托管实例——那样就属于托管式服务,会违背主权身份中“主权”的含义。

  • 你自己使用: 在你控制的硬件上运行(自己的 Mac、自己拥有的 VPS)。只需一条命令,密钥绝不离开你的设备。
  • 其他用户: 同理——他们运行自己的实例,并让 Agent 连接到该实例。这与 Hermes/OpenClaw 已有的工作方式一致(可自托管)。
  • 无状态验证(使用 verify_mandate,不含重放账本) 是唯一可能共享的部分,即便如此,本地运行也更安全。

任何能访问该服务的人都可以要求它签名。请将持有者令牌视同密码,绝不要在没有 TLS 的情况下暴露 HTTP 端口。

安全说明

  • HTTP 模式在未设置 SI_MCP_TOKEN 时拒绝启动;每个请求都需要 Authorization: Bearer <token>(否则返回 401)。
  • 服务绝不会记录密码短语、密钥或令牌。
  • 使用测试密码短语创建的演示身份必须在实际使用前替换——真实的所有者入门设置需要由你自行完成。
  • 此工具未经独立的密码学审计。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。