プロトタイプ · プレビュー版:公式レジストリのすべてのサーバーを掲載し、30分ごとに同期しています。レビューとアカウント機能は今後のステップで始まります。
PopNx MCPAIを使う人のためのMCPサーバー · やさしい言葉で解説

Ankr Agent RPC

作者:w3techバージョン 0.2.8i★ –iパソコンでもクラウドでも
レジストリ名io.github.w3tech/agent-rpc-mcp

インストール

概要

作者による説明(英語の原文)

Read chain data on 200+ networks and Sui: transactions, logs, balances, objects, ABI-decoded.

PopNx MCPの3つの柱

この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。

できること

このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。

  • 接続方法: パソコンでもクラウドでも
  • トランスポート: stdio, Streamable HTTP
  • カテゴリ: その他
  • 入力が必要なもの:ANKR_API_KEY, Authorization

インストール

使っているAIアプリを選んで、設定をコピーしてください。

インストールの前に

「秘密」と表示された値は、あなたのアカウントの鍵です。絶対に人に教えたり、チャットに貼り付けたりしないでください。

必要なもの

  • クラウドで動くインストール不要。インターネット経由でつながります
  • npmNode.jsのインストール(npxコマンドに必要)

どのアプリを使っていますか?

上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。

このアドレスはリクエストの header にキーが必要ですが、コネクタを追加するメニューでは設定できません。代わりにClaude Code、Cursor、VS Codeを使ってください。

または、パソコンで動かす

Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます

{
  "mcpServers": {
    "agent-rpc": {
      "command": "npx",
      "args": [
        "-y",
        "@w3tech.io/agent-rpc-mcp"
      ],
      "env": {
        "ANKR_API_KEY": "your-value"
      }
    }
  }
}

ターミナルでこれを実行します

claude mcp add --transport http agent-rpc https://mcp.ankr.com/rpc --header 'Authorization: Bearer {ankr_api_key}'

または、パソコンで動かす

claude mcp add agent-rpc --env ANKR_API_KEY=your-value -- npx -y @w3tech.io/agent-rpc-mcp

動かす前に、空欄の値を入力してください。

Cursorで開く

または、設定を自分でコピーする

プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます

{
  "mcpServers": {
    "agent-rpc": {
      "url": "https://mcp.ankr.com/rpc",
      "headers": {
        "Authorization": "Bearer {ankr_api_key}"
      }
    }
  }
}

または、パソコンで動かす

Cursorで開く

または、設定を自分でコピーする

プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます

{
  "mcpServers": {
    "agent-rpc": {
      "command": "npx",
      "args": [
        "-y",
        "@w3tech.io/agent-rpc-mcp"
      ],
      "env": {
        "ANKR_API_KEY": "your-value"
      }
    }
  }
}

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

VS Codeで開く

または、設定を自分でコピーする

プロジェクトの .vscode/mcp.json に貼り付けます

{
  "servers": {
    "agent-rpc": {
      "type": "http",
      "url": "https://mcp.ankr.com/rpc",
      "headers": {
        "Authorization": "Bearer {ankr_api_key}"
      }
    }
  }
}

または、パソコンで動かす

VS Codeで開く

または、設定を自分でコピーする

プロジェクトの .vscode/mcp.json に貼り付けます

{
  "servers": {
    "agent-rpc": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@w3tech.io/agent-rpc-mcp"
      ],
      "env": {
        "ANKR_API_KEY": "your-value"
      }
    }
  }
}

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

このアドレスはリクエストの header にキーが必要ですが、コネクタを追加するメニューでは設定できません。代わりにClaude Code、Cursor、VS Codeを使ってください。

選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。

自分で入力する値

  • ANKR_API_KEY 秘密 必須 env
    Ankr API key. Create one at ankr.com/rpc.
  • Authorization 秘密 HTTP header
    Your Ankr API key as a Bearer token (x-ankr-api-key also works). Create a key at ankr.com/rpc. Without a key, tool calls are paid per call over x402.

この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。

できること

