mcpField
A
AssetFare

AssetFare

远程服务
github.com/assetfare金融数据03 天前更新
代码仓库

关于 AssetFare

AssetFare 为 Agent 和调用方提供非托管跨链路线报价及未签名交易计划。它支持路线选择和由调用方控制的审批与签名;服务本身不会签名或提交交易。

主要功能

  1. 01按精确金额获取路线报价
  2. 02跨链桥接与兑换路线
  3. 03费用和可用性详情
  4. 04调用方审批的未签名交易计划
  5. 05报价与路线验证

适用场景

  1. 01比较指定转账金额的路线
  2. 02规划原生 USDC 跨链转账
  3. 03检查费用和所需源链余额
  4. 04在调用方签名前验证报价

MCP 相关

远程 MCP 端点提供 v2 工具,用于查询能力、选择路线、获取报价、经调用方审批后准备交易及管理会话。它不接收私钥,也不会签名或提交交易。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://api.assetfare.dev/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

11

此工具无需参数。

详细介绍

AssetFare — 为 AI Agent 预先计算的跨链路线情报

AssetFare 每 30 分钟探索不同金额下的候选路线曲线,为 Agent 节省时间和令牌。在六条以 Solana 为起点、通往 Base/Arbitrum 的试点通道中,这些观测结果只用于筛选出三个候选项;调用方的请求随后会按实际请求金额为这三项全部报价,并在时间配置范围内最多返回两个选项。平衡模式默认 60 秒,快速模式为 30 秒,经济模式则是明确选择的较慢模式。超出时限的候选项仅供参考。只要报价仍有效,选择时就会复用请求时的原始报价;过期后,只会按相同金额刷新选定的候选项,不会悄悄切换路线。选择本身绝不构成交易授权。调用方负责批准并签名;服务端绝不签名或提交交易。

Core 2.17.0 的报价还包含严格的 continuation_v3。MCP 1.21.6 会验证规范化完整报价哈希、路线摘要哈希和指纹声明、精确路径/提供商、调用方钱包链和事件签名方要求、基础单位范围、允许的模式和 TTL。每份报价都保持 unranked_candidate 状态;没有适配器会自动选择报价,而 caller_approved:true 本身也不能作为人工批准的证明。

可移植报价哈希会移除 continuation_v3,将重复的原始基础单位数字替换为 direct_route_summary 中的精确十进制字符串,然后对 AssetFare typed-canonical-v1 字节进行哈希。该编码保留 JSON 类型,对有限数字使用精确的 IEEE-754 binary64 字节,以 UTF-8 字节长度和按字节排序的对象键进行编码,区分 -0 和 0,并拒绝所有未替换且超出 JavaScript 安全整数范围的整数。必需的字面值 quote_payload_sha256_spec 同时出现在 continuation_v3 和其指纹声明中,以避免数字字符串碰撞和跨语言精度歧义。

Public safety checks npm version AssetFare MCP connector Listed on mcpservers.org

AssetFare 是一项面向 Agent、非托管的原生 USDC 桥接和跨链路线服务。Solana 原生 USDC → Base 原生 USDC 是规范路线:Agent 获取一份最新报价,且只有在调用方明确批准后,才会获得一份有限制的未签名交易计划,由调用方验证并签名。AssetFare 还提供跨 65 种精选公开路线产品的桥接和跨链兑换路线:3 种核心产品、50 种有条件产品和 12 种战略性/稀缺产品。AssetFare 服务费为 1bp;Circle/提供商/网络费用另计;报价会显示代币路径的总成本和实时可用性;服务端绝不签名或提交交易。也支持 Solana SOL → Base USDC 和 Optimism USDC → Base USDC。AssetFare 绝不会接收私钥、签名或提交交易。

有关产品纳入情况和评审时间,请阅读 economic_guidance,以及位于 https://assetfare.dev/route-economics.json 的完整研究目录。price_recommended_for_amount 仅供参考;当其值为 false 时,如果价格很重要,请比较一份最新的全包报价。该字段不会增加确认字段,也不会阻止创建 prepare/session。API 接受 USD 1 作为通用技术最低金额。

为 Agent 钱包注资时,请将 AssetFare 用于汇总充值或大额转账,而不要因每笔失败的 x402 小额支付而触发操作。请使用特定路线的最佳起始金额,并确认最新报价。若钱包在每条受支持的源链上都没有余额,则不适合使用 AssetFare。 信任前先验证:公开源码、 Ed25519 签名清单、 公钥、 security.txt 以及 链上执行证据。最佳报价调用 并非百分之百可靠;请确认最新的 AssetFare 报价。

每份 v2 报价都包含 direct_route_summary,其中提供与意图绑定的有序 提供方路径、规范化的 chain:asset 端点、以十进制字符串表示的精确基础单位金额 范围、单笔 AssetFare 1bp 费用步骤,以及 server-signing/server-submission=false。direct_protocol_only 表示每个步骤 都使用已披露的直接协议。目前所有路由都采用此分类; external_intent 仅作为兼容枚举保留。 route_aggregator_used=false 描述的是 AssetFare 自身的引擎,并不 代表每个提供方都避免内部聚合。Circle/提供方费用仍列于 cost_summary.provider_fee_components。合约 2.6.1 还会在 separately_paid_costs 中披露已知的 LayerZero 原生费用和有界的源链 Gas 估算, 提供 expected_all_in_cost_usd_estimate,并指出调用方必须保留的原生资产余额。仍无法定价的费用 会明确列于 unpriced_costs。

