项目介绍
MCP 服务 · 2026-11-09 更新 · 本站尚未实测
stipend 是 Base 网络上的非托管 USDC 钱包,面向 AI 代理使用。README 说明,该钱包由 AI 代理自行安装,并把消费限制强制执行在“指令层之下”:限额不是系统提示里的建议,而是交易在签名前必须经过的代码逻辑。
仓库同时提供命令行工具和 MCP(Model Context Protocol)服务器(stipend mcp),代理可以通过已有的工具接口持有并花费资金。项目作者表示,公开源码是为了让外界能够核对其宣称,而不是仅凭信任接受。
待核验事项
- 发行版页面当前不可访问(资料显示 GitHub HTTP 404),安装脚本实际获取的内容与版本需核验。
- npm 包
stipend在 server.json 中标注版本 0.46.1,与 README 安装方式的关系待核验。 - 项目是否收费、许可证对商业模块的覆盖范围待核验。
核心能力
点击能力名称查看输入、输出和原文依据。
- 非托管钱包:私钥在用户本机生成,README 称其从不传输,因此包括项目方在内也没有人能为用户找回私钥。
- 三重代码级控制:单笔与每日消费上限、一次性支付授权(绑定收款方、金额、限期且单次有效)、新收款地址首次付款确认;如启用允许列表,则资金只能流向列表内地址。
- MCP stdio 服务器:提供
stipend_address、stipend_balance、stipend_check、stipend_pay、stipend_earnings、stipend_report、stipend_recover七个工具。 - 付款前预检:
stipend_check可在不实际发送资金的情况下回答“该笔付款是否会被允许”。 - 刻意不暴露的能力:任何工具都不能读取、导出或推导私钥,也不能修改消费限额、允许列表或创建、覆盖钱包,相关配置只能在有真人参与的命行中修改。
实际应用场景
适用场景
适合需要让 AI 代理在 Base 上持有小额 USDC 并完成付款、收款、查询余额与消费报表的场景;也适合希望给代理资金操作加上不可被提示词绕过的代码层限额的开发者。README 明确建议保持小额余额,将其作为周转资金而非储蓄。
安装与接入
README 给出的安装方式为:
README 给出由远程脚本安装的路径,其中示例未显式使用 HTTPS。此处不提供直接执行的一行命令;请先从官方原仓库审阅安装器与对应版本,再决定是否本地安装。
MCP 服务器通过 stipend mcp 启动,使用 JSON-RPC over stdin/stdout(MCP stdio 传输),由 MCP 客户端拉起进程,不监听端口、不暴露网络。README 给出的客户端配置示意包含:command 为 stipend、args 为 ["mcp"],配置键为 mcpServers.stipend。
项目还提供自检命令 python -m stipend selftest,README 称其不需要网络、不需要资金,也不会动用用户钱包。
使用条件与限制
- 是否需要部署
- 需自行准备运行环境,具体要求见正文
- 是否需要注册
- 账号和认证要求见正文;未明确说明的项目仍待核验
- 是否需要 API Key
- 待核验
- 费用与额度
- 费用边界见正文,项目许可不代表模型或托管服务免费
- 所需权限
- 待核验
- 许可证与服务条款
- 待核验
权限费用与限制
- 许可:仓库代码采用 Apache-2.0 许可证。
- 费用:README 未说明软件本身是否收费;链上交易所需的 gas、USDC 资金以及第三方服务费用需自行承担,具体费用标准待核验。
- 安全边界:README 明确标注项目“未经独立审计”;x402 互操作性只验证了官方自己的端点,未在第三方商户上验证。
- 密钥风险:私钥仅存于本机,丢失后无法找回。
- 托管方式:项目明确不提供托管服务,不发布远程 URL,因此不涉及由项目方保存私钥的部署形态。
国内使用情况
网友核验 用户经验分享
与站长实测独立,不代表官方认证或本站已实测。
最近核验:暂无有效核验。参与人数按当前项目有效身份去重;不同核验项分别统计,不合并成用户总结果。仅统计审核通过且未过期的记录。
分项统计、有效期与样本量
| 核验项目 | 有效人数 | 成功 / 部分 / 失败 / 无法判断 | 成功率 | 最近核验 / 有效期 |
|---|---|---|---|---|
| 官方网站访问 | 0 | 0 / 0 / 0 / 0 | 样本不足 | 暂无 / 7 天 |
| GitHub 仓库访问 | 0 | 0 / 0 / 0 / 0 | 样本不足 | 暂无 / 7 天 |
| 安装与运行 | 0 | 0 / 0 / 0 / 0 | 样本不足 | 暂无 / 30 天 |
| 官方服务国内连接 / MCP 连接 | 0 | 0 / 0 / 0 / 0 | 样本不足 | 暂无 / 30 天 |
| 国内网络情况 | 0 | 0 / 0 / 0 / 0 | 样本不足 | 暂无 / 7 天 |
| 国内模型兼容性 | 0 | 0 / 0 / 0 / 0 | 样本不足 | 暂无 / 30 天 |
| 自定义 API | 0 | 0 / 0 / 0 / 0 | 样本不足 | 暂无 / 30 天 |
| 海外服务依赖 | 0 | 0 / 0 / 0 / 0 | 样本不足 | 暂无 / 30 天 |
| 海外账号要求 | 0 | 0 / 0 / 0 / 0 | 样本不足 | 暂无 / 30 天 |
| 中文界面 | 0 | 0 / 0 / 0 / 0 | 样本不足 | 暂无 / 30 天 |
| 客户端兼容性 | 0 | 0 / 0 / 0 / 0 | 样本不足 | 暂无 / 30 天 |
| 账号及费用信息 | 0 | 0 / 0 / 0 / 0 | 样本不足 | 暂无 / 30 天 |
成功率 = 成功 ÷(成功 + 部分成功 + 失败);无法判断不计入分母。至少 5 份可判断结果才显示成功率。账号、费用、海外依赖与语言等事实项,成功表示核查结论与资料吻合,具体观察另行统计;不表示免费或没有海外依赖。不同网络、客户端和版本的结果不能直接等同。
最近有效核验
暂无审核通过且未过期的网友核验。欢迎提交真实使用记录。
查看全部有效核验 →国内实测状态:国内可用性待核验。协议兼容和官方资料说明不等于国内网络可用。
- 官方网站访问
- 尚未实测 待核验
- GitHub 仓库访问
- 尚未实测 待核验
- 官方服务国内连接
- 尚未实测 待核验
- 国内网络情况
- 尚未实测 待核验
- 国内模型兼容性
- 尚未实测 待核验
- 自定义 API
- 尚未实测 待核验
- 海外服务依赖
- 尚未实测 待核验
- 海外账号要求
- 尚未实测 待核验
- 中文界面
- 尚未实测 待核验
- 国内最后核验时间
- 尚未实测
许可与国内使用
仓库代码以 Apache-2.0 发布,商用与修改需遵守许可证条款;项目开源不代表链上资金、网络费用或任何关联服务免费。项目由澳大利亚 FelixTrade.ai Pty Ltd 构建,README 未说明服务可用地域、中国大陆网络可达性或合规适配情况,相关限制待核验。若在国内使用,需自行评估加密货币相关监管要求。
项目资料与来源
字段依据与待核验事项
access:来源确认 · pip install eth-account && curl -sL stipend.sh/install | sh
project_type:来源确认 · It ships an **MCP (Model Context Protocol) server** — `stipend mcp` — exposing seven tools over stdio
原始 README(折叠技术参考)
# stipend.sh
A non-custodial USDC wallet on Base that an AI agent installs by itself, with
spending limits enforced below the instruction layer.
```
pip install eth-account && curl -sL stipend.sh/install | sh
```
This is the source of the package that installer fetches. It is published so
that the claims made for it can be checked rather than believed.
It ships an **MCP (Model Context Protocol) server** — `stipend mcp` — exposing
seven tools over stdio, so an agent can hold and spend money through the tool
interface it already has. See [MCP server](#mcp-server) below.
## The claim worth checking
The failure that matters for an agent holding money is not a stolen key. It is a
correctly signed transaction it was argued into.
Almost every defence against that lives in the instruction layer — a system
prompt saying "do not send funds to unverified addresses." That is a suggestion
to a model, sitting in the same context window as the text attacking it.
In here the limits are not advice. They are code that a transaction passes
through on its way to being signed, and no wording in any context window reaches
them.
**Start at [`stipend/policy.py`](stipend/policy.py).** It is about three hundred
lines and it is the whole argument.
## The three controls
| control | what it does |
|---|---|
| per-transaction and daily caps | a ceiling that no instruction can raise |
| one-time approvals | authorise a single payment — bound to that recipient, that amount, expiring, single use — instead of raising a cap |
| new-destination confirmation | the first payment to any address you have never paid needs confirming, whatever the size |
The second is the one people get wrong. Raising a cap to afford one purchase
weakens every future payment to everyone, which is precisely what an attacker
asks for. Authorise the payment, not the capability.
The third is what stops a drain by many small payments that each sit under the
threshold. An attacker's address is, by definition, one you have never paid.
And if you turn on an allowlist, it is absolute. Funds reach nothing else — not
with a confirmation, not with an approval, not with any instruction from
anywhere.
## MCP server
The wallet is also a Model Context Protocol (MCP) server, so an agent can use it
through the tool interface it already has rather than by shelling out.
```
stipend mcp
```
It speaks JSON-RPC over stdin and stdout — the MCP stdio transport. Your MCP
client spawns the process; nothing listens on a port and nothing is exposed to a
network.
In a client's config that looks like:
```json
{
"mcpServers": {
"stipend": {
"command": "stipend",
"args": ["mcp"]
}
}
}
```
### The tools
| tool | what it does |
|---|---|
| `stipend_address` | the wallet's address, so money can reach you whether or not you are running |
| `stipend_balance` | USDC held, native currency held, spent today, and the daily limit |
| `stipend_check` | would this payment be allowed? Answers without sending anything |
| `stipend_pay` | send USDC, subject to every limit below |
| `stipend_earnings` | read incoming payments off the network and record them |
| `stipend_report` | earned against spent, by category, with runway in days |
| `stipend_recover` | what is outstanding, and whose job each item is |
Every one of them goes through the same `policy.check` gate the command line
uses, so the caps, the allowlist and the new-destination confirmation apply
identically. There is no path here that moves money without them.
`stipend_check` exists so an agent can ask "would this be allowed?" before it
offers to pay for something, turning a refusal into an answer rather than a
failure.
### What it deliberately does not expose
No tool reads, exports or derives the private key. No tool changes a spending
limit or the allowlist. No tool creates or overwrites a wallet.
An MCP tool is callable by a model that is reading untrusted text, and raising a
cap is exactly what an attacker would ask for — so it is not on the menu at all.
Configuration changes stay at the command line, where a human is present.
### Why it is not hosted
Every registry would prefer a URL, and we will not publish one. A hosted wallet
server means the key lives on somebody else's machine — ours — and the whole
claim of this package is that it does not. This runs beside the keystore, under
the same user, and the key never moves.
## Run its own tests
No network, no funds, no wallet of yours touched:
```
python -m stipend selftest
```
219 checks covering address validation, amount arithmetic, every policy branch,
the allowlist, the daily cap, destination trust and its expiry, keystore
encryption, ERC-20 encoding, x402 requirement selection, EIP-3009 signing, the
ledger, and exactly what telemetry would send.
## What we would rather have
Someone to break it.
If you can construct an injection that moves money past the checks in
`policy.py`, open an issue. We would rather hear it from you than from someone
who is not being polite about it.
## Honest limits
- Not independently audited.
- x402 interoperability is verified against our own endpoint, not third-party
merchants.
- The key is generated on your machine and never transmitted — which also means
nobody can recover it for you, including us.
- Keep the balance small. It is a working float, not savings.
## Links
- [stipend.sh](https://stipend.sh) — the site, which serves plain text to agents
and a page to browsers at the same URL
- [stipend.sh/skill.md](https://stipend.sh/skill.md) — written for agents
- [stipend.sh/for-your-human](https://stipend.sh/for-your-human) — written for
the person who pays
- [kina](https://github.com/stipend-sh/kina) — a small language some of this
reads and writes
## Licence
Apache-2.0. See [LICENSE](LICENSE).
Built by the Stipend dev team. FelixTrade.ai Pty Ltd, Australia.
历史前置条件说明(补充参考)
Python 环境;pip 可安装依赖;需安装 eth-account;需 MCP 客户端以 stdio 方式拉起 `stipend mcp`;需自备 Base 网络 USDC 资金并可承担链上交易费用;私钥仅存本机、丢失不可恢复;项目未经独立审计;是否收费及具体费用待核验。
项目来源与清单版权许可
https://github.com/stipend-sh/stipend
整理来源:https://github.com/slavakurilyak/awesome-ai-agents
清单版权与许可:
MIT License
Copyright (c) 2024 Slava Kurilyak
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.