mcpField
F
Flario

Flario

本地服务
github.com金融数据17 周前更新

关于 Flario

Flario 是供 Agent 使用 Flare Network 协议的 MCP 服务,涵盖 FTSO 价格、FDC 证明和 FAssets。它会在本地依据链上根验证证明,并支持按次 x402 付款及可验证回执。

主要功能

  1. 01读取 FTSO 价格并验证证明
  2. 02处理 FDC 证明工作流
  3. 03检查 FAssets 与清算风险
  4. 04读取 Flare 投资组合数据
  5. 05通过 x402 按次付款并获取回执

适用场景

  1. 01查询并本地验证价格证明
  2. 02检查 FAssets 抵押品与清算风险
  3. 03验证 x402 结算
  4. 04汇总并独立验证证据

MCP 相关

Flario 提供查询 Flare 协议、验证携带证明的数据和付费调用的工具及引导式提示词。它可通过 stdio 或作为 HTTP hub 运行。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"dziuba0x-flario": {
"command": "npx",
"args": [
"-y",
"flario"
],
"env": {
"FLARE_RPC": "<FLARE_RPC>",
"FLARE_RPC_TESTNET": "<FLARE_RPC_TESTNET>",
"FLARE_PRIVATE_KEY": "<FLARE_PRIVATE_KEY>",
"X402_ENABLED": "<X402_ENABLED>"
}
}
}
}
启动命令npx -y flario
需要配置的环境变量
FLARE_RPCFlare mainnet C-chain RPC. Defaults to the public endpoint https://flare-api.flare.network/ext/C/rpc.
FLARE_RPC_TESTNETCoston2 testnet RPC. Defaults to the public endpoint https://coston2-api.flare.network/ext/C/rpc.
FLARE_PRIVATE_KEY密钥Only needed to submit FDC attestation requests on-chain or to broadcast an x402 settlement. Every read tool works without it.
X402_ENABLEDSet to true to turn on the x402 paywall for the two premium tools. Off by default, so premium tools are free.

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

安装包
npmflario1.6.0

工具

24

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

参数类型必填说明
addressstring是
networkenum是mainnet | coston2 | songbird | coston

详细介绍

Flario

CI npm version License: MIT Node Model Context Protocol

面向 Flare Network 的 MCP 服务。 Flario 让 AI Agent(在 Claude、Cursor、VS Code 或任何 Model Context Protocol 客户端中)通过日常语言访问 Flare 的内置协议:FTSO 价格馈送、FDC 跨链证明和 FAssets。它还为 Agent 提供钱包。高级工具按调用次数付费,使用在 Flare 上结算的 x402,每笔付款都会附带一张可由链本身验证的收据。

使用 npx flario 安装,也可以将它作为 HTTP 中枢运行。它开箱即用地支持 Flare 公共 RPC,读取数据无需账户或密钥,也绝不会持有或转发资金。

Flario 覆盖了完整的内置协议栈:FTSO 价格(包括携带证明的锚定价格馈送)、带本地 Merkle 证明验证的 FDC 证明工作流、深入的 FAssets 状态(每个 Agent 的抵押品、清算风险、系统总量、赎回队列)、Flare 投资组合读取(委托、投票权、可领取的奖励)、Songbird 和 Coston 支持,以及 Flare Confidential Compute 合约的监视器。读取操作将信任降至最低:FDC 和 FTSO 证明会在本地根据链上 Relay 根进行验证,而不会盲目信任 API。唯一的写入操作 fdc_request_attestation 只有在设置了 FLARE_PRIVATE_KEY 后才会提交交易;否则,它会提供一个准备好的请求,供你自行签名。

这是对 Flare 官方 MCP 服务的补充,而非替代品。他们的服务(dev.flare.network/mcp)提供文档搜索,为 Agent 提供知识。Flario 则为 Agent 提供操作能力和钱包:它调用内置协议,并让 Agent 为计算结果付费,同时附上可由链验证的收据。两者可以同时使用。

Flario 在 x402 生态系统中的位置

Flario 使用标准 x402 线路格式,因此它不是一种私有方言。付款要求会以常见格式返回,付款载荷会在 HTTP 中枢上以 Base64 编码的形式通过 X-Payment 标头传输,结算摘要则会通过 X-Payment-Response 返回。现有的 x402 客户端无需了解 MCP,即可向 Flario 端点付款;MCP Agent 也无需了解 HTTP,即可付款。

