mcpField
S
Solana Rpc

Solana Rpc

リモート
pipeworx.io金融データ05 週間前に更新
リポジトリ公式サイト

Solana Rpc について

Solana Rpcは、SOL残高、SPLトークン保有状況、トランザクション、トークン保有者を照会するMCPサーバーです。APIキー不要で、複数の公開JSON-RPCエンドポイントを使い分けます。

主な機能

  1. 01SPLトークン保有状況とSOL残高の照会
  2. 02ウォレット取引と詳細の確認
  3. 03トークンの大口保有者の検索
  4. 04RPCエンドポイントとメソッドの状態確認
  5. 05公開エンドポイントの切り替えとページ取得

活用シーン

  1. 01Solanaウォレットの残高とトークン資産の確認
  2. 02アドレスの最近の取引の追跡
  3. 03SPLトークン保有者の分布確認

MCP 対応

Pipeworxゲートウェイ経由、またはローカルのstdio MCPサーバーとして、Solana照会ツールをMCPクライアントに提供します。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://gateway.pipeworx.io/solana-rpc/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 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

ツール

詳細

@pipeworx/solana-rpc

Solana アドレスの SPL トークン保有状況、SOL 残高、トランザクション履歴と、任意の SPL トークンミントの上位保有者を、API キー不要で公開 Solana JSON-RPC エンドポイントからリアルタイムに読み取ります。

Pipeworx の一部です。AI エージェントを 1679 以上のライブデータソースに接続する MCP ゲートウェイです。

ツール

  • solana_wallet_tokens(wallet, limit?, offset?, min_amount?, include_zero?, program?) — ウォレットが保有する SPL トークンの各ポジションです。ミントアドレス、残高、小数桁数、トークンアカウントアドレスを含み、SPL Token と Token-2022 の両プログラムに対応します。残高がゼロのものを除外し、残高の大きい順に並べ、ページ分割します。
  • solana_wallet_balance(wallet) — lamport と SOL 単位のネイティブ SOL 残高と、読み取り時のスロットです。
  • solana_wallet_transactions(wallet, limit?, before?, until?) — ブロック時刻、スロット、成功/失敗、メモを含む最近の署名を新しい順に取得します。next_before を使うと、さらに過去のデータを取得できます。
  • solana_transaction(signature) — 1 件のトランザクションを要約します。手数料、ステータス、署名者、プログラム、呼び出された命令タイプ、SOL 残高の変化、前後の SPL トークン残高、最初のログ行を含みます。
  • solana_token_holders(mint, limit?) — SPL トークンミントのトークンアカウントを残高順に並べ、上位のものを取得します。それぞれの所有者ウォレット、トークンアカウントアドレス、生の残高と小数表示の残高、総供給量に対する割合に加え、ミントの供給量、小数桁数、返された保有者全体が支配する割合も含みます。多くのエンドポイントでは 20 件、ノードが許可する場合は最大 100 件です。
  • solana_rpc_health() — エンドポイントとメソッドごとの到達可能性をリアルタイムに検査します。検索結果が空で返り、エンドポイントによるブロックとウォレットが未使用である場合を見分ける必要があるときに使用します。

認証

キー不要です。

データソース

  • https://solana-rpc.publicnode.com — PublicNode/Allnodes が運営する Solana mainnet JSON-RPC です。
  • https://solana.leorpc.com/?api_key=FREE — LeoRPC が運営する Solana mainnet JSON-RPC です(共有の無料キー)。
  • https://rpc.magicblock.app/mainnet — MagicBlock が運営する Solana mainnet JSON-RPC です(公開エンドポイント)。getTokenLargestAccounts を提供する、見つかった唯一のキー不要エンドポイントです。ミント単位の呼び出しでは最優先、ウォレットの呼び出しでは最後の手段となります。

利用する前に知っておきたいこと

ノート PC で動作するエンドポイントが、本番環境でも動作するとは限りません。 api.mainnet-beta.solana.com はローカルでは 200 を返しますが、Cloudflare Worker からは HTTP 403 と "Your IP or provider is blocked from this endpoint" を返します。無料の RPC エンドポイント 12 個を、デプロイ済み Worker から検査しました。ankr、rpcpool、mainnet-beta は 403、drpc は有料プランを求める 400、blockeden は 402、onfinality と omniatech は 429、grove は 1016、public-rpc は 526、shyft は 401 を返しました。使えるエンドポイントは 2 つだけで、どちらもすべての機能を提供するわけではありません。

