@seekdaseek/agentfeed-mezo

中文文档
0.2.0发布于 2026/11/02MITES Module

在Mezo和Base的MUSD上,每次呼叫都向AgentFeed付费。MCP服务器和用于代理的CLI,以及mezo.ochinimus.app背后的HTTP 402网关。

中文使用文档
文档目录15 节
  1. 五分钟后判断
  2. 它是如何工作的
  3. 为什么允许,而不是x402“确切”
  4. 重放和滥用保护
  5. 路线
  6. 地址(Mezo测试网,链31611)
  7. 支付交易样本
  8. 对于座席:客户端和MCP工具
  9. 它如何扩展AgentFeed
  10. 经营自己的公司
  11. 测试
  12. 地位和诚实的界限
  13. 第二波计划
  14. 已知的报告
  15. 许可证

agentfeed-mezo

人工智能代理支付 AgentFeed 在Mezo的比特币支持的稳定币MUSD的电话中。

AgentFeed是一个实时的,为代理付费的加密数据API:清算,资金,价格,索拉纳交易前检查和语言任务,83条付费路线,MCP服务器和elizaOS插件,已经解决了真正的USDC。这个回购是允许购买相同数据的网关 穆德在梅佐:代理签署一个EIP-2612许可,网关将其在链上结算并支付gas,数据在同一个HTTP调用中返回。

$ curl -i https://mezo.ochinimus.app/api/sol-price
HTTP/2 402
payment-required: eyJ4NDAyVmVyc2lvbiI6Mi...   (base64 JSON: MUSD, eip155:31611, 0.01 MUSD, treasury, nonce)

五分钟后判断

步骤1到步骤3不需要钱包。

  1. 参见402挑战。 curl -s https://mezo.ochinimus.app/api/sol-price | head -40. 它将令牌命名为MUSD 0x118917a4...Ac503),网络(eip155:31611)、魏价、财政部和hmac绑定的nonce。
  2. 看看真正的定居点。 开放 /stats 和 /payments.csv,然后单击任意 transfer_tx_url. 资源管理器显示 transferFrom 从网关的结算者从代理钱包移动0.01到0.05 MUSD到库,以及匹配 permit 事务。
  3. 看一下舱单。 /.well-known/x402 列出了8条票价为MUSD的路线。
  4. 你自己去拜访 (约3分钟,需要一个Mezo测试网钱包):
    git clone https://github.com/seekdaseek/agentfeed-mezo && cd agentfeed-mezo && npm install
    # 1. testnet BTC to your address: https://faucet.test.mezo.org  (0.05 BTC)
    # 2. mint testnet MUSD by opening a trove on Mezo Borrow (about 0.042 BTC in, 1850 MUSD out):
    AGENT_PRIVATE_KEY=0x... TARGET_ICR_PCT=165 node scripts/fund-musd.mjs --send
    # 3. pay for data:
    AGENT_PRIVATE_KEY=0x... node src/client.js sol-price
    AGENT_PRIVATE_KEY=0x... node src/client.js liquidations limit=5 symbol=SOL
    AGENT_PRIVATE_KEY=0x... node src/client.js summarize url=https://mezo.org
    
    客户端打印状态、延迟、答案和资源管理器链接。 --scheme transfer 用普通的MUSD转账支付,而不是许可证。
  5. 运行测试: npm test (62次测试,不需要网络)。
  6. 对链条重新检查证据: node scripts/verify-evidence.mjs 从Mezo测试网读取公共分类账的每一行(接收状态,MUSD) Transfer 从付款人到财政部,金额)和印刷品 verifiedOnChain 还有财政收支。

它是如何工作的

agent                         gateway (mezo.ochinimus.app)                  Mezo testnet         AgentFeed
  | GET /api/liquidations          |                                              |                    |
  |------------------------------->|                                              |                    |
  | 402 + PAYMENT-REQUIRED         |                                              |                    |
  |<-------------------------------|  MUSD, 0.02, treasury, spender, nonce        |                    |
  | read nonces(agent) -------------------------------------------------------->|                    |
  | sign Permit(agent -> settler, 0.02 MUSD, deadline)   (off-chain, no gas)     |                    |
  | GET + PAYMENT-SIGNATURE        |                                              |                    |
  |------------------------------->| verify: network, token, payTo, nonce, sig,   |                    |
  |                                |         balance, eth_call permit()  -------->|                    |
  |                                | GET /api/liquidations (prepaid key) --------------------------->  |
  |                                |<-------------------------------------------------- data ---------|
  |                                | permit() + transferFrom(agent -> treasury) ->| (gateway pays gas) |
  | 200 + data + explorer link     |                                              |                    |
  |<-------------------------------|                                              |                    |