Flario 在此基础上增加了证明层。在典型的 x402 部署中,客户端会因为 Facilitator 的说明并指向某笔交易,而得知付款已结算。由于 Flare 将数据连接器内置于链中,Flario 可以更进一步:fdc_verify_settlement 会获取关于结算交易的 FDC 证明,在本地根据链上 Relay 根验证 Merkle 证明,并将其绑定到实际的 ERC-20 转账,因此这张收据本身即可独立成立,无需信任 Facilitator。这一步依赖于链内置的协议,因此很难移植到其他地方。


DELICTI:行动前先取得授权

flario 是首个支持 DELICTI 的执行者。付费 Agent 可以在其 x402 载荷中添加 mandate_id(以及可选的 mandate_registry);服务端会将其绑定到回执(flario-receipt/2,字段 mandate_ref)中,让任何第三方都能根据链上授权检查行为,并借助 Flare 的 FDC 作为第二位见证,证明回执无效或预算超支。

可选的安全制动器——在服务端设置:

DELICTI_REGISTRY=0x…        # MandateRegistry address on X402_NETWORK
DELICTI_REQUIRE_MANDATE=1   # refuse payments that carry no mandate_id

设置 DELICTI_REGISTRY 后,如果授权未生效,或付款方不是受授权的 Agent,则付款会在任何资金转移前被拒绝。这里的任何操作都不会影响 EIP-712 授权;错误的授权绝不会导致资金转移,只会导致行为被拒绝,或之后被证明无效。

为什么选择 Flario

  • 深入支持 Flare 内置的协议。 FTSO、FDC 和 FAssets 都是链的内置功能,Flario 的 24 个工具也是如此。通用的多链 MCP 服务无法触及这些功能,这种深度也无法移植到其他链上。
  • 回答附带证明,因此你不必只听我说。 价格和跨链事实都附带 Merkle 证明,Flario 会在本地根据链上根进行验证。Agent,甚至智能合约,都可以依赖这些回答,而无需信任任何 API。
  • Agent 可以付款,并获得回执。 高级工具通过 x402 在 Flare 上按调用结算,每笔付款都会返回可移植的回执,Flare 自己的 FDC 可以对其进行证明,而不只是依赖协调器的说法。目前 x402 生态中的其他链都做不到这一点。
  • 可自托管,无资金托管。 它通过公共 RPC 运行,读取数据时无需账户或密钥,也绝不会触碰你的资金。

示例

将 Flario 添加到 MCP 客户端后(请参阅安装),只需用日常语言提问:

向 Agent 提问Flario 运行
“Flare 上的 FLR/USD 价格是多少?附上我可以验证的证明。”get_ftso_anchor_feed
“现在距离清算最近的 FXRP Agent 是哪些?”fassets_liquidation_scanner
“显示 0x... 的 FLR 投资组合:余额、委托和可领取奖励。”get_flr_stake_info
“谁在运营 FXRP Agent 0x...?”fassets_agent_details
“使用 Flare 的 FDC 证明这笔结算确实发生过。”fdc_verify_settlement
“将此 API 的数据连同证明写入链上,并且只接受来自我信任的主机的数据。”fdc_web2json_request 然后 fdc_verify_web2json

附带证明的价格会返回数值,以及 Agent 可以自行验证的证明(内容已精简):

{
  "verified": true,
  "verification": "Local: keccak256(abi.encode(feed body)) folded through the Merkle proof equals Relay.merkleRoots(100, round) read on-chain.",
  "name": "FLR/USD",
  "price": 0.006786,
  "voting_round_id": 1402671,
  "merkle_root": "0x...",
  "proof": ["0x...", "0x..."]
}

安装

Claude Desktop

编辑 ~/Library/Application Support/Claude/claude_desktop_config.json(macOS)或 %APPDATA%\Claude\claude_desktop_config.json(Windows),并添加:

{
  "mcpServers": {
    "flario": {
      "command": "npx",
      "args": ["-y", "flario"],
      "env": {
        "FLARE_RPC": "https://flare-api.flare.network/ext/C/rpc",
        "FLARE_RPC_TESTNET": "https://coston2-api.flare.network/ext/C/rpc"
      }
    }
  }
}