エンドポイントCloudflare からの結果
solana-rpc.publicnode.comgetSignaturesForAddress、getBalance、getTransaction、getSlot には 200 を返します。getTokenAccountsByOwner には -32602 "Request blocked" を返します(メソッドの許可リスト)。
solana.leorpc.com/?api_key=FREEgetTokenAccountsByOwner に 200 を返します(4,513 アカウントのウォレットで 2.37 MB)。署名クエリでは断続的に -32603 が発生します。

そのため、フェイルオーバーは安全策ではなく、システムの基本設計です。呼び出しは PROVIDERS を順にたどり、一時的な障害では 1 回再試行し、メソッドを明確に拒否するプロバイダー(-32601/-32602/-32000/403)はスキップします。拒否されたことは isolate ごとに記憶されるため、以降の呼び出しではそのメソッドを提供するエンドポイントに直接進みます。一方、一時的な障害は復旧するため記憶しません。すべての応答には各接続先の結果とレイテンシを含む providers_tried が付与されるため、呼び出し元はどこから回答が得られたかを正確に確認できます。 応答サイズも制約になります。 あるウォレットでは、単一の getTokenAccountsByOwner から4,513件のトークンアカウント、2,376,758バイトが返されました。これをフィルタリングせずに返すと、応答の予算とWorkerのCPU制限の両方を超えてしまいます。そのため、solana_wallet_tokens は残高がゼロのアカウントを除外し(そのウォレットでは4,513件中2,605件が残りました)、残高順に並べてページ単位で返します。また、total_token_accounts、holdings_with_balance、upstream_bytes を報告するため、呼び出し側は返されなかった情報を把握できます。

パブリックノードでは履歴が剪定されます。 solana_wallet_transactions の結果が空の場合、「アクティビティがない」と同様に「このノードの保持期間外」を意味することがあります。このツールは、ウォレットが休眠中であるかのように示すのではなく、note でその旨を伝えます。すべての履歴を取得するには、アーカイブエンドポイント(独自のキーを使う helius または solscan パック)が必要です。

エンティティへの帰属は別の製品の領域です。 「どのウォレットが〈個人/企業/取引所〉に属するか」は、アドレスだけで識別されるRPCでは回答できません。wallet に名前を渡すと、base58検証に失敗し、隣接する情報を黙って返すのではなく、Arkham/Nansenクラスのラベリングを案内するヒントとともに {found: false, reason: 'not_an_address'} が返されます。

トークン保有者の情報は、別のプロバイダーの領域です。 getTokenLargestAccounts は、元のプロバイダー両方が拒否する唯一のメソッドです。publicnode は -32602 "Request blocked" を返し、api.mainnet-beta.solana.com は初回の呼び出しでも 429 "Too many requests for a specific RPC call" を返します。「このトークンを保有しているのは誰か」を調べるメソッドがこれです。2026-09-03に調査した約50のパブリックエンドポイントのうち、キーなしでこのメソッドを提供するのは rpc.magicblock.app/mainnet だけでした(バリデーターのデフォルトである20件ではなく、保有者上位100件を返します)。そこで solana_token_holders は別のプロバイダー順で処理し、最初にMagicBlockを試した後、getMultipleAccounts で各トークンアカウントの所有者を特定し、getTokenSupply に対する割合を算出します。MagicBlockがデータセンターからの送信をブロックした場合、このツールはキーが必要な代替手段を示して {found: false, reason: 'upstream_unavailable'} を返します。専用エンドポイント(PLATFORM_SOLANA_RPC_URL)の設定は、キーが存在するまでゲートウェイに意図的に宣言しません。キーが宣言されているのに未設定の場合、プロビジョニング漏れがこちらにあることになってしまうためです。

