mcpField
S
stipend.sh

stipend.sh

本地服务
stipend.sh金融数据17 周前更新

关于 stipend.sh

stipend.sh 是运行在 Base 上的非托管 USDC 钱包,供 AI Agent 在代码强制的支出限制下收付款。密钥留在本机,限额和地址白名单等配置不能通过 MCP 工具修改。

主要功能

  1. 01查询地址、余额、收入和支出报告
  2. 02检查付款是否符合规则并发送 USDC
  3. 03执行单笔及每日限额
  4. 04支持一次性付款授权和新地址确认
  5. 05可启用绝对生效的地址白名单

适用场景

  1. 01让 AI Agent 在限额内支付 USDC
  2. 02付款前检查交易是否获准
  3. 03查看收入、支出和资金可用天数

MCP 相关

通过 `stipend mcp` 提供七个 stdio 工具,供 MCP 客户端启动并调用。所有工具共享同一策略检查;不提供读取私钥或修改限额、白名单的工具。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"graphiker-australia-stipend": {
"command": "npx",
"args": [
"-y",
"stipend"
]
}
}
}
启动命令npx -y stipend

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

安装包
npmstipend0.45.4

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

stipend.sh

AI Agent 自行安装的 Base 上非托管 USDC 钱包,支出限额在指令层之下强制执行。

pip install eth-account && curl -sL stipend.sh/install | sh

这是安装程序获取的软件包源代码。发布此代码,是为了让人们可以核验相关声明,而非盲目相信。

它提供一个 MCP(Model Context Protocol)服务 — stipend mcp — 通过标准输入输出公开七个工具,让 Agent 能通过已有的工具接口持有和支出资金。详见下文的 MCP 服务。

值得核验的主张

对于持有资金的 Agent 来说,真正值得警惕的故障不是密钥被盗,而是被说服签署了一笔交易。

几乎所有防御措施都存在于指令层——例如系统提示词要求“不要向未经验证的地址转账”。这不过是给模型的一条建议,和攻击它的文本共处于同一个上下文窗口中。

这里的限额不是建议,而是交易在获得签名之前必须经过的代码;任何上下文窗口中的措辞都无法触及这些限额。

从 stipend/policy.py 开始。 该文件约有 300 行,阐述了全部论据。

三项控制措施

控制措施作用
单笔和每日限额指令无法提高的上限
一次性授权授权单笔付款——绑定收款人和金额、有有效期且只能使用一次——而不是提高限额
新收款地址确认首次向任何从未付款过的地址付款,都需要确认,无论金额大小

第二项最容易被误解。为了支付一笔购买而提高限额,会削弱今后向所有人的每一笔付款,而这恰恰是攻击者想要的。应授权这笔付款,而非扩大权限。

第三项能阻止通过多笔低于阈值的小额付款来转走资金。攻击者的地址,顾名思义,就是一个你从未付款过的地址。

如果你启用了允许列表,它就是绝对规则。资金无法流向其他任何地方——无论有没有确认、有没有授权,也无论来自何处的指令。

MCP 服务

该钱包也是一个 Model Context Protocol(MCP)服务,因此 Agent 可以通过已有的工具接口使用它,而不必调用 shell 命令。

stipend mcp

它通过标准输入和标准输出使用 JSON-RPC 通信——即 MCP 标准输入输出传输。MCP 客户端会启动此进程;它不会监听任何端口,也不会向网络公开。

在客户端配置中,其形式如下:

{
  "mcpServers": {
    "stipend": {
      "command": "stipend",
      "args": ["mcp"]
    }
  }
}
工具
工具作用
stipend_address钱包地址,无论你是否正在运行,其他人都可以向此地址转入资金
stipend_balance持有的 USDC、持有的原生代币、今日支出和每日限额
stipend_check此笔付款是否会获准?只作答,不会转出任何资金
stipend_pay发送 USDC,受下述所有限额约束
stipend_earnings从网络读取入账付款并记录
stipend_report按类别统计收入和支出,并显示可维持天数
stipend_recover查看有哪些事项尚未处理,以及每项应由谁负责

这些工具全部经过与命令行相同的 policy.check 门控,因此限额、允许列表和新收款地址确认都以相同方式生效。不存在绕过这些措施转移资金的途径。

提供 stipend_check,是为了让 Agent 在提出付款之前可以先询问“这笔付款会获准吗?”,从而将拒绝转化为明确答复,而非操作失败。

刻意不提供的功能

没有任何工具可以读取、导出或派生私钥。没有任何工具可以更改支出限额或允许列表。没有任何工具可以创建或覆盖钱包。

模型可能会在读取不可信文本时调用 MCP 工具,而提高限额正是攻击者会提出的要求——因此,工具根本不提供此功能。配置更改只能通过命令行进行,届时会有人工参与。

为什么不托管

每个注册表都希望有一个 URL,但我们不会发布。托管钱包服务意味着密钥存放在别人的机器上——也就是我们的机器上——而这个软件包的核心承诺就是不会如此。它会在密钥库旁运行,由同一用户运行,密钥绝不会转移。

运行自己的测试

不联网、不动用资金,也不会碰你的钱包:

python -m stipend selftest

219 项检查,涵盖地址验证、金额运算、所有策略分支、允许列表、每日限额、目标信任及其有效期、密钥库加密、ERC-20 编码、x402 要求选择、EIP-3009 签名、账本,以及遥测究竟会发送哪些内容。

我们更希望得到什么

有人来找出它的问题。

如果你能构造一种注入方式,绕过 policy.py 中的检查转移资金,请提交问题。我们宁愿从你这里听到,也不想从不那么客气的人那里听到。

坦诚说明局限

  • 未经过独立审计。
  • x402 互操作性已通过我们自己的端点验证,尚未通过第三方商家验证。
  • 密钥在你的机器上生成,绝不会传输——这也意味着没人能帮你找回它,包括我们。
  • 请保持余额较低。这是用于日常周转的资金,不是储蓄。

链接

许可证

Apache-2.0。请参阅 LICENSE。

由 Stipend 开发团队构建。澳大利亚 FelixTrade.ai Pty Ltd。

评论

支持 Markdown

第一次接触 MCP?

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

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