顺序很重要:网关获取数据 之前 它解决了,所以如果AgentFeed关闭,代理永远不会收费,可以用相同的签名付款(upstream_unavailable, charged:false). 在一个好的回答之后失败的解决方案保留了数据。

为什么允许,而不是x402“确切”

x402挣值管理的都 exact 方案使用EIP-3009 transferWithAuthorization. MUSD不实现它。已检查部署的测试网令牌 0x118917a40FAF1CD7a13dB0Ef56C86De7973Ac503 (OpenZeppelin ERC20Permit, "Mezo USD",版本 "1"(18位小数):字节码有 permit 和 nonces 选择器和none transferWithAuthorization, receiveWithAuthorization, authorizationState. 所以网关在同一个402上定义了两种方案:

计划代理由如何验证
permit (默认)签署EIP-2612 Permit(owner, settler, price, nonce, deadline)网关签名从活域和链上nonce恢复,平衡读取, permit() 模拟与 eth_call,然后 permit + transferFrom 从设置键
transfer发送一个普通的MUSD transfer 对库,表示tx哈希加上签名的索赔代理接收成功,有足够的确认,比挑战更新,有MUSD Transfer 事件至少将价格发送到库中,并且索赔签名恢复到该转账的发送方(因此没有人可以索赔其他人的转账)

Permit是默认值,因为它为代理提供了一次无gas的调用:代理唯一必须保持的是MUSD。

重放和滥用保护

每笔付款都被记录在sqlite中,并在第二次使用时被拒绝,在所有这些密钥下:签名哈希 (owner, permit nonce) 对,挑战nonce,和每个结算tx哈希(因此结算许可证) transferFrom 不能被重新呈现为 transfer 付款)。保留是原子性的,重新启动后仍然有效。现在的挑战是 issuedAt.expiresAt.random.hmac,一条路线,一个价格,在300年到期,许可证的截止日期可能不会超过它。每个所有者地址一次只有一个许可证在运行。拒绝超额付款,因此不会留下任何津贴。失败的付款永远不会调用AgentFeed。

路线

路线每次呼叫的费用什么
/api/sol-price0.01溶胶/美元现货
/api/btc-price0.01BTC /美元现货
/api/liq-pulse0.01现在清算的是什么
/api/funding-pulse0.01最极端的犯罪资助率
/api/liquidations0.02实况清算磁带(symbol, scope, limit, min_usd)
/api/market-snapshot0.02一次通话即可了解市场行情
/api/trade-context0.03价格,资金和清算在一个呼叫
/api/summarize0.05语言任务:总结 ?url=

在转移呼叫之前,删除未知查询参数。 HEAD, POST 其余的都被拒绝了405,所以没有自由动词。

地址(Mezo测试网,链31611)

地址
令牌相对应国家0x118917a40FAF1CD7a13dB0Ef56C86De7973Ac503
库务署(接受国防开支)0xf01d65DBd1B946C48b7dB1f0A02AaBd021c89227
定居者(持证消费,付油钱)0xaB7323cB6aaB188D7Dca697496534BA6C95ddbC2
Demo代理钱包0x9691FedC701cD8bbDF4D0b06Dd7C9ABf2e9037B4
Mezo Borrow(用于制造测试网MUSD)0xCdF7028ceAB81fA0C6971208e83fa7872994beE5

令牌地址来源: solidity/artifacts/deployments/matsnet/MUSD.json 在 mezo-org musd。这个 mainnet 和 ethereum 该repo列表中的部署文件夹 0xdD468A1DDc392dcdbEf6db6e34E89AA338F9F186和一个名为“Mezo USD / MUSD”的合同,18位小数,相同 permit 选择器,在基础主网上的那个地址的答案(由 eth_getCode 和 eth_call 反对 mainnet.base.org). 下面是第二波的目标。

支付交易样本

路线计划MUSD解决(transferFrom /转移)允许tx
liquidations许可证0.020xeb5a798a…01972d0xe1c3029d…935ce6
summarize许可证0.050xa5326990…5902640xc7feba69…3b1c14
trade-context许可证0.030xa7bfc89e…db27d00xf8a292bf…d9fdfd
funding-pulse转移0.010xf05aa01b…00de4e没有,代理人付了汽油费

那么,演示代理是如何获得其MUSD:水龙头BTC的呢 openTrove 在Mezo Borrow (0.042 BTC抵押品,ICR为165%,卖出1850万美元),同样的流量 scripts/fund-musd.mjs 自动化。