continuation_v3 会将整份报价(不包括 continuation 对象本身) 绑定到进程本地、最长 60 秒的 Core 缓存。之后的精确 approval_v3 会选择 one_shot 或 session,且只能进一步收紧报价的 最大输入/最小输出范围;过期、重启、路径/提供方变动、 钱包/签名者要求变动、模式冲突或重放都会导致安全失败。 多步骤路由仅支持 session。省略 approval_v3 时会明确标记为 legacy_advisory;布尔门控仍为必需项,但不能证明已获得人工确认。

独立 Agent 验证器

不依赖任何项的 assetfare-verify CLI 会验证证据,而不是接受 AssetFare 的 pass、safe、评分或 verdict 字段。在此代码库检出版本中,实时验证需显式启用:

node scripts/assetfare-verify.mjs --live

包含 assetfare-verify bin 条目的软件包版本可以通过 npx --yes --package=assetfare-mcp assetfare-verify --live 调用。请勿固定到早于此命令的旧软件包版本。

实时模式使用验证器中嵌入的公开 Ed25519 密钥和密钥 ID。它只获取固定的清单及其哈希绑定的安全包,并拒绝重定向、意外的 MIME 类型、非规范 JSON、未知或缺失的架构键、超大响应、过期清单和主观安全声明。随后,它会在每条受支持的 EVM 链上,从两个独立固定的公共 RPC 提供商获取 eth_chainId 和精确的 eth_getCode 字节。原始字节必须彼此一致,并且与安全包中的 SHA-256 和 Ethereum Keccak-256 证据一致。这些都是只读调用;该命令不具备签名或提交交易的途径。

如需确定性或隔离网络环境下的检查,请显式传入全部三个信任材料文件:

node scripts/assetfare-verify.mjs --offline \
  --manifest ./fixtures/manifest.json \
  --bundle ./fixtures/safety-bundle.json \
  --pubkey ./fixtures/assetfare-manifest.pub

离线模式不会发出网络请求。它会验证所提供的清单签名、已签名的安全包哈希、精确的架构和声明、发布/构建/部署来源信息、全部七条 EVM 链,以及所有嵌入的原始运行时代码哈希。其成功状态为 offline_evidence_verified,而不是实时 RPC 法定人数结果。npm run verify-selftest 会创建确定性的本地测试夹具,并测试错误签名、错误的安全包哈希和架构、重定向、MIME 混淆、链/代码不一致、不完整的 RPC 证据,以及禁止的主观声明。

AssetFare 由分布式项目团队维护,试点期间使用一个公共发布命名空间。角色、发布控制和当前公共所有者记录在 GOVERNANCE.md 和 MAINTAINERS.md 中;这并不表示已注册为法人实体或通过独立第三方审计。

接口:MCP + A2A + REST/OpenAPI。

此代码库包含一个可选的 MCP 适配器。主要远程端点提供当前 v2 的 11 个工具:签名清单、功能、路由选择、所选候选项报价、直接 AssetFare 报价、一次性经调用方批准的准备操作,以及五个会话生命周期操作。13 个无版本的旧版工具仍可通过单独的 /mcp/legacy 兼容端点使用,支持原始的 Solana SOL → Base/Arbitrum ETH 工作流。两种配置不会同时出现在同一个远程端点上。 Agent 也可以在不安装或连接 MCP 的情况下,评估任何当前 v2 路由:

  • APIs.json:https://assetfare.dev/apis.json
  • 功能:https://api.assetfare.dev/v2/capabilities
  • OpenAPI v2:https://api.assetfare.dev/v2/openapi.json
  • 提供商状态:https://api.assetfare.dev/v2/status
  • 只读 Arazzo 工作流:https://assetfare.dev/arazzo.yaml
  • 独立 Agent 试点:https://assetfare.dev/pilot/