重启 Claude Desktop,然后尝试提问,例如“Flare 上的 FLR/USD 价格是多少?”或“现在铸造了多少 FXRP?”

Cursor

编辑 ~/.cursor/mcp.json(全局)或 .cursor/mcp.json(单个项目),并添加:

{
  "mcpServers": {
    "flario": {
      "command": "npx",
      "args": ["-y", "flario"]
    }
  }
}

同一配置块也适用于任何支持 stdio 的 MCP 客户端(VS Code、Windsurf、Zed 等)。env 块是可选的,因为默认使用 Flare 公共 RPC。

检查是否正常(无需客户端,约 10 秒)
# List all 24 tools straight from the published package:
npx -y @modelcontextprotocol/inspector --cli npx -y flario --method tools/list

# Or call one, a proof-carrying FLR/USD price on mainnet:
npx -y @modelcontextprotocol/inspector --cli npx -y flario \
  --method tools/call --tool-name get_ftso_anchor_feed \
  --tool-arg feed_id=FLR/USD --tool-arg network=mainnet

从这里开始:七个提示词,无需了解 Flare

工具回答问题。提示词告诉你该先问什么。Flario 提供了七个提示词;连接后,它们会显示在 MCP 客户端的提示词列表中——在 Claude Desktop 中,位于消息框的 + 菜单里。

提示词功能
看看 Flare 能做什么通过实时调用进行引导式介绍:一个价格、同一价格及其携带的证明(你可以在本地验证),以及 FAssets 状态。如果你刚接触 Flare,就从这里开始。
无需信任任何人即可验证价格对一个数据源读取两次,一次为普通读取,一次为携带证明的读取,然后逐步说明为何 verified: true:用了哪个叶节点、哪个折叠步骤,以及根来自哪个合约。
将 Web API 转化为可证明的事实端到端演示 Web2Json,并揭示其中的陷阱:有效证明只能证明数据来自其中的网址,不能证明该网址值得信任。
检查 FAssets 系统健康状况对实时 Agent 抵押品和实时价格进行实际风险评估,而非介绍 FAssets 的工作原理。
证明 Agent 据以行动的内容汇总某项决策背后的事实,然后攻击这个汇总包,让你看到验证过程如何识破伪造的汇总包。
关注 Flare 2.0 的部署进展从链上读取机密计算的部署情况——哪些网络已部署、它能做什么——即使部署仍在进行中也能读取。
面向 Agent 构建者:为什么选择 Flare基于实际调用而非营销网站,阐述支持和反对选择 Flare 的理由,并指出生态系统薄弱之处。

每个提示词都会指示模型针对实时网络实际执行调用,然后解释结果,因此你既能获得实际数据,也能同时建立起整体认知。它们刻意设计成在某项功能尚未上线时如实说明,而不是含糊其辞。

关注 Flare 2.0 的到来

Flare 的机密计算目前正在逐个网络部署,而 Flare 尚未发布其 ABI——外围构件中没有 FlareTeeManager,包括 alpha 版本。fcc_deployment_status 仍能读取相关信息,因为有些重要事实并不需要 ABI。

截至 2026 年 9 月 1 日,该工具报告:

Confidential compute is registered on: coston.
Not yet on: mainnet, songbird, coston2.

coston: FlareTeeManager @ 0xc4885998f5D792ed88C5Af7a3AaCBe333f017658
  ERC-2535 diamond, 18 facets, 198 selectors, 0 unrecognised
  live state: 11 governance signers, machine allowlist revised 4 times
  fdc2Hub()          -> 0x064C7B68B0e2BC87e7bE34e89741485Fcb48FA2F  (has code)
  fdc2Verification() -> 0x21D3842E39A3b62ba15CD8A5D2ED5cEDea931502  (has code)

从选择器中可以看出其功能:协议托管钱包、对 TEE 机器及其代码哈希进行远程证明、针对机器允许列表的多重签名治理、在安全飞地内生成随机数,以及 FDC V2 接线。

为什么使用选择器,而不是函数调用

基于猜测的函数签名构建工具,一旦 Flare 确定接口就会失效。选择器是钻石合约内部的路由表——它们是链上的事实,重命名不会改变它们。因此,该工具会报告准确的信息(facet、选择器、地址、接线和治理状态),并标明推断所得的信息:人类可读的名称来自公开的签名数据库,每次打印时报告都会说明这一点。198 个选择器均已解析,且主题一致,因此这些映射几乎可以确定是正确的;但打印出来的会是“几乎可以确定”,而不是更肯定的说法。