对于座席:客户端和MCP工具

什么都不安装:MCP客户端可以直接从npm运行服务器(在官方MCP注册表中列出为 io.github.seekdaseek/agentfeed-mezo):

{ "mcpServers": { "agentfeed-mezo": { "command": "npx", "args": ["-y", "@seekdaseek/agentfeed-mezo"],
  "env": { "NETWORK": "base", "AGENT_PRIVATE_KEY": "0x...", "MAX_PRICE_MUSD": "0.10" } } } }

NETWORK 是 mezo-testnet (默认,测试MUSD), base 或者 mezo-mainnet (真正的)相对应国家。使用专用钱包,带有少量的MUSD余额:服务器每次呼叫签署一个许可证,并拒绝上述任何价格 MAX_PRICE_MUSD. 没有 AGENT_PRIVATE_KEY 服务器仍然启动并 list_routes (免费)。

工具: list_routes 和 call_route { route, params?, scheme? },它以MUSD支付并返回结算的数据和资源管理器链接。 node scripts/mcp-smoke.mjs 通过工作室从克隆驱动相同的服务器。

从克隆中,命令行客户端在没有MCP的情况下执行相同的操作:

AGENT_PRIVATE_KEY=0x... NETWORK=base node src/client.js <route> [key=value ...] [--scheme permit|transfer] [--n 5] [--pretty]

src/client.js 拒绝为另一个网络或令牌或以上的网络或令牌签名质疑 MAX_PRICE_MUSD 0.10(默认)。已注册的代理应该使用默认值 permit 方案,可阅读 GET /agents/<address> 首先是剩余预算。

它如何扩展AgentFeed

AgentFeed (x402.ochinimus.app, 83付费路线,MCP服务器上的官方注册表,elizaOS插件 @seekdaseek/plugin-agentfeed)已经在Solana, Base, Polygon, Arbitrum和Arc上使用了USDC,但这些轨道中的每一个都依赖于EIP-3009或SPL传输。MUSD是一种不同类型的令牌:ERC-20加上EIP-2612许可。这条通道增加了那条铁轨 无需接触生产服务器:它是一个独立的服务,从AgentFeed购买预付API密钥(价格的一半),并以1到5美分的价格在MUSD转售。中没有 /opt/agentfeed 已重新启动或编辑。

经营自己的公司

npm install && npm test
cat > .env <<'EOF2'
TREASURY_ADDRESS=0x...        # receives the MUSD
SETTLER_PRIVATE_KEY=0x...     # permit spender; needs a little testnet BTC for gas
CHALLENGE_SECRET=<random hex> # HMAC key for challenge nonces
UPSTREAM_KEY=afk_...          # an AgentFeed prepaid key (x402.ochinimus.app/keys)
PUBLIC_URL=http://localhost:3034
EOF2
chmod 600 .env && npm start

可选: PORT, HOST, MEZO_RPC_URL, MUSD_ADDRESS, UPSTREAM_URL, DB_PATH, CHALLENGE_TTL_SEC, CONFIRMATIONS, DAILY_UPSTREAM_CAP (默认值 src/config.js). 作为PM2部署在这里 agentfeed-mezo 在它自己的Cloudflare隧道后面的3034端口。

测试

npm test 使用Node的内置运行器运行62个测试。52在假的链适配器和假的AgentFeed上运行真实的网关代码,具有真实的EIP-712和EIP-191签名;10开始 src/mcp.js 使用MCP SDK客户端对环回假网关(工具注释, list_routes, call_route 拒绝更高的价格 MAX_PRICE_MUSD错误的令牌或网络、不可达的网关、错误的参数以及任何工具输入模式中没有数组类型)。它们涵盖了两个方案的快乐路径,重播(相同的许可证,相同的挑战,相同的tx哈希,结算tx重新表示为转移),付款不足,付款过多,错误的令牌,错误的链(网络字段和为另一个链id签名的许可证),错误的收件人,错误的支出者,过期的许可证nonce,其他人的签名,过期的nonce,另一条路由的nonce, RPC down, AgentFeed down(清洁502,付款人未收费,恢复后相同的付款工作),结算失败,并发双重支出。mock只在这里使用;以上的付费通话证据都不是模拟的。