ツールの名前と説明は、サーバーが2026年11月6日に返したそのままの内容です。書いたのは作者で、私たちではありません。プレーンテキストとして表示しています。

  • getAccountBalance

    Balance of an account across many blockchains, by 0x address or ENS name, via the Ankr Advanced API indexer. Assets are ranked by USD value descending and only the top 20 are listed by default (a real wallet can hold 1000+ assets, over half of them priced at $0); tune that with m

  • getTokenPrice

    USD price of a token on one blockchain: pass a contract address for an ERC-20, or leave it empty for the native coin. Returns { chain, asset, usd, priced_via_contract, as_of: { timestamp, blockNumber, lag, status } }. Read as_of before reporting a price; it says how stale the ind

  • getTransaction

    Get a transaction by its hash on one blockchain, with tier-2 decoding requested. Check tier_degraded before reading `function` or `args`. By default the receipt is fetched too (status, gas used, decoded logs). Set include to "transaction" to skip it and halve the cost. Tier-2 fie

  • getLogs

    Event logs on one chain, filtered by address and/or topics over a block range. Tier 2 emits each log as { contract, event, args }, dropping logsBloom and per-log block duplication; an undecodable one stays raw as { address, topics, data, _event_unknown }. Check tier_degraded befo

  • getBlock

    Get a block by a 0x-64 hash, a block number (decimal or 0x-hex), or a tag (latest, finalized, safe, earliest, pending). Tier 2 drops the verbose header roots and bloom and, with includeTxs, ABI-decodes and compacts the embedded transactions. A large block with includeTxs may come

  • getBalances

    An address's balances on ONE chain: native via eth_getBalance plus, by default, ERC-20 balances with USD from the Ankr Advanced API indexer (tier 0). ENS resolves for the token lookup only; a raw-RPC-only chain returns native alone. Tokens rank by USD descending, top 20 by defaul

  • getWalletActivity

    An address's recent transactions on one blockchain, newest first, via the Ankr Advanced API indexer. Items are returned under `activity`, exactly once per page, on this first page and on every continuation alike. There is no second alias key. Each item: hash, from, to, value_wei

  • resolveContract

    Inspect an address on a chain: whether it is a contract, best-effort ERC-20 token metadata (name, symbol, decimals), and EIP-1967 proxy detection (implementation address). Built from eth_getCode / eth_call / eth_getStorageAt, which are plain JSON-RPC passthrough. The metadata is

  • searchChain

    Resolve an on-chain IDENTIFIER to the object it names. Accepts exactly THREE shapes, and nothing else: - 0x + 64 hex -> transaction (falls back to block hash if there is no such tx) - 0x + 40 hex -> address (reports contract vs EOA) - all digits -> block number NOT SUPPORTED: tic

  • expandResult

    Continue a paged result using the opaque cursor returned by a previous tool call. Supported cursor sources: getWalletActivity, getLogs (a block range, or a Sui checkpoint scan), getBalances (asset offset), Sui views (tier 0 re-reads the view unshaped: a fresh upstream call, never

  • rpcCall

    Call ANY JSON-RPC method on a supported chain: the escape hatch beyond the routed tools (eth_call, eth_estimateGas, eth_getCode, debug_trace*, trace_*). Prefer getTransaction/getLogs/getBlock where they fit. TORPC tier is negotiated per call (contract 2); check _meta.tier. This i

  • suiGetObjects

    Move objects by id, in ONE batch call: each answer carries the object's id, type, version, owner and its decoded Move fields under json. Up to 50 ids per request and nothing is trimmed from the reply, so no cursor is issued. An id the node cannot serve is reported POSITIONALLY un

  • suiListOwnedObjects

    Every object an address owns, page by page, out of the node's own owner index. Narrow it with type: a bare Move type such as 0x2::coin::Coin matches any type parameter, while a fully applied one matches only that instantiation. A page holds 50 entries by default and 200 at most;

  • suiListDynamicFields

    Whatever a Move package stored under one object's UID: tables, bags and dynamic object fields, listed from the parent id. A row names the field's own object id, its kind, the name it is keyed by and the Move type of its value. The value itself is a BCS blob and is left out of thi

  • suiGetPackage

    What a published Move package declares, so a caller can pick what to inspect next. By default this answers with an INDEX: one row per module carrying its name and how many functions and datatypes it holds, capped at 50 rows (raise it with maxModules). Pass `module` to get that on

  • suiGetFunction

    One Move function's signature: visibility, whether it is an entry function, its type parameters, its parameter types and its return types — what a programmable transaction block needs in order to call it. Never capped or paged. Take the package and module names from suiGetPackage

  • suiResolveName

    Resolve a SuiNS name (something.sui) to the address it points at, or an address back to its name. Give exactly one of `name` or `address`. READ `status` BEFORE the record. It is one of: resolved, the registration is live and the record is good; expired, the registration lapsed an

  • suiSimulateTransaction

    Run a transaction against current state and report what it WOULD do, without submitting it: whether it succeeds or which Move abort stops it and in which command, the gas it consumes, the objects it creates, mutates and deletes, the balance changes per address and coin, each comm

  • suiWatchEvents

    Follow Move events from now on, by POLLING — nothing is pushed. This first call only establishes a start position: it reads the executed tip from a Sui event subscription, returns NO events, and hands back a cursor. Each expandResult on that cursor lists what has been emitted sin

  • getNFTs

    NFTs one wallet holds on one chain: collection, name, token id, contract, standard (ERC721/1155), image URL. For fungible tokens use getBalances.

  • getTokenHolders

    Who holds an ERC-20 token on one chain, largest balance first, plus the total holder count. `balance` already has decimals applied, so do not divide it again. For one wallet's tokens use getBalances.

  • getTokenPriceHistory

    Historical USD price series for a token contract on a chain, via the Ankr Advanced API indexer: a list of { timestamp, usd, block } quotes. `limit_applied` reports the cap the call was actually made with (default 100, max 1000). When `count` reaches that cap the response sets `po

  • getInteractions

    List the blockchains an address has interacted with, via the Ankr Advanced API indexer. Cross-chain, so there is no chain argument. Useful as a first step before fetching balances or activity per chain.

  • listChains

    Which chains each tool family reaches. aapiChains is where the indexer tools work (getAccountBalance, getWalletActivity, getNFTs, getTokenHolders, getTokenPrice, getTokenPriceHistory); call this before one of them on an unfamiliar chain. suiChains are answered over gRPC, by the s

  • describeMethods

    What a JSON-RPC method takes, and whether this key can actually call it on this chain. Returns the positional param shape and a worked example for every method rpcCall can validate, plus rpcCall's own verdict (permitted, or refused as a write path). Pass probe:true with an explic

基本チェックi

誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月7日にチェック

  • ✓ 合格

    作者とリポジトリが一致

    レジストリ名は、リポジトリを所有するGitHubアカウント w3tech で確認済みです

  • … 未チェック

    今もメンテナンスされている

    このリポジトリはまだGitHubから読み取っていません

  • … 未チェック

    ライセンスがある

    このリポジトリはまだGitHubから読み取っていません

  • ✓ 合格

    エンドポイントが応答する

    51ミリ秒で応答(HTTP 200)

  • – 対象外

    OAuthでサインイン

    サインイン不要

  • ✓ 合格

    ツールの説明に隠れた指示がない

    25件のツールの説明を読み、AIへの隠れた指示は見つかりませんでした

その他のほかのサーバーとの比較i

  • このカテゴリのほかの32602件のうち0%よりスターが多い
  • このカテゴリのほかの32602件のうち88%より最近レジストリに公開
  • 基本チェックの結果が、このカテゴリのほかの32602件のうち100%と同じかそれ以上

レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。

よくある質問

Ankr Agent RPCは安全ですか?

当てはまる基本チェック3項目のうち3項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。

どんなキーやコードが必要ですか?

入力が必要なもの:ANKR_API_KEY, Authorization

パソコンで動きますか、それともクラウドですか?

どちらでも使えます。パソコンにインストールしても、クラウド版につないでもかまいません。

今もメンテナンスされていますか?

GitHubリポジトリの最終更新は–、最新バージョン(0.2.8)がレジストリに届いたのは4 日前です。

どのアプリで使えますか?

Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。URLでつながるので、リモートMCPサーバーに対応したアプリ(開発者モードのChatGPTなど)でも使えます。

代わりに使えるものは?

同じカテゴリには:Spec Driven Development, Remote Desktop Commander, Rystic

代わりの候補

同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。

カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i

Remote Desktop Commander

作者:desktop-commander

Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.

クラウドで動く★ 211一昨日更新
インストール

Rystic

作者:Rystic-Inc

Start, seed, clock, inspect and diff Rystic API simulators from your agent.

パソコンで動く今日更新
インストール

作者のREADME

READMEを開く

作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。

Ankr Agent RPC — MCP Server

A Model Context Protocol server that gives AI agents token-efficient access to blockchain data through Ankr RPC.

Reads go out with the TORPC Accept-Token-Tier: 2 header. Tier 1 already renames the fields, turns hex into decimal and drops the service fields (logsBloom, cumulativeGasUsed, header roots). Tier 2 adds the ABI decode on top, so contract calls and event logs come back as named arguments.

A live run over 21 methods and 25 Ethereum mainnet blocks, token-weighted and counted with o200k_base over the full HTTP body, came out 48.4% smaller at tier 2 and 35.3% smaller at tier 1. Decode-heavy reads save the most: eth_getTransactionByHash 69.0%, eth_getTransactionReceipt 64.5%, eth_getBlockReceipts 60.3%, the block methods 40.4%, eth_getLogs 28.9%; scalar reads save 9–19%. Per-method figures: live-token-savings-2026-07-17.md.


Quick start

Get a free API key at ankr.com/rpc.

Hosted (no install)

The server runs at https://mcp.ankr.com/rpc. Send your key as the x-ankr-api-key header (or Authorization: Bearer ); each request carries the caller's own key, and the server holds no credential of yours.

{

"mcpServers": { "ankr-agent-rpc": { "url": "https://mcp.ankr.com/rpc", "headers": { "x-ankr-api-key": " " } } } }

Local (stdio)
{

"mcpServers": { "ankr-agent-rpc": { "command": "npx", "args": ["-y", "@w3tech.io/agent-rpc-mcp"], "env": { "ANKR_API_KEY": " " } } } }

That JSON goes in your client's MCP config: Claude Desktop (claude_desktop_config.json), Cursor, Windsurf, or any other MCP client. Cursor also accepts the command form:

env ANKR_API_KEY=<YOUR_KEY> npx -y @w3tech.io/agent-rpc-mcp

Tools

Raw RPC, TORPC tier 2

ToolWhat it answers
getTransactiontransaction + receipt by hash, ABI-decoded
getLogsevent logs, decoded; wide block ranges are chunk-scanned and paged
getBlockblock header, optionally with decoded transactions

Indexed and mixed

ToolWhat it answers
getBalancesnative coin + ERC-20 balances with USD
getAccountBalancebalances across many chains at once
getWalletActivityan address's transaction history, paged
getNFTsNFTs held by an address
getTokenHoldersholders of an ERC-20, paged
getTokenPriceUSD price with chain, asset and as_of provenance
getTokenPriceHistoryhistorical price series for a token
getInteractionswhich chains an address has touched, cross-chain
resolveContractis-contract, best-effort ERC-20 metadata, EIP-1967 proxy
searchChainresolve a tx/block hash, an address, or a block number
expandResultcontinue any paged result from its cursor

Discovery and escape hatch

ToolWhat it answers
listChainssupported chains, max TORPC tier, indexer availability
describeMethodsthe param shape and a worked example per JSON-RPC method, plus whether your key may call it on that chain
rpcCallany read method the routed tools do not cover

Sui

Sui is not an EVM chain and is not reached through the JSON-RPC proxy at all: a Sui call goes out over gRPC. getBalances, getBlock, getTransaction, getWalletActivity, getLogs and rpcCall take chain: "sui" and route themselves — getLogs reads Move events over a checkpoint range, filtered by emitting package or module, event type and sender. resolveContract and searchChain are built from eth_* calls Sui has never had and refuse there, naming the tool that answers instead. A Move event row is {contract, event, args}, the same shape an EVM tier-2 log has — but its args arrives at tier 0, decoded by the node rather than from an ABI, so on this path it is not evidence of a tier.

Eight tools serve what Sui has and an EVM chain does not:

ToolWhat it answers
suiGetObjectsMove objects by id, batched, with their decoded fields
suiListOwnedObjectsevery object an address owns, paged, filterable by Move type
suiListDynamicFieldstables, bags and dynamic object fields under one object's UID
suiGetPackagethe modules a published Move package declares
suiGetFunctionone Move function's signature
suiResolveNamea SuiNS name to its address, or an address to its name
suiSimulateTransactionwhat a transaction would do, run against current state, never submitted
suiWatchEventsMove events from the executed tip on, polled from a resumable cursor

That is the whole set: 25 tools.

What rpcCall will and will not do

rpcCall is a read and data escape hatch, never a wallet. It is a write denylist, not a read allowlist: it refuses transaction broadcast and signing, transaction _building_, node and dev-node administration, mutating verbs, and the node-operation half of geth's debug_* namespace — on every chain family — and forwards everything else.

It therefore keeps no list of permitted reads. Which reads exist is decided per chain by the endpoint's blockchain schema and by what your tenant may call, so a forwarded read can still come back refused (Method disabled, reason: restricted by blockchain schema). That refusal is the authoritative answer; listChains reports coverage.

Sign and send transactions with your own wallet or signer.


Reading a response

Two fields decide how to read every result, and an agent that skips them will misread output that is technically correct.

`_meta.tier` — the TORPC tier is negotiated per call and is not guaranteed. On the proxy path a response comes back at tier 0 (raw, undecoded, no args) when it is above the proxy's compression budget, and also when the method is one the proxy does not compress at all, such as eth_call, eth_getCode and eth_getStorageAt. Every successful response carries the tier actually applied in _meta.tier, so check it before looking for decoded fields; an error result carries _meta.error_code instead and no tier at all. Some tools additionally report tier_degraded: true in the body, with a note on how to narrow the request, when they asked for tier 2 on your behalf and got less. Not all of them do, so _meta.tier is the field to rely on. _meta.tier_source says who applied the tier, and the shape rule above is the proxy's alone: on the Sui gRPC path (tier_source: "local") a Move event row carries contract, event and args at tier 0, because the node decodes a Move struct itself.

Decoded amounts are raw base units, with no decimals applied. args.value: "41695680" on a 6-decimal token is 41.69568, not 41 million. Read the token's decimals with resolveContract before reporting a human number.

_meta.token_count is a real o200k_base count of the emitted text, not a chars/4 estimate. It is exact up to 256 KB of emitted text, which covers every display-capped response; above that it is extrapolated and the response carries _meta.token_count_estimated: true. Responses are minified JSON, so a model with a different tokenizer sees a similar but not identical number.

Tool inputs are strict: an unknown argument is rejected with a validation error rather than silently dropped, so a misspelled argument name is reported instead of ignored. Block numbers above 2^53 must be passed as strings, because a JSON number that large is not exact.


TORPC tiers

TierMeaning
0passthrough — standard JSON-RPC
1field rename, hex → decimal, and the service fields dropped: logsBloom, cumulativeGasUsed, contractAddress, type, the header roots
2tier 1 plus the ABI decode — each log becomes {contract, event, args}, calldata becomes a decoded function with named args

Negotiation is by header: Accept-Token-Tier: 0|1|2 on the request, Token-Tier on the response. The proxy applies the requested tier only while the response stays inside its compression budget, and that budget is internal to the proxy — so this server never predicts the tier, it detects the applied one and reports it.

On a JSON-RPC batch that header describes the array, not any one element: a response array carries a single Token-Tier, and its value is the minimum tier applied across the elements. v1 defines no per-element tier signal, elements may sit above that floor, and a client reads each element's own tier from the shape the proxy left on it — renamed fields and decimal strings for tier 1, event/args for tier 2 — rather than from the header. So the header is a floor and a signal that a transform was applied; which methods reach tier 2 is declared per method in the descriptor at https://mcp.ankr.com/.well-known/torpc.json, which also ships in the npm package at static/.well-known/torpc.json.

Specification: w3tech/torpc, released under CC0-1.0, with the TORPC docs page as the narrative version. The reference decoder is published as @w3tech.io/torpc-decoder (Apache-2.0); its source and the benchmark harness live in w3tech/torpc-js, under codec/. The EVM tier-1 and tier-2 rules are normative in the spec today; the conformance suite is a scaffold, so no implementation, this one included, claims conformance yet.


Discovery

Two machine-readable documents describe this deployment. Both are public, carry no credential, and are readable cross-origin.

DocumentServed at

冒頭だけを表示しています。続きはリポジトリで読めます

PopNxに聞く