安全模型

  • AssetFare MCP 从不接收私钥,也从不签署或提交交易。
  • 每条可用路线都会对一次符合条件且成功的原子操作建模并收取恰好 1bp 的 AssetFare 服务费;没有免手续费路线。1bp 并非总成本:Circle 费用(包括任何固定的 CCTP 转发费)、提供方费用和网络费用均为额外费用,并显示在报价的总代币路径成本中。
  • assetfare_v2_capabilities 和 assetfare_v2_quote 会公开 65 种精选的公共路线产品。另有 35 条经过研究的路线不予提供。可用性为实时状态:准备前请检查能力信息/报价。统一适用 1 USD 的技术最低限额。
  • 产品分类按整条路线进行,每周针对 REST、MCP、A2A 和 CLI 审核。它不会增加单独的确认步骤,也不会授予执行权限。
  • 远程 MCP/A2A 客户端必须发送严格的 approval_v3 才能进行准备和会话创建。其所选模式受架构约束(one_shot 与 session),会话批准必须使用相同的幂等键。较低层级的 REST 兼容接口仍将省略项标记为 legacy_advisory;它不构成新流程的操作授权。每次调用还必须包含字面值 caller_approved:true;适配器不会插入该值,也不会将其描述为人工证明。私钥/助记词/已签名交易输入均会被拒绝。
  • 会话能力凭证是敏感的持有者凭证,绝非私钥。远程客户端在本地生成 32 个随机字节,将其编码为不带填充的 base64url,并且仅通过 X-AssetFare-Session-Token 提供。服务器只存储其哈希值。远程 MCP/A2A 服务绝不生成该密钥;assetfare-plan 默认将其保存在内存中,只有在显式指定的新文件(模式为 0600)中才会写入。可选的本地 stdio 助手仍仅限离线使用。
  • 远程 MCP 会话创建/获取/观察/刷新调用还必须保留来自所选报价、批准和公共钱包映射的严格调用方 verification_context。A2A v1 使用相同对象作为必填项 verificationContext。两种适配器都会在任何上游调用前验证该对象,不会将其纳入上游请求,会对每个返回的 current_action 应用完整语义验证器,并生成新的自验证钱包交接信息。如果重启后上下文缺失,或任何目标/程序/边界/绑定发生偏移,适配器会在创建状态或公开操作前失败。
  • 远程 MCP/A2A 的单次准备同样需要单独提供类型化的单次验证上下文。适配器会在准备前验证该上下文,将其保留在调用方一侧,验证首个 EVM、Solana 或 Aptos 操作及批准边界,并在经验证的封装中返回未经改动的 Core bundle,同时附上新的钱包交接信息。嵌套 bundle 保留其原始 payload_sha256;封装字段不属于该 Core 哈希。
  • 未指定版本的 MCP 报价/状态工具以及所有 MCP 身份验证/会话/操作工具均隔离在 /mcp/legacy,仅用于兼容原有路线。
  • MCP 状态变更工具只会创建身份验证/会话记录,或准备/验证未签名的旧版工作流操作。MCP 客户端应要求用户批准这些调用。
  • 调用方会独立验证每个返回的未签名操作,并使用自己的钱包签署/提交。

远程服务

https://api.assetfare.dev/mcp

