关于 Ankr Agent RPC
Ankr Agent RPC 是通过 Ankr RPC 为 AI Agent 提供区块链只读数据的 MCP 服务,覆盖 EVM 网络和 Sui。它支持 ABI 解码,并以 TORPC 分层响应呈现交易、日志、余额、对象等数据。
主要功能
- 01查询交易、区块与事件日志
- 02读取多链余额、活动及 NFT
- 03解析合约并查询代币价格
- 04支持 Sui 对象与 Move 事件
- 05分页读取并续接查询结果
- 06通过 rpcCall 转发只读方法
适用场景
- 01检查交易详情及解码后的合约事件
- 02汇总地址的多链余额与交易活动
- 03查询 Sui 对象、包和 Move 事件
- 04让 Agent 获取区块链只读数据
MCP 相关
该 MCP 服务将 Ankr RPC 与索引数据工具提供给 MCP 客户端,支持托管端点或本地 stdio。请求可带 TORPC 层级,响应会标明实际应用的层级;rpcCall 不支持签名或提交交易。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://mcp.ankr.com/rpcclaude mcp add --transport http w3tech-agent-rpc https://mcp.ankr.com/rpc{"mcpServers":{"w3tech-agent-rpc":{"type":"http","url":"https://mcp.ankr.com/rpc"}}}在 Cursor 中打开{"servers":{"w3tech-agent-rpc":{"type":"http","url":"https://mcp.ankr.com/rpc"}}}在 VS Code 中打开{"mcpServers":{"w3tech-agent-rpc":{"type":"http","url":"https://mcp.ankr.com/rpc"}}}{"mcpServers":{"w3tech-agent-rpc":{"serverUrl":"https://mcp.ankr.com/rpc"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
https://mcp.ankr.com/rpc需要授权工具
25| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| minUsd | number | 否 | 仅列出价值至少达到此 USD 金额的资产;其余资产汇总为尘埃资产。 |
| address | string | 是 | 钱包地址(0x...)或 ENS 名称(*.eth) |
| maxTokens | integer | 否 | 要列出的资产数量上限,按 USD 价值降序排列(默认 20,最大 100)。 |
| blockchains | array | 否 | 要查询的链;省略时查询所有链 |
详细介绍
Ankr Agent RPC — MCP 服务
一个 Model Context Protocol 服务,让 AI Agent 通过 Ankr RPC 以节省令牌的方式访问区块链数据。
读取请求会附带 TORPC Accept-Token-Tier: 2 标头。Tier 1 会重命名字段、将十六进制转换为十进制,并去掉服务字段(logsBloom、cumulativeGasUsed、头部根哈希)。Tier 2 则在此基础上进行 ABI 解码,因此合约调用和事件日志会以命名参数的形式返回。
在一次实时测试中,对 21 种方法和 25 个 Ethereum 主网区块进行测试,并使用 o200k_base 对完整 HTTP 正文进行令牌加权计数,结果显示 Tier 2 的数据量减少了 48.4%,Tier 1 减少了 35.3%。解码密集型读取的节省幅度最大:eth_getTransactionByHash 为 69.0%,eth_getTransactionReceipt 为 64.5%,eth_getBlockReceipts 为 60.3%,区块方法为 40.4%,eth_getLogs 为 28.9%;标量读取可节省 9–19%。各方法的具体数据:live-token-savings-2026-07-17.md。
快速开始
在 ankr.com/rpc 获取免费 API 密钥。
托管版(无需安装)
服务运行于 https://mcp.ankr.com/rpc。将密钥作为 x-ankr-api-key 标头发送(或使用 Authorization: Bearer <key>);每个请求都会携带调用方自己的密钥,服务不会保存你的凭据。
{
"mcpServers": {
"ankr-agent-rpc": {
"url": "https://mcp.ankr.com/rpc",
"headers": { "x-ankr-api-key": "<YOUR_KEY>" }
}
}
}
本地版(stdio)
{
"mcpServers": {
"ankr-agent-rpc": {
"command": "npx",
"args": ["-y", "@w3tech.io/agent-rpc-mcp"],
"env": { "ANKR_API_KEY": "<YOUR_KEY>" }
}
}
}
将此 JSON 放入客户端的 MCP 配置中:Claude Desktop(claude_desktop_config.json)、Cursor、Windsurf 或其他 MCP 客户端。Cursor 也接受命令形式:
env ANKR_API_KEY=<YOUR_KEY> npx -y @w3tech.io/agent-rpc-mcp
工具
原始 RPC,TORPC Tier 2
| 工具 | 功能说明 |
|---|---|
getTransaction | 按哈希获取交易和收据,并进行 ABI 解码 |
getLogs | 获取并解码事件日志;较大的区块范围会分块扫描并分页 |
getBlock | 获取区块头,可选择同时获取解码后的交易 |
索引与混合
| 工具 | 功能说明 |
|---|---|
getBalances | 获取原生币和 ERC-20 余额及美元价值 |
getAccountBalance | 一次获取多个链上的余额 |
getWalletActivity | 分页获取某地址的交易历史 |
getNFTs | 获取某地址持有的 NFT |
getTokenHolders | 分页获取 ERC-20 代币持有者 |
getTokenPrice | 获取美元价格及链、资产和 as_of 来源信息 |
getTokenPriceHistory | 获取代币的历史价格序列 |
getInteractions | 跨链查询某地址涉及过哪些链 |
resolveContract | 检查是否为合约,尽力获取 ERC-20 元数据及 EIP-1967 代理信息 |
searchChain | 查询交易/区块哈希、地址或区块编号 |
expandResult | 使用游标继续获取任意分页结果 |
发现与备用入口
| 工具 | 功能说明 |
|---|---|
listChains | 列出受支持的链、最高 TORPC Tier 及索引器可用性 |
describeMethods | 提供每种 JSON-RPC 方法的参数结构和完整示例,并说明你的密钥能否在该链上调用此方法 |
rpcCall | 调用路由工具未涵盖的任意读取方法 |
Sui
Sui 不是 EVM 链,也完全不会通过 JSON-RPC 代理访问:对 Sui 的调用会通过 gRPC 发出。getBalances、getBlock、getTransaction、getWalletActivity、getLogs 和 rpcCall 接受 chain: "sui" 并自行路由——getLogs 会读取指定检查点范围内的 Move 事件,并按发出事件的包或模块、事件类型和发送方筛选。resolveContract 和 searchChain 基于 Sui 从未支持过的 eth_* 调用,因此会在 Sui 上拒绝执行,并指出应改用哪个工具。Move 事件行的格式为 {contract, event, args},与 EVM tier-2 日志的格式相同——但它的 args 在 tier 0 就已到达,由节点解码,而不是从 ABI 解码,因此在此路径中,它不能作为某个 tier 的证据。
八个工具用于处理 Sui 支持而 EVM 链不支持的功能:
| 工具 | 说明 |
|---|---|
suiGetObjects | 按 ID 批量获取 Move 对象及其已解码字段 |
suiListOwnedObjects | 分页列出某个地址拥有的所有对象,并可按 Move 类型筛选 |
suiListDynamicFields | 列出某个对象 UID 下的表、包和动态对象字段 |
suiGetPackage | 获取已发布 Move 包声明的模块 |
suiGetFunction | 获取某个 Move 函数的签名 |
suiResolveName | 将 SuiNS 名称解析为地址,或将地址解析为名称 |
suiSimulateTransaction | 在当前状态下运行交易模拟,查看其执行效果,但绝不提交 |
suiWatchEvents | 从已执行的最新区块开始获取 Move 事件,并通过可恢复游标轮询 |
这就是全部工具:25 个工具。
rpcCall 的功能与限制
rpcCall 是读取数据和访问数据的备用通道,绝不是钱包。它采用写入拒绝列表,而非读取允许列表:在所有链类型上,它都会拒绝交易广播和签名、交易_构建_、节点和开发节点管理、会更改状态的动词,以及 geth debug_* 命名空间中用于节点操作的部分——其他所有请求都会转发。
因此,它不会维护允许读取操作的列表。哪些读取操作可用,由各链的端点区块链架构以及租户可调用的内容决定,因此转发的读取请求仍可能被拒绝(Method disabled, reason: restricted by blockchain schema)。此类拒绝即为权威答复;listChains 会报告支持情况。
请使用你自己的钱包或签名器签名并发送交易。
阅读响应
有两个字段决定如何读取每条结果,跳过它们的 Agent 会误读技术上正确的输出。
_meta.tier —— TORPC 层级是按调用协商的,且不作保证。在代理路径上,如果响应超出代理的压缩预算,或调用的方法本身不会经过代理压缩(例如 eth_call、eth_getCode 和 eth_getStorageAt),响应会以层级 0 返回(原始、未解码、没有 args)。每条成功响应都会在 _meta.tier 中标明实际应用的层级,因此请先检查该字段,再查找已解码字段;错误结果则会携带 _meta.error_code,且完全没有层级信息。有些工具还会在响应正文中报告 tier_degraded: true,并说明如何缩小请求范围;这表示它们代为请求了层级 2,但实际得到的层级更低。并非所有工具都会这样报告,因此应以 _meta.tier 为准。_meta.tier_source 会说明是谁应用了该层级,而上面的形状规则仅适用于代理:在 Sui gRPC 路径上(tier_source: "local"),Move 事件行在层级 0 时也会包含 contract、event 和 args,因为节点会自行解码 Move 结构体。
解码后的金额以原始基础单位表示,不会应用小数位数。对于一个有 6 位小数的代币,args.value: "41695680" 表示 41.69568,而不是 4169 万。报告人类可读的数值前,请使用 resolveContract 读取代币的小数位数。
_meta.token_count 是对输出文本按 o200k_base 计算的实际计数,并非 chars/4 估算值。输出文本不超过 256 KB 时,该计数准确无误,足以涵盖所有受显示上限约束的响应;超过此大小时,计数会使用外推值,且响应会携带 _meta.token_count_estimated: true。响应采用精简 JSON 格式,因此使用其他分词器的模型得到的数值会相近,但不完全相同。
工具输入采用严格校验:未知参数会触发验证错误,而不会被静默丢弃;因此拼写错误的参数名会被报告,而不是被忽略。大于 2^53 的区块编号必须以字符串形式传入,因为如此大的 JSON 数字并不精确。
TORPC 层级
| 层级 | 含义 |
|---|---|
| 0 | 透传 — 标准 JSON-RPC |
| 1 | 字段重命名、十六进制 → 十进制,并移除服务字段:logsBloom、cumulativeGasUsed、contractAddress、type、头部根哈希 |
| 2 | 层级 1 加上 ABI 解码 — 每条日志变为 {contract, event, args},calldata 变为带有命名参数的已解码函数 |
通过请求中的标头 Accept-Token-Tier: 0|1|2 和响应中的标头 Token-Tier 进行协商。只有在响应仍处于压缩预算范围内时,代理才会应用请求的层级。该预算由代理内部设定,因此此服务不会预测层级,而是检测实际应用的层级并报告。
对于 JSON-RPC 批处理,该标头描述的是整个数组,而不是其中的某个元素:响应数组携带单个 Token-Tier,其值为各元素所应用层级中的最低值。v1 未定义逐元素层级信号,元素的层级可能高于该下限;客户端应根据代理保留在各元素上的形态读取其层级,而不是查看标头:层级 1 对应重命名后的字段和十进制字符串,层级 2 对应 event/args。因此,标头表示一个下限,并表明已应用转换;哪些方法可达到层级 2,由描述符按方法声明,详见 https://mcp.ankr.com/.well-known/torpc.json,该文件也随 npm 包一同发布,路径为 static/.well-known/torpc.json。
规范:w3tech/torpc,以 CC0-1.0 发布;叙述性版本见 TORPC 文档页面。参考解码器以 @w3tech.io/torpc-decoder 发布(Apache-2.0);其源代码和基准测试工具位于 w3tech/torpc-js 的 codec/ 目录中。目前,规范对 EVM 层级 1 和层级 2 的规则具有规范性;一致性测试套件仍是脚手架,因此目前没有任何实现(包括本实现)声称已符合规范。
发现
两个机器可读文档描述了此部署。两者均公开发布,不包含凭证,且支持跨源读取。
| 文档 | 提供地址 |
|---|---|
| TORPC 描述文件:协议版本、协商标头、层级含义、方法列表 | mcp.ankr.com/.well-known/torpc.jsonrpc.ankr.com/.well-known/torpc.json |
| Agent 卡片:一个 ERC-8004 注册文件,说明由谁响应,以及 MCP 端点地址 | mcp.ankr.com/.well-known/agent-card.jsonrpc.ankr.com/.well-known/agent-card.json |
此软件包在 static/.well-known/ 下提供这两个文件,而实际提供的副本是部署方自己的声明:软件包内的副本可能滞后。卡片声明 x402Support: true,因为不带密钥访问 /rpc 时,会通过 x402 按调用付费;卡片也未声称存在链上注册或信任机制,因为实际上并无此类机制。
支持的链
Ethereum、BSC、Polygon、Arbitrum、Optimism、Base、Avalanche 等,以及测试网。索引工具支持的链范围比原始 RPC 工具更广。
请调用 listChains 获取实时矩阵,而不要依赖 README 中的列表——此处的覆盖范围会在不发布新版本的情况下发生变化。
管理 Ankr 账户
另一个独立的 MCP 接口位于 https://mcp.ankr.com/mcp,用于账户管理——API 密钥、允许列表、用量、账单查询和团队成员管理——并使用 OAuth 而非 API 密钥进行身份验证。请在客户端提示时登录。RPC API 密钥不具备管理权限,在此处会被拒绝。
链接
- API 密钥和套餐:ankr.com/rpc
- 文档:Agent RPC 和 账户管理,位于 ankr.com/docs
- TORPC 规范:w3tech/torpc(CC0-1.0),详见 TORPC 文档页面
- TORPC 解码器:
@w3tech.io/torpc-decoder(Apache-2.0),源代码位于codec/下的 w3tech/torpc-js - npm 软件包:
@w3tech.io/agent-rpc-mcp - 发现文档:TORPC 描述文件 和 Agent 卡片
许可证
MIT — 请参阅 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。