地位和诚实的界限

  • 在代理付款后,有一笔付款被拒绝了:第一笔 transferscheme调用命中未索引收据的Mezo RPC节点并获得 tx_not_found. 0.01百万美元作为无与伦比的灰尘留在宝库中(evidence/unclaimed.md). 网关现在重新尝试丢失的收据大约8秒,客户端重新尝试拒绝相同的付款;6 transfer 之后的呼叫都成功了。
  • 来自多个节点的公共Mezo RPC应答和相同的接收可以在一次调用中读取为空,而在下一次调用中出现(已测量)。因此,门户网站的读者很少会拒绝一笔丰厚的报酬;拒绝从不把钱放在眼里 permit 计划。
  • Testnet。Mezo测试网上的MUSD没有美元价值;关键是,完整的支付路径与真正的合同和链背道而驰。
  • 用于结算的燃气由网关的结算密钥支付,资金来自水龙头。在主网上,该费用必须在通话中定价或预先支付费用,参见第二波。
  • 每个代理地址一张飞行许可证。需要并行调用的代理使用多个地址或 transfer 计划。
  • 网关使用一个预付密钥和每日上限调用AgentFeed (DAILY_UPSTREAM_CAP(默认为5000次)。

第二波计划

  1. Mezo主机MUSD。 相同的代码与主网链id, RPC和token地址从Mezo文档;增加每个电话的煤气附加费。
  2. MUSD在基地。 MUSD已经在Base上进行交易,因此在Base上生活的代理可以在没有桥接的情况下付款。在402中添加Base网络 accepts,以及针对基本池的只读价格检查。
  3. 一个电报机器人,充值并为代理商花费100万美元。 一个人以MUSD为机器人持有的预算提供资金,设置每天的上限,机器人为其代理签署许可,因此交易机器人或eliza代理无需持有密钥即可获得数据。这是轨道2的分布面。
  4. 一、 permit基于每个座席的花费限额(一次签名,多次呼叫),以取消一次飞行限制。

已知的报告

  • 萨德,GHSA-mrhx-c7xc-m3w5 (high):当没有长度限制的数组模式验证大量失败元素时耗尽内存;影响 < 4.6.6,在4.6.6补丁。这个repo是在zod 3.25.76上,它在2026年10月29日被依赖项扫描标记(扫描列出没有补丁版本;GitHub咨询数据库和 npm audit Do list 4.6.6)。现在取决于 萨德4.6.7,当前版本,带有 @modelcontextprotocol/sdk 1.32.2(对等体范围为 ^3.25 || ^4.0)。 npm audit --omit=dev 报告0个漏洞和所有62个测试通过zod4.6.7。
  • 与版本无关,从这个repo的输入无法访问易受攻击的路径:没有MCP工具输入模式包含数组(list_routes 需要什么; call_route 接受一个字符串、一个可选的字符串到字符串记录和一个enum; test/mcp.test.js 断言没有 array, items 或者 prefixItems 在JSON模式中),并且MCP服务器在用户自己的代理上通过studio本地运行。门户(src/server.js)不导入zold或MCP SDK;它解析自己的标头和查询字符串。
  • 未验证:zod副本仍安装在网关中 node_modules VPS上的值为3.25.76。没有网关代码导入它(从源代码读取,而不是在运行时测试),因此它被保留原样,而不是重新部署。

许可证

麻省理工学院,看到 许可证.

版本与发布记录

@seekdaseek/agentfeed-mezo 共发布 2 个版本,首次发布于 2026/11/02;过去 12 个月发布了 2 个版本。

版本发布日期距今
0.2.0latest2026/11/021 天前
0.0.0-stage2026/11/021 天前

关于 @seekdaseek/agentfeed-mezo 的常见问题

@seekdaseek/agentfeed-mezo 是什么?

在Mezo和Base的MUSD上,每次呼叫都向AgentFeed付费。MCP服务器和用于代理的CLI,以及mezo.ochinimus.app背后的HTTP 402网关。

如何安装 @seekdaseek/agentfeed-mezo?

在项目目录运行 npm install @seekdaseek/agentfeed-mezo,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 agentfeed-mezo、agentfeed-mezo-mcp,可以用 npx agentfeed-mezo 直接运行。

@seekdaseek/agentfeed-mezo 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/seekdaseek__agentfeed-mezo 是否存在。

@seekdaseek/agentfeed-mezo 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@seekdaseek/agentfeed-mezo 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=22。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@seekdaseek/agentfeed-mezo 可以商用吗?

@seekdaseek/agentfeed-mezo 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@seekdaseek/agentfeed-mezo 还在维护吗?

最新版本 0.2.0 发布于 2026/11/02(1 天前);至今共发布 2 个版本,其中过去 12 个月发布了 2 个;首次发布于 2026/11/02。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。