这是一个未完成系统的测试网部署,其中任何内容都可能发生变化。这正是需要监控工具而非集成工具的原因。

证明 Agent 操作所依据的内容

这里其他每个工具都只会在你提出请求时验证某个事实,之后验证结果便会消失——它只会作为工具响应中的一句话留存下来,没人能在之后重新核验。证据包填补了这一缺口。

evidence_bundle 会将携带证明的事实收集到一个可移植对象中。evidence_verify 则负责接收并验证:它会根据每个叶节点自身的内容重新构建叶节点,通过 Merkle 证明逐层计算,并与当时从链上读取的 Relay.merkleRoots(protocol, round) 结果进行比较。验证者不必信任生成证据包的 Agent、本服务、数据可用性层或任何 API。他们只需要一个 RPC 端点。

事实会在加入证据包之前经过验证。验证失败的事实会被拒绝,而不是标记出来,因为内容可能为假的证据包比没有证据包更糟糕。出于同样的原因,没有 expect_source 的 Web2Json 事实也会被拒绝——未绑定的证明只能证明其中包含的 URL 所指向的内容。

哈希不是安全边界

bundle_hash 用于检测篡改。它能发现意外损坏和随手编辑,但攻击者若有意修改证据包,只需重新计算哈希即可。这没有问题,因为哈希从来不是保障所在。下面是一个在主网上真实运行的案例:

podmieniona wartosc 7116 -> 21348, hash przeliczony na nowo
verified: false | bundle_hash_intact: true | facts_failed: 1
reason: the proof does not fold to the on-chain FTSO Scaling root

攻击者将价格提高了三倍,并重新计算哈希,使完整性检查通过。验证仍然失败,因为你无法通过编辑 JSON 文件,生成一个经 Merkle 证明折叠后能得到 Flare 验证者早已签署的根哈希。

证据包无法证明的内容

它无法证明 Agent 的推理是诚实的、它查看的只有这些事实,或它的结论能够由这些事实推出。它能证明的是:这些特定事实在这些投票轮次中为真。这比“审计跟踪”所表达的主张范围更窄,而且这种克制是有意为之。

这也不同于大多数可验证工具调用工作所提出的主张。证明服务端正确执行了操作——通过 TEE、对执行过程进行 ZK 证明,或服务端签名——仍然需要你信任运营方或其硬件。这里证明的是事实本身,依据的是共识;这需要一条将预言机纳入协议、而非由某人部署合约的链。

工具

每个工具都会使用 zod 验证输入,并在 RPC 调用或数据源不可用时返回清晰的错误,而不会崩溃。22 个工具免费。运营方启用后,两个高级工具通过 x402 on Flare 结算;否则免费。