-32602 は2つの異なる意味を持ちます。 publicnode では「このメソッドは許可リストにない」というプロバイダーレベルのエラーとして使われ(isolate内で記憶されます)、すべてのノードでは「Invalid param: not a Token mint」という呼び出し側レベルのエラーとしても使われます。walkerはメッセージで両者を区別します。Invalid param は呼び出し側の問題としてそのまま返され、プロバイダーのそのメソッドが使用不能になることはありません。

mintの情報はアドレスのみです。 Solana RPCにはトークン名、シンボル、価格が含まれていません。トークンのメタデータには、キーを使う birdeye、solscan、helius が対応します。

クイックスタート

MCPクライアント(Claude Desktop、Cursor、Windsurfなど)に追加します。

{
  "mcpServers": {
    "solana-rpc": {
      "url": "https://gateway.pipeworx.io/solana-rpc/mcp"
    }
  }
}
このエンドポイントが実際に提供するもの

https://gateway.pipeworx.io/solana-rpc/mcp の tools/list は、上の表にあるツールに加えて、Pipeworx の共有メタツールである ask_pipeworx、discover_tools、search_within、remember/recall など、ゲートウェイ全体で使える一連のツールを返します。そのため、表示されるツール数はこの表の数より多くなります。現在、単一パックのエンドポイントには、そのパック固有のツールとともに、共有ツールが約 30 個表示されます。接続の initialize レスポンスには正確な対象範囲が記載されており、その日の状況を確認するうえで最も信頼できる情報です。

これは意図的なものであり、誤って多重化されているわけではありません。スコープを限定した接続でも、このパックが扱わない質問に回答できるのはメタツールのおかげです。ask_pipeworx がカタログ全体にわたってルーティングするため、MCP サーバーを追加する必要はありません。現時点では、メタツールを含めずにパックのエンドポイントをマウントする方法はありません。追加のスキーマによるコンテキスト消費がルーティングの利便性を上回る場合は、複数のパックエンドポイントではなく、フルゲートウェイに一度接続してください。

または、Pipeworx のフルゲートウェイに接続すると、このパックのツールだけでなく、すべてのパックのツールが直接一覧表示されます。

{
  "mcpServers": {
    "pipeworx": {
      "url": "https://gateway.pipeworx.io/mcp"
    }
  }
}

どちらの URL も、同じゲートウェイと同じ 1679+ のデータソースに接続します。違いは、どのパックのツールが直接一覧表示されるかだけです。どちらからでも、ask_pipeworx を使ってすべてのツールにアクセスできます。

MCP クライアントがない場合:HTTP で呼び出す

curl -X POST https://gateway.pipeworx.io/v1/tools/solana_wallet_tokens \
  -H 'Content-Type: application/json' \
  -d '{"wallet":"Gf9XgdmvNHt8fUTFsWAccNbKeyDXsgJyZN8iFJKg5Pbd","limit":10}'

最初の呼び出しにアカウントは不要です。ツールの詳細を確認するには、GET https://gateway.pipeworx.io/v1/tools/solana_wallet_tokens を実行します。ツールを検索するには、{"query":"..."} を指定して POST https://gateway.pipeworx.io/v1/tools/search_packs を実行します。

スタンドアロン(ゲートウェイアカウント不要)

このパッケージは、ローカルの stdio MCP サーバーとしても実行できます。Pipeworx アカウントも、ゲートウェイとの往復通信も不要です。

{
  "mcpServers": {
    "solana-rpc": {
      "command": "npx",
      "args": ["-y", "@pipeworx/mcp-solana-rpc"]
    }
  }
}

または、直接実行して起動を確認できます。

npx -y @pipeworx/mcp-solana-rpc

stdin/stdout 経由で MCP を使用し、このパックのツールだけを対象に initialize/tools/list/tools/call に応答します。上記のゲートウェイ接続で追加される共有メタツールは含まれません。同じソース、同じツールで、ask_pipeworx によるルーティングはありません。

ask_pipeworx の使用

ツールを直接呼び出す代わりに、自然な英語で質問できます。これは、上記のパックエンドポイントでもフルゲートウェイでも利用できます。

ask_pipeworx({ question: "your question about Solana Rpc data" })

ゲートウェイが適切なツールを選び、引数を自動的に設定します。

詳細

ライセンス

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。