官方 MCP Registry 服务:io.github.assetfare/assetfare 和 io.github.assetfare/assetfare-bridge。历史上的 io.github.odaiin/* 记录已在保留所有权的 GitHub 组织迁移期间退役,迁移记录见 Registry issue #1666。 npm、公开源代码、托管端点和 Registry 元数据均针对本次 65 条路由的整产品政策发布版本 1.21.6。

主要 MCP 报价范围:65 条精选公开路由,包括 3 条核心路由、50 条条件路由和 12 条战略/稀缺路由。未提供 35 条研究/退役路由。 唯一的技术报价最低金额为 $1;没有任何路由设有单独的经济门槛或适配器强制执行的最高金额。 每条路由的指导信息均不强制执行,并会随着观察数据的累积而变化。仍需考虑上游的实时可用性和流动性。每条路由收取恰好 1bp 的 AssetFare 服务费;Circle/提供商/网络费用另计,每个报价都会显示代币路径的总成本和实时可用性。 典型示例包括 solana:SOL → base:USDC、solana:USDC → base:USDC 和 ethereum:USDC → solana:USDC。X Layer、Sei、Sonic、Monad、Avalanche、 Cronos、Injective、Linea 和 Aptos 为通往 Base/Solana 提供 18 条仅限作为来源的路由。未带版本号的旧版工作流仍仅限于 solana:SOL → base:ETH 和 solana:SOL → arbitrum:ETH;这不限制 v2 路由矩阵。

API 的 USD 1 最低金额仅是技术要求。经价格验证的报价会包含一个最佳起始金额;仅验证可用性的报价则包含 null。请在选择前确认每个最新报价。

六个试点分别为 solana:USDC->base:USDC、solana:USDC->base:ETH、 solana:SOL->base:USDC、solana:SOL->base:ETH、 solana:USDC->arbitrum:USDC 和 solana:SOL->arbitrum:ETH。各自适用的经验证组件分别构成 2、8、8、32、2 和 32 个完整内部图(总计 84 个),每 30 分钟按 USD 50、100、500、1,000、5,000 和 10,000 进行探索。

如需开始评估,请调用 assetfare_v2_capabilities,然后调用 assetfare_v2_route_selection 并传入实际预期金额。在试点通道上,该工具会使用预计算曲线识别近期排名前两位的候选项以及最佳 AssetFare 直连图,获取这三个候选项在请求时的精确报价,并返回排名前两位的候选项。每个响应还会报告 AssetFare 当前的精确成本、预计时间、成本排名,以及——仅当至少有两个更高的已测试金额档位支持时——近期非保证金额范围。如果精确报价存在冲突,则会移除该范围。调用方明确选择一项后,请调用 assetfare_v2_quote_selected_candidate;只要报价仍有效,该工具就会返回已获取的报价,报价过期后则只刷新所选候选项。选择 AssetFare 时会包含常规的 continuation_v3 报价;选择外部候选项时则会包含规范化的报价事实及其交接信息,但不包含可执行载荷。assetfare_v2_quote 仍可用于仅针对 AssetFare 的直接报价和兼容性需求。主端点不包含可能导致误选的旧版工具。 现有未带版本号的客户端可以连接到 https://api.assetfare.dev/mcp/legacy;新客户端不得使用该端点。

REST/OpenAPI 首次调用

当 Agent 尚未明确连接 MCP 时,请使用公开的 v2 报价端点。此只读评估调用无需 API 密钥、钱包身份验证、会话、签名或交易:

curl -sS https://api.assetfare.dev/v2/quote \
  -H 'content-type: application/json' \
  -d '{"from_chain":"solana","from_token":"USDC","to_chain":"base","to_token":"USDC","amount_usd":1000}'

从克隆的仓库中,可使用以下无依赖示例:

node examples/rest-quote.mjs 1000 solana USDC base USDC
python3 examples/rest_quote.py 1000 solana USDC base USDC

如需进行一条命令即可完成、可供 Agent 读取的评估,并验证签名发布清单且严格限定为仅报价:

npx --yes [email protected] assetfare-route-eval \
  --amount 1000 --from-chain solana --from-token USDC \
  --to-chain base --to-token USDC --quote-output quote.json

从克隆的仓库中,可使用等效命令 npm run route-eval -- ...。

只有明确提供 --quote-output 时,评估器才会写入经过精确验证的报价。该路径必须不存在,且会以 0600 权限创建。此评估仍为只读且不参与排名;选择前请将其与最新的可执行选项进行比较。 完成上述比较并获得调用方明确批准后,以服务器强制执行的最短路径生成一个已验证的未签名计划:

npx --yes [email protected] assetfare-plan \
  --caller-approved --mode session \
  --quote quote.json --select-exact-quote-bounds \
  --wallet solana=<CALLER_SOLANA_PUBLIC_KEY> \
  --wallet base=<CALLER_BASE_PUBLIC_ADDRESS> \
  --event-signer-public <CALLER_OWNED_SOLANA_PUBLIC_KEY> \
  --session-token-output ./session-capability.json \
  --wallet-handoff-output ./caller-wallet-handoff.json

--select-exact-quote-bounds 是对报价最大输入和最小输出边界的明确本地选择。它会在内存中生成严格的 approval_v3,但不会声称 --caller-approved 能证明已获得人工批准。若要使用自定义的更严格边界,或生成可独立审查的批准文件,请保留三步流程:使用明确边界运行 assetfare-select,并将其权限为 0600 的 approval.json 传给 assetfare-plan --approval approval.json。 CLI 中的经济指导仍仅供参考。价格重要时,请比较一份最新的全包报价;无需额外的确认标志。

assetfare-plan 会验证报价和批准绑定,仅发送选定的准备/会话 POST,检查返回的路径、提供方、边界以及 ActionSafetyReceiptV1/原始内容/操作/捆绑包哈希,然后以未签名、未提交的状态停止。会话令牌绝不会出现在标准输出或结构化结果中。可选的令牌输出路径必须尚不存在,且创建时权限为 0600;只有在可接受进程退出后无法恢复的情况下,才省略该路径。

可选的调用方钱包交接文件消除了后续操作的不确定性,同时不会越过托管边界。对于 EVM 操作,其中包含有序且经过验证的 EIP-1193 eth_sendTransaction 请求模板;对于 Solana,其中包含精确验证过的指令、费用支付方、所需签名者,以及针对 Solana Wallet Standard 客户端的明确新鲜区块哈希构造要求。该文件可独立使用:精确验证过的捆绑包、ActionSafetyReceiptV1、计划验证结果、原始内容/操作/捆绑包绑定以及规范交接哈希,都会与钱包请求数据一同传递,以便接收进程重新计算这些值。 Handoff v3 将两种不同的权限分开。AssetFare 始终不得调用钱包。人工可以逐个手动确认请求;外部 Agent 也可以仅在独立且由调用方管理的本地策略授权下自动执行,且该策略必须明确规定金额、收款方、费用和交易上限。AssetFare 不会选择该策略、调用钱包、持有密钥、签名或提交。

对于会话模式,请在工作流结束前保留该能力文件。如果会话创建响应丢失,请使用 --session-capability-input ./session-capability.json 重复执行相同的计划命令;它会复用完全相同的令牌和幂等键。文件包含会话 ID 后,无需重新创建会话即可恢复:

npx --yes [email protected] assetfare-session \
  --operation get --capability-file ./session-capability.json

npx --yes [email protected] assetfare-session \
  --operation observe-source --capability-file ./session-capability.json \
  --idempotency-key source-0001 \
  --transaction-hash <CALLER_ALREADY_SUBMITTED_TRANSACTION_HASH>

assetfare-session 仅接受调用方已验证、签名并提交的操作所对应的交易哈希。它只会在会话标头中发送承载令牌,绝不会打印令牌。权限为 0600 的能力文件还会保留严格批准、精确意图、公开钱包映射和直接路由摘要,以便对每个后续 current_action 应用完整的首个操作语义验证器。每个后续 EVM 或 Solana 操作都会获得一个全新的、可自行验证的调用方钱包交接;使用 --wallet-handoff-output <new-file> 将其保存到文件。旧版 v1 能力文件可以读取不含操作的会话,但在暴露未经验证的操作前会安全失败。结构化的 409 恢复标志会保留在 CLI 错误中。即将打开调用方钱包前,请请求一份即时交接:

npx --yes [email protected] assetfare-session \
  --operation wallet-ready \
  --capability-file ./session-capability.json \
  --idempotency-key wallet-ready-0001 \
  --wallet-handoff-output ./wallet-ready-handoff.json

报价绑定有效期仍为 60 秒。选定的未签名操作捆绑包有效期为 180 秒,其 EVM 链上截止时间为 240 秒。wallet-ready 仅在当前操作至少还剩 120 秒时接受该操作;如果未提交的操作已过期,它会刷新该会话的确切步骤,深入验证替换内容,并写入新的、权限为 0600 的交接文件。它绝不会提前替换仍有效的操作、调用钱包、签名或提交。

调用方管理的自主执行

assetfare-agent-runner 将经过验证的会话交接连接到外部 Agent 现有的钱包,同时不会让 AssetFare 成为托管方。它在调用方的进程中运行。调用方提供两个本地文件:

每个 AssetFare 未签名操作现在都是携带证明的交接。远程 MCP 语义验证可作为有用的传输证据,但有意不具备签名权限。本地包会重新计算 bundle 和交接哈希、意图、钱包、路径/提供商、金额上限、解码后的目标/程序、选择器/指令以及签名者集合。它首先返回精简的 assetfare-local-verification-verdict-1.0.0 状态 verified_for_simulation。只有在调用方拥有的钱包适配器成功模拟了精确绑定的载荷,且委托策略仍授权该操作后,runner 才会生成 verified_for_signing 并调用该本地适配器。因此,Agent 只需处理一个简洁的判定结果,而不必分析原始交易。外部提供商推荐仅是提供商交接;AssetFare 不会构建或声称验证该提供商的交易。

打包的委托 runner 支持 EVM 和 Solana 交接。Aptos 路由会返回经过验证的 Aptos Wallet Standard 未签名 BCS 交接,并禁用委托 runner 执行;调用方需在自己的 Aptos 钱包中确认、模拟、签名并提交该交接。

为它注入资金前,请验证本地适配器合约,且不要调用任何钱包、签名者、RPC 提交功能或发起网络请求:

npx --yes [email protected] assetfare-adapter-conformance \
  --wallet-adapter ./my-local-wallet-adapter.mjs

CLI 刻意不提供私钥、种子、助记词、密钥库、已签名原始交易、远程签名者或托管钱包选项:

npx --yes [email protected] assetfare-agent-runner \
  --capability-file ./session-capability.json \
  --policy-file ./caller-execution-policy.json \
  --state-file ./caller-runner-state.json \
  --wallet-adapter ./my-local-wallet-adapter.mjs

对于每个当前操作,runner 都会重新验证自验证交接,要求配置的剩余有效期,在首次批准前预留 EVM 原生资产的最坏情况支出,在每次提交前检查 gas/费用/租金和交易数量限额,并在模拟后以及每次常规或恢复提交前再次检查策略、总运行时间和操作到期时间。v2 适配器必须回传精确的执行窗口哈希,并会在使用调用方钱包前自行执行最终检查。runner 只调用调用方适配器,仅持久化公开哈希和成本摘要,通过会话观测已提交的哈希,并重复执行,直至确认达到绑定的最终最低值。仅批准失败时,可调用调用方适配器执行精确归零的撤销恢复。适配器调用会幂等地绑定到公开操作 ID,以支持崩溃恢复。

本地适配器通过调用方的钱包/RPC 进行签名和提交。打包的参考适配器接受标准提供程序对象,从不接受密钥字符串,并且只存储模式为 0600 的公开操作元数据,以支持幂等重试。它仅返回模拟结果、公开确认信息和交易哈希。远程 MCP 和 A2A 服务仍不提供钱包、密钥、签名、提交或 runner 工具。在每个结果中:

key_location: caller_wallet_adapter_only
signed_by: caller_wallet_adapter
submitted_by: caller_wallet_adapter
assetfare_server_key_access: false
assetfare_server_signing: false
assetfare_server_submission: false

对于控制多个 EVM 链的钱包,evmProvider 可以是一个 EIP-1193 提供程序,也可以是一个异步 (chainId) => provider 解析器。参考适配器会在模拟、签名、提交和确认之前解析准确的请求链,拒绝链或账户不匹配的情况,并默认要求两次 EVM 确认。Solana 确认仍为 finalized。 会话 CLI 和 AssetFare 服务均不提供签名或提交途径。选择报价和创建计划还要求报价至少剩余 15 秒有效期;否则,应获取并确认新的报价,而不是冒着报价过期的风险。

评估器默认使用具有代表性的 1,000 美元 solana:USDC -> base:USDC 请求。该 USDC 结果是 AssetFare 的一个候选报价, 并非跨提供方的市场比较;请应用该路由专属的最优报价规则,并确认新报价。目前, 此前的 solana:SOL -> base:ETH 比较路由在经济性方面暂不活跃,因此公共 API 会拒绝该路由, 而不是返回 AssetFare 报价或触发竞品请求。评估任何路由前,请先查看 100 条路由的目录和实时功能。

提供只读框架集成,包括 Coinbase AgentKit 和 GOAT,以及经过项目审查的(由项目编写的仓库审查,并非独立第三方保证) SendAI Solana Agent Kit 插件 和 elizaOS 插件,另有用于 Agenti 的报价工具。这些集成都不提供准备、签名、提交、资金注入、兑换或桥接执行功能。

Dify Agent 可以安装经过审查的 AssetFare Marketplace 插件。 它提供两个原生 REST 工具——实时功能和单条路由报价,不提供凭据、钱包、身份验证、会话、准备、签名、提交、兑换或桥接执行工具。

Hugging Face smolagents 用户可以从免费的 Static Spaces 加载经过审查的 报价工具 或 功能工具。 Hub 工具会在本地执行远程代码:请检查 tool.py,设置 trust_remote_code=True,并固定到文档中说明的不可变版本。 完整源代码和测试位于 assetfare/smolagents-assetfare。

A2A v1 报价适配器

AssetFare 还提供 A2A Agent Card 1.7.0 版,供无需 MCP 即可发现报价和经调用方批准的未签名工作流的 Agent 使用:

  • 规范 Agent Card:https://api.assetfare.dev/.well-known/agent-card.json
  • 返回相同卡片的旧版发现别名:https://api.assetfare.dev/.well-known/agent.json
  • JSON-RPC v1 端点:https://api.assetfare.dev/a2a
  • 协议:官方 @a2a-js/sdk v1、A2A-Version: 1.0、 Content-Type: application/json

只读报价技能接受一个结构化 DataPart,其中包含 fromChain、fromToken、toChain、toToken 和 amountUsd。它会调用 公开的 v2 能力、状态和报价端点,并返回一条报价及其原样传递的 caller_action_plan_handoff。amountUsd 必须是有限数值且至少为 1;适配器不设上限,但仍受上游实时可用性 和流动性影响。另外两项经调用方批准的 A2A 技能与 MCP 执行工具对应:经过深度验证的一次性 prepare 操作,提供可自行验证的钱包交接信息;以及完整的 session 生命周期 (session_create、session_get、observe_source、observe_output、 refresh_action)。在调用 session_create 之前,A2A 客户端会在本地生成 其会话令牌;远程 A2A 端点不会提供令牌生成操作。每项会话操作还要求提供从所选 确切报价复制而来的相同哈希绑定 verificationContext、严格批准信息和公开钱包映射。适配器会在发送 上游请求前验证该上下文,验证每个 EVM、Solana 或 Aptos current_action,并生成 新的、可自行验证的调用方钱包交接信息。每项执行操作都要求显式设置 callerApproved:true 并提供调用方的公开钱包地址;AssetFare 不会签名或提交交易,而且只会观察调用方自己提交的 交易哈希。安全的 409 响应会保留为结构化的重新批准/恢复指引;它绝不会授权自动重新报价、重放 或替换会话。

获取卡片、注册表健康检查、TCK 请求或注册表生成的 SendMessage 探测属于发现/一致性流量,并非客户需求。

使用官方 a2aproject/a2a-tck 提交 263b9cfa 检查了 公开端点:所有 55 项适用的 MUST 检查均已通过。五项通用 TCK SUT 固定装置测试会发送带有特定 messageId 前缀的固定 TextPart 载荷,并要求返回无关的文本/文件/数据产物。这个结构化的非托管 Agent 刻意不实现这些测试;我们会披露这一例外,而不会将结果说成 100% 全部通过。

直接连接远程 MCP 客户端——无需安装软件包或提供 AssetFare API 密钥:

claude mcp add --transport http assetfare https://api.assetfare.dev/mcp
{
  "mcpServers": {
    "assetfare": {
      "url": "https://api.assetfare.dev/mcp"
    }
  }
}
Codex CLI 和应用

通过 CLI 添加远程服务:

codex mcp add assetfare --url https://api.assetfare.dev/mcp

也可以将其添加到 ~/.codex/config.toml 或项目的 .codex/config.toml。writes 批准模式会对未标注为只读的工具提示确认:

[mcp_servers.assetfare]
url = "https://api.assetfare.dev/mcp"
default_tools_approval_mode = "writes"
Gemini CLI
gemini mcp add --transport http assetfare https://api.assetfare.dev/mcp

等效的 ~/.gemini/settings.json 条目:

{
  "mcpServers": {
    "assetfare": {
      "url": "https://api.assetfare.dev/mcp",
      "type": "http",
      "trust": false
    }
  }
}
Cursor

将以下服务添加到项目的 .cursor/mcp.json 或全局 ~/.cursor/mcp.json:

{
  "mcpServers": {
    "assetfare": {
      "url": "https://api.assetfare.dev/mcp"
    }
  }
}

连接无需身份验证。主端点使用调用方持有的公开钱包,并在会话模式下使用客户端生成的能力令牌。只有单独的 旧版端点会使用旧 signMessage 流程生成的钱包绑定令牌;切勿将任一能力令牌放入 MCP 配置文件。

Agent 技能

可移植的 Agent Skill 位于 skills/assetfare-route/SKILL.md。 兼容 Skills.lc 的客户端可以直接从这个公开的 GitHub 仓库安装它。

npx --yes skills add assetfare/assetfare-mcp --skill assetfare-route -g -y

可移植 Agent 插件

支持已发布的、厂商中立的 Agent Plugins 1.0 格式的客户端,可以通过此仓库的 Git URL 安装。当前的 plugins CLI 可通过随附的兼容性元数据,安装相同的 MCP 连接和 AssetFare 路由评估技能:

npx plugins add assetfare/assetfare-mcp

主要 MCP 端点仅支持 v2。旧版钱包认证/会话工具隔离在 /mcp/legacy。AssetFare 不会接收私钥、签名或提交交易,且该技能将 REST/OpenAPI v2 保持为主要评估路径。

Circle Agent Stack 和其他支持 shell 的 Agent 可使用相同的技能和公共 REST/OpenAPI 流程;请参阅 integrations/circle-agent-stack。

首次调用评估

运行 npm run first-call-eval,验证全新的 MCP 客户端能否发现主要的 v2 只读报价工具、验证当前功能,并获取具有代表性的 1,000 美元 Solana 原生 USDC 到 Base 原生 USDC 的报价,而无需创建钱包登录、会话、操作、签名或交易。主要端点不包含旧版工具。仅在有意进行连通性/架构冒烟测试时使用 1 美元。

使用 Streamable HTTP。该端点没有服务端 API 密钥。只读 v2 工具从不验证钱包身份;准备/会话工具需要调用方明确批准并使用公开钱包。旧版钱包认证使用单独的端点。

本地 stdio

此仓库还包含一个兼容 stdio 的全工具包装器,供自托管使用,其中包括仅限本地的会话功能辅助工具。公共 Registry 条目使用精简的、仅支持 v2 的 Streamable HTTP 端点。软件包和 Registry 版本的审核与远程部署分开进行。

发布 npm 版本

npm 版本通过 .github/workflows/publish-npm.yml 使用 GitHub Actions OIDC 可信发布。该工作流通过手动触发,使用已有的不可变 GitHub 发布标签 v<package-version>;验证确切标签位于 main 且与 package.json 一致,运行完整的软件包检查和生产审计,拒绝已发布的版本,并使用短期 OIDC 凭据发布。GitHub 或此仓库中均不存储 npm 写入令牌。

npm 可信发布者记录固定为 GitHub 组织 assetfare、仓库 assetfare-mcp 和工作流文件名 publish-npm.yml。仅允许该工作流直接运行 npm publish。验证 OIDC 连接后,软件包设置应要求启用双重身份验证,并禁止使用传统令牌。

集成 npm 发布

五个稳定版集成包使用独立的、仅允许指定包的发布流程。其不可变标签固定如下:

  • assetfare-agenti-route-tools-v1.3.0 (@assetfare/agenti-route-tools)
  • assetfare-agentkit-action-provider-v1.3.0
  • assetfare-elizaos-route-plugin-v1.3.0
  • assetfare-goat-plugin-v1.3.0 (@assetfare/goat-plugin)
  • assetfare-solana-agent-kit-plugin-v1.3.0

当前稳定包和直接安装命令:

框架npm 包安装
Agenti@assetfare/agenti-route-toolsnpm install @assetfare/agenti-route-tools ai zod
Coinbase AgentKitassetfare-agentkit-action-providernpm install assetfare-agentkit-action-provider @coinbase/agentkit zod
elizaOSassetfare-elizaos-route-pluginnpm install assetfare-elizaos-route-plugin @elizaos/core zod
GOAT@assetfare/goat-pluginnpm install @assetfare/goat-plugin @goat-sdk/core zod
Solana Agent Kitassetfare-solana-agent-kit-pluginnpm install assetfare-solana-agent-kit-plugin solana-agent-kit zod

release-integration-provenance.yml 仅接受这五个包选项。 它要求对应的轻量标签必须指向由固定的 AssetFare 发布密钥签名且包含在 main 中的提交,并要求已有已发布的非草稿 GitHub 发布版本;随后运行该包锁定的检查、测试、构建、生产环境审计和打包验证,然后仅上传 npm tarball 及其 SHA-256 文件,并记录 GitHub 构建来源证明。它绝不会发布到 npm。

两个工作流都必须使用该包的精确标签设置 --ref 来触发,不得使用 main 或其他分支/标签。它们要求 GITHUB_REF 等于 refs/tags/<exact-package-tag>,且 GITHUB_SHA 等于已签名的标签提交;标签本身必须包含相同的两个工作流文件和固定的签名者数据。例如,完成下方的可信发布者前置配置后,可使用 gh workflow run release-integration-provenance.yml --ref assetfare-agentkit-action-provider-v1.0.0 -f package=assetfare-agentkit-action-provider 选择 AgentKit 的来源证明阶段。只有来源证明成功后,发布阶段才能使用相同的 --ref 和包选项运行 publish-integration-npm.yml。

publish-integration-npm.yml 接受相同的允许列表以及上方映射到每个不可变标签的精确版本。它会 重复执行签名标签、发布版本、清单、锁文件、测试、构建、审计和打包检查;仅下载两个精确的发布资源;验证 GitHub 的资源摘要、SHA-256 文件、GitHub 证明、包身份和逐字节可复现性;随后使用短期 OIDC 凭证发布下载的 tarball。只有注册表中现有版本的 shasum 完全匹配时才会接受;发生冲突时将安全失败。最终关卡要求 latest 标签、shasum 和 npm SLSA 来源证明均符合预期。

在目标 npm 包的 Settings → Trusted Publisher 条目完成配置并经过独立核验之前,请勿触发任何一个集成发布工作流。该条目必须使用组织 assetfare、仓库 assetfare-mcp、精确的工作流文件名 publish-integration-npm.yml,不设置环境,并授予直接执行 npm publish 的权限。 对五个包分别配置这一精确条目。不得替换为 publish-npm.yml、分叉仓库、名称不同的工作流或 npm 写入令牌。现有根目录 v1.x 来源证明和发布工作流保持独立且不作更改。

信任材料

  • 安全联系邮箱:[email protected]
  • 安全策略和私密报告渠道:https://github.com/assetfare/assetfare-mcp/security/policy
  • 已签名清单:https://api.assetfare.dev/.well-known/assetfare-manifest.json
  • 公共签名密钥:https://assetfare.dev/.well-known/assetfare-manifest.pub
  • 持续重新验证的运营方所有权:https://api.assetfare.dev/.well-known/owners.json
  • 当前路由的来源状态:https://api.assetfare.dev/v2/status
  • 当前路由的功能:https://api.assetfare.dev/v2/capabilities
  • 主 OpenAPI v2:https://api.assetfare.dev/v2/openapi.json
  • 由 MCP 提供支持的旧版 v1 OpenAPI:https://api.assetfare.dev/openapi.json
  • APIs.json:https://assetfare.dev/apis.json
  • Arazzo:https://assetfare.dev/arazzo.yaml
  • 服务卡片:https://api.assetfare.dev/.well-known/mcp/server-card.json
  • A2A Agent 卡片:https://api.assetfare.dev/.well-known/agent-card.json
  • A2A 端点:https://api.assetfare.dev/a2a
  • Agent 指南:https://assetfare.dev/llms-full.txt
  • 主网证据:https://assetfare.dev/evidence/
  • 配对路由证据:evidence/solana-base-paired-quotes-20260916.md
  • Agent 付款路由证据:evidence/solana-base-usdc-paired-quotes-20260916.md
  • 非活跃通道的历史同输入对比:https://assetfare.dev/compare/solana-to-base/
  • 按日期记录的 Solana USDC → Base USDC 对比($250,2026-09-23;明确注明非全包价格且并非完全相同的通道):https://assetfare.dev/compare/solana-usdc-to-base-usdc/

发现

  • 官方 MCP Registry:io.github.assetfare/assetfare 和 io.github.assetfare/assetfare-bridge
  • MCP Servers:https://mcpservers.org/servers/assetfare/assetfare-mcp
  • Smithery:https://smithery.ai/servers/twotw55/assetfare
  • Glama:https://glama.ai/mcp/connectors/io.github.odaiin/assetfare
  • Agent Skill:https://www.skills.sh/assetfare/assetfare-mcp/assetfare-route
  • Dify Marketplace:https://marketplace.dify.ai/plugin/odaiin/assetfare
  • Hugging Face 报价工具:https://huggingface.co/spaces/odaiin/assetfare-quote(规范的已审核修订版 a2895876d7adec645e93d7092e63b2ed4be17ef5)
  • Hugging Face 功能工具:https://huggingface.co/spaces/odaiin/assetfare-capabilities(规范的已审核修订版 bdbe1e82be617c77283dd44e67cc9bda2d220ec7)
  • Hugging Face 准备工具:https://huggingface.co/spaces/odaiin/assetfare-prepare(规范的已审核修订版 bc4619ea3d5443ed24e0e0892994530dea259188)
  • Hugging Face 会话创建工具:https://huggingface.co/spaces/odaiin/assetfare-session-create(规范的已审核修订版 f4af546056d1ac3f3cf44af428b66766f8beef15)
  • A2A Registry:https://a2aregistry.org/agents/d4f9ab1a-904c-4227-8fc6-548e45749de1
  • ARD:https://assetfare.dev/.well-known/ard.json

该封装有意不包含 AssetFare 路由引擎、钱包、RPC 凭据或内部运营数据。

Agent 使用场景

对于任何受支持的 v2 请求,Agent 会先读取 v2 功能信息,并通过 REST/OpenAPI 或只读的 assetfare_v2_quote MCP 工具请求最新报价。只有原有通道的现有客户端才应 另行连接到 /mcp/legacy。调用方独立签名并提交每项链上操作;此 MCP 服务绝不会代为执行。

请参阅首次调用评估脚本、https://assetfare.dev/evidence/ 上的公开主网证据,以及 https://assetfare.dev/case-studies/solana-to-base-mainnet-canary/ 上的端到端案例研究。

评论

支持 Markdown

第一次接触 MCP?

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

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