工具网络等级功能
get_flr_balancemainnet, coston2, songbird, coston免费查询某个地址的原生 FLR 和封装 WFLR(WNat)余额
get_flr_stake_infomainnet, coston2, songbird, coston免费投资组合:FLR 和 WFLR、投票权、委托、按来源划分的可领取奖励、FlareDrops
get_ftso_feedmainnet, coston2, songbird, coston免费查询一个 FTSO 数据源的最新价格("FLR/USD" 或 bytes21 ID)
get_ftso_feeds_allmainnet, coston2, songbird, coston免费查询所有内置数据源的最新价格
get_ftso_providersmainnet, coston2(见注释)免费活跃的 FTSO 数据提供方
get_ftso_anchor_feedmainnet, coston2, songbird, coston免费携带证明的 FTSO Scaling 价格及 Merkle 证明,并在本地根据链上 Relay 根进行验证
get_ftso_historymainnet, coston2, songbird, coston免费从公共 DA 层获取近期 FTSO Scaling 锚定数据源历史记录,每个数据点都经过 Merkle 验证
get_fassets_statusmainnet, coston2免费FAssets 铸造总量和 Agent 数量(简要摘要;参见 fassets_system_state)
get_fdc_proof_statusmainnet, coston2, songbird, coston免费某个轮次的 FDC Merkle 根和最终确认状态
get_smart_account_infomainnet, coston2(见注释)免费解析 XRPL 账户对应的 Flare 地址
fdc_request_attestationmainnet, coston2, songbird, coston免费准备并可选择提交 FDC 证明请求。返回交易哈希和投票轮次 ID
fdc_get_attestation_proofmainnet, coston2, songbird, coston免费从 DA 层获取证明,并在本地根据链上 Relay 根进行验证
fassets_agent_statusmainnet, coston2, songbird免费按 Agent 列出抵押率、铸造能力和清算状态(风险最高的排在前面)
fassets_system_statemainnet, coston2, songbird免费铸造总量、批次大小、铸造上限和暂停状态、总体抵押情况、赎回队列
fassets_agent_detailsmainnet, coston2, songbird免费Agent 名称、描述、徽标、使用条款、白名单状态(AgentOwnerRegistry)
songbird_fcc_registrysongbird(默认)、所有免费扫描实时合约注册表,查找 Flare Confidential Compute(PMW、TEE)部署
fdc_verify_settlementmainnet, coston2, songbird, coston免费通过内置 FDC(EVMTransaction 证明)证明 x402 结算,并将其与付款绑定
fdc_web2json_requestmainnet, coston2, songbird, coston免费将任意公共 Web API 转化为可验证事实:URL、jq 筛选器和 ABI 签名,并通过 Flare 验证器准备请求
fdc_verify_web2jsonmainnet, coston2, songbird, coston免费在本地验证 Web2Json 证明,并将其绑定到预期来源,然后解码载荷
fassets_liquidation_scannermainnet, coston2, songbird高级(x402)将 FAssets Agent 与实时 FTSO 价格关联:提供每个 Agent 的清算价格及距清算价的差距
fdc_bulk_proof_bundlemainnet, coston2, songbird, coston高级(x402)批量获取并在本地验证最多 20 个 FDC 证明

部分工具的说明:

  • 除非运营方设置 X402_ENABLED=true,否则高级工具免费运行。参见付款方式。
  • get_ftso_providers 需要外部索引器端点(通过下方的环境变量设置)。对于只读 stdio 服务,在链上聚合提供方并不实际。
  • get_smart_account_info 尽力提供结果。MasterAccountController ABI 尚未发布在 periphery 工件中,因此无法解析时会返回 has_account: false 提示。
FDC 证明流程
1. fdc_request_attestation  (type: Payment | AddressValidity | EVMTransaction,
                             source_chain: xrp | btc | doge | eth | flr | sgb)
     -> verifier prepareRequest -> fee quote -> FdcHub.requestAttestation
     -> { tx_hash, voting_round_id, abi_encoded_request }
2. wait ~90 to 180 s for the voting round to finalize
3. fdc_get_attestation_proof (voting_round_id, abi_encoded_request)
     -> DA-layer proof -> local keccak256 Merkle fold -> must equal
        Relay.merkleRoots(200, round) read on-chain -> verified response

如果未设置 FLARE_PRIVATE_KEY,步骤 1 会返回 mode: "prepared_only",其中包含编码后的请求、费用和 FdcHub 地址,因此你可以使用自己的签名者提交请求。设置密钥后,它只会在本地签名。


支付如何运作(x402)

Flario 通过 MCP 实现了 x402 支付协议。据我所知,这是第一个在其提供服务的同一条链上结算付费工具的 MCP 服务。HTTP 的 402 状态码和 X-Payment 标头分别映射到工具结果和工具参数:

1. call a paid tool                -> result: { x402_payment_required: true,
                                                accepts: [requirements] }
2. sign an EIP-3009 TransferWithAuthorization off-chain (gasless for the payer)
3. retry the SAME call with         -> x402_payment: base64(JSON payload)
4. the server checks the EIP-712 signature locally, checks the nonce on-chain,
   settles transferWithAuthorization on Flare, runs the tool
   -> result includes x402_payment_receipt (settlement summary) and
      x402_receipt (a portable, ZK-ready receipt; see RECEIPT_SPEC.md)

内置的 Facilitator 从不持有资金。transferWithAuthorization 会将代币直接从付款方转给收款方,而运营方密钥只负责支付 Gas 费,以广播客户端已签名的授权。重放会受到双重防护:EIP-3009 nonce 会在链上被使用,已结算的 nonce 也会缓存在进程中。

每次付费调用都会返回一个可移植的 x402_receipt。它是一个固定架构、自描述的记录,付款方仅以 Poseidon 承诺的形式出现,不会以明文形式出现;任何持有者都可以重新计算 keccak256 receipt_hash,以检查是否遭到篡改。付款方可以在支付载荷中使用可选的 commitment_salt 对承诺进行盲化。完整规范:RECEIPT_SPEC.md。


证明任何 Web 事实(Web2Json)

FDC 的 Web2Json 类型会从 URL 获取 JSON,对其运行 jq 筛选器,并返回 ABI 编码后的数据。这意味着,任何公共 API 都可以变成智能合约能够验证的事实。Flario 为 Agent 封装了整个流程:

1. fdc_web2json_request  (url + post_process_jq + abi_signature)
     -> a Flare verifier validates it and quotes the fee
     -> submit to FdcHub (your key), get a voting round id
2. wait ~90 to 180 s for the round to finalize
3. fdc_verify_web2json  (voting_round_id + abi_encoded_request + expect_source)
     -> Merkle proof checked locally against Relay.merkleRoots(200, round)
     -> attested URL bound to the source you expected
     -> payload decoded with the request's own ABI signature
expect_source 为何重要

Flare 自己的指南明确指出了这个陷阱(URL 解析安全):

有效的 FDC 证明只能保证数据来自证明中的 URL,不能保证该 URL 可信。

因此,通过 Merkle 验证的证明只完成了一半。攻击者可以搭建自己的端点,为其获取完全有效的证明,再把该证明交给你。因此,fdc_verify_web2json 会完成两项工作:验证证明,并将证明绑定到你实际想使用的数据源。

{
  "expect_source": {
    "hosts": ["api.coingecko.com"],
    "path_prefix": "/api/v3/simple/price",
    "require_https": true,
    "http_method": "GET"
  }
}

如果证明中的 URL 不匹配,即使密码学验证完全没问题,调用也会明确失败。省略 expect_source 仍然可以获取证明,但响应会标记为 source_bound: false 并附带警告,因为攻击者可以利用这种方式绕过验证。

绑定使用真正的 URL 解析器,而不是字符串前缀匹配,因此可以堵住简单检查容易漏掉的三种绕过方式:

攻击看起来像前缀匹配为何失效
用户信息https://[email protected]/price以可信字符串开头,但主机是 evil.com
同形字https://аpi.coingecko.com/price(西里尔字母 а)外观相同,但主机不同
路径注入https://api.coingecko.com/evil/api/v3/simple/price包含预期路径,但不是以它开头

test/web2json.test.ts 中为这些情况各编写了一个测试。

下面是来自 Coston2 的真实验证响应,使用的 API 与 Flare 自己的 Web2Json 指南相同(内容已精简):

{
  "verified": true,
  "source_bound": true,
  "verification": "Two checks passed. The Merkle proof folds to Relay.merkleRoots(200, round) read on-chain, and the attested request matches the source you expected (protocol, host, path, method).",
  "voting_round_id": 1409295,
  "source": {
    "url": "https://swapi.info/api/people/3",
    "http_method": "GET",
    "parsed": { "protocol": "https", "host": "swapi.info", "path": "/api/people/3" }
  },
  "data": { "name": "R2-D2", "height": "96", "mass": "32" }
}

如果请求相同的证明,却指定了不同的预期主机,调用会按设计失败,即使密码学验证完全有效:

The FDC proof is VALID (Merkle-verified against the on-chain Relay root) but it
does NOT come from the source you expected: attested host "swapi.info" is not in
the expected list (api.coingecko.com). Treat this data as untrusted.
经 FDC 验证的结算(这是我最引以为豪的部分)

收据声称一笔付款已结算。Flare 可以利用链上原生内置的数据连接器证明这一点。fdc_verify_settlement 接收一笔结算交易,获取针对该交易的 FDC EVMTransaction 证明,在本地根据链上 Relay 根验证 Merkle 证明,然后将证明与付款绑定:它会确认经过证明的交易确实包含一笔 ERC-20 Transfer,将该资产转给收款方,且金额不低于指定金额。由此生成的收据带有 fdc_attestation_ref,无需信任支付协调方即可证明结算。x402 生态系统中的其他链都无法生成这样的协议级收据。该工具本身不会提交交易(证明请求无需许可,因此由持有者提交),这意味着托管式中枢无法被诱骗而白白消耗 Gas。

运营方设置:

X402_ENABLED=true
X402_NETWORK=coston2            # mainnet also needs X402_ALLOW_MAINNET=true
X402_PAY_TO=0xYourPayeeAddress
FLARE_PRIVATE_KEY=0x...         # operator gas key for settlements
# optional: X402_TOKEN_ADDRESS, X402_PRICE_DEFAULT=0.001,
#           X402_PRICE_FASSETS_LIQUIDATION_SCANNER=0.005 (whole-token units)

支付代币(EIP-3009,于 2026 年 7 月在链上核验):Coston2 默认使用 0xce13911D4896200b543a61E4ae8E829E661Dd8EB(测试版 USDT0),主网默认使用官方 USD₮0,地址为 0xe7cd86e13AC4309349F30B3435a9d337750fC82D。你可以通过 npx tsx scripts/x402-demo-client.ts 完整体验 Agent 工作流。


将其作为中枢运行

你可以将 Flario 作为网络服务运行,而不是本地 stdio 进程:

npx flario --http 8402         # or FLARIO_HTTP_PORT=8402
# to expose it beyond localhost:
FLARIO_HTTP_HOST=0.0.0.0 npx flario --http 8402
端点提供的服务
POST /mcp通过 Streamable HTTP 提供完整的 MCP 服务(无状态),包含全部 24 个工具,支持 x402 带内支付
GET /api/premium/liquidation-scanner?asset=FXRP&network=mainnetHTTP x402:返回 402 和 accepts[],使用 X-Payment 标头重试,即可获得结果和 X-Payment-Response
POST /api/premium/proof-bundle相同的 x402 流程。请求正文:{"requests":[{"voting_round_id":N,"abi_encoded_request":"0x..."}],"network":"..."}
GET /服务发现:端点、x402 配置、定价
GET /healthz存活状态

REST 端点采用标准 x402 线路格式(X-Payment 中为 Base64 编码的 JSON),因此非 MCP Agent 和现有 x402 客户端也可以付款。仓库中包含 Dockerfile:

docker build -t flario-hub . && docker run -p 8402:8402 \
  -e X402_ENABLED=true -e X402_PAY_TO=0xYou -e FLARE_PRIVATE_KEY=0x... flario-hub

网络

网络链 ID默认 RPC覆盖用环境变量
Flare 主网14https://flare-api.flare.network/ext/C/rpcFLARE_RPC
Coston2 测试网114https://coston2-api.flare.network/ext/C/rpcFLARE_RPC_TESTNET
Songbird 金丝雀网19https://songbird-api.flare.network/ext/C/rpcFLARE_RPC_SONGBIRD
Coston 测试网16https://coston-api.flare.network/ext/C/rpcFLARE_RPC_COSTON

合约地址不会硬编码,而是在运行时通过 Flare ContractRegistry 解析;该注册表在全部四个网络上的地址均为 0xaD67FE66660Fb8dFE9d6b1b4240d8650e30F6019。FDC 验证器和 Data Availability 端点默认使用 dev.flare.network/network/overview 中列出的 Flare 托管公共服务。

配置

以下配置均为可选项。即使不进行任何配置,服务也会使用公共 RPC 和 Flare 托管的 FDC 服务运行。

变量用途范围说明
FLARE_RPC所有主网调用覆盖主网 RPC 端点。
FLARE_RPC_TESTNET所有 Coston2 调用覆盖 Coston2 RPC 端点。
FLARE_RPC_SONGBIRD所有 Songbird 调用覆盖 Songbird RPC 端点。
FLARE_RPC_COSTON所有 Coston 调用覆盖 Coston RPC 端点。
FLARE_PRIVATE_KEYfdc_request_attestation、fdc_web2json_request用于提交证明请求的本地签名密钥。绝不会记录日志,除签名交易外也绝不会离开进程。若仅使用预备模式,请不要设置此项。
FLARIO_HUB_ALLOW_SUBMIThub 模式允许在 hub 模式下提交链上证明。默认关闭,以免匿名调用者消耗运营方的 Gas。参见安全态势。
FDC_VERIFIER_API_KEYfdc_request_attestation验证器 API 密钥。默认为公共密钥 00000000-0000-0000-0000-000000000000。
FLARE_DA_API_KEYfdc_get_attestation_proofDA 层 API 密钥。默认为公共密钥。
FLARE_DA_URLfdc_get_attestation_proof覆盖 DA 层基础 URL(例如,可自托管的实例)。
X402_ENABLED付费工具设置为 true 可为付费工具启用 x402 付费墙。默认关闭,因此付费工具免费。
X402_NETWORKx402结算网络(默认值为 coston2;mainnet 还需要设置 X402_ALLOW_MAINNET=true)。
X402_PAY_TOx402接收付款的收款方地址(启用时必填)。
X402_TOKEN_ADDRESSx402EIP-3009 支付代币覆盖值(默认值:Coston2 测试版 USDT0,主网 USD₮0)。
X402_PRICE_DEFAULT / X402_PRICE_<TOOL>x402以整代币为单位的价格(默认值为 0.001)。
FLARE_PROVIDERS_APIget_ftso_providers返回提供方 JSON 数组(或 { "providers": [...] })的索引器端点。
FLARE_METRICS_APIget_fassets_status可选的备用指标 API,仅在链上读取失败时使用。

请参阅 .env.example,其中提供了可直接复制粘贴的模板。


安全态势

这个项目涉及资金,因此默认设置偏向谨慎。

  • 绝不托管资金。 Flario 从不持有或转发资金。x402 结算通过 transferWithAuthorization 直接将代币从付款方转给收款方;运营方密钥只用于支付 Gas,以广播客户端已签名的授权。
  • 先验证,再绑定。 每个使用证明的工具都会做两件事,而非只做一件。Merkle 证明通过检查是必要条件,但并非充分条件,因此 fdc_verify_settlement 会将证明绑定到实际的 ERC-20 Transfer,而 fdc_verify_web2json 会将其绑定到预期来源。针对错误对象的有效证明会被拒绝,并给出明确原因。
  • Hub 模式下默认禁用提交。 在 stdio 模式下,调用者只有你,因此用自己的 Gas 费提交证明请求正是你所要求的。在 Hub 模式下,任何能访问端口的人都可以调用,而运营方密钥用于结算 x402 付款,因此允许陌生人触发付费链上请求会耗尽密钥中的资金。因此,Hub 模式会拒绝链上提交,而改为返回已准备好的请求;除非运营方设置 FLARIO_HUB_ALLOW_SUBMIT=true。
  • 密钥保留在本地。 FLARE_PRIVATE_KEY 从环境变量中读取,在进程内用于签名,绝不会被记录日志或传输;唯一例外是作为已签名交易发送到你配置的 RPC。
  • 双重防止重放。 EIP-3009 nonce 会在链上被消耗,已结算的 nonce 也会缓存在进程内,以缩短交易广播到链上可见之间的时间窗口。
  • 不收集或存储任何用户数据。 没有分析功能、没有数据库,也不会记录交易图谱。收据归持有者所有。
  • 绝不硬编码合约地址。 合约地址会在运行时通过 Flare ContractRegistry 解析,源码中的每个协议常量都注明了其来源的 Flare 文档。

发现问题了吗?欢迎提交 issue;如果涉及敏感信息,也可以私下联系我。


开发

git clone https://github.com/dziuba0x/flario.git
cd flario
npm install

npm run dev      # watch mode via tsx, no build step
npm run build    # type-check and compile to dist/
npm test         # offline test suite, recorded fixtures, no network
npm start        # run the compiled server
npm run inspect  # open the MCP Inspector against the built server

npx tsx scripts/live-check.ts   # live checks against public RPCs (mainnet, Coston2, Songbird)

技术栈:TypeScript(ESM,Node 18+)、@modelcontextprotocol/sdk、viem、zod 和 @flarenetwork/flare-periphery-contract-artifacts。

构建会生成可执行文件 dist/index.js(带有 #!/usr/bin/env node shebang),并将其配置为 flario 可执行命令。无需客户端,即可使用 Inspector CLI 测试单个工具:

npx @modelcontextprotocol/inspector --cli node dist/index.js \
  --method tools/call --tool-name get_ftso_feed \
  --tool-arg feed_id=FLR/USD --tool-arg network=mainnet

许可证

MIT,Dziuba Technology / Alan Dziuba。

基于 Flare Network 构建。欢迎提交 issue 和贡献代码。

评论

支持 Markdown

第一次接触 MCP?

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

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