mcpField
B
BNBChain MCP (Model Context Protocol)

BNBChain MCP (Model Context Protocol)

ローカル
github.com/bnb-chain金融データ606 日前に更新

BNBChain MCP (Model Context Protocol) について

BNBChain MCP は、BSC、opBNB、Greenfield などの BNB Chain および EVM 互換ネットワーク向けの MCP サーバーです。ブロックやコントラクト、トークン、NFT、ウォレットの操作を AI アシスタントから実行できます。ブロックチェーン開発者やオンチェーンデータを扱う利用者を対象としています。

主な機能

  1. 01ブロック、トランザクション、ネットワーク情報の照会
  2. 02スマートコントラクトの読み取りと書き込み
  3. 03ERC20、ERC721、ERC1155 のトークン操作
  4. 04Greenfield のバケットとオブジェクトの管理
  5. 05送金前のプレビューと確認フロー

活用シーン

  1. 01AI アシスタントによる BSC のオンチェーンデータ照会
  2. 02アドレス、トランザクション、トークンの分析
  3. 03Greenfield 上のバケットとオブジェクトの管理

MCP 対応

BNBChain MCP は MCP サーバーとして、ブロックチェーンの照会、コントラクト操作、送金などのツールとプロンプトを MCP クライアントに公開します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"bnbchain": {
"command": "npx",
"args": [
"-y",
"@bnb-chain/mcp"
],
"env": {
"PRIVATE_KEY": "<PRIVATE_KEY>",
"BNBCHAIN_MCP_SKIP_TRANSFER_CONFIRMATION": "<BNBCHAIN_MCP_SKIP_TRANSFER_CONFIRMATION>"
}
}
}
}
起動コマンドnpx -y @bnb-chain/mcp
設定が必要な環境変数
PRIVATE_KEYシークレット
BNBCHAIN_MCP_SKIP_TRANSFER_CONFIRMATION

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@bnb-chain/mcp

ツール

45

掲載時のツール一覧 · 3 週間前に更新

パラメーター型必須説明
privateKeystringはい16 進数形式の秘密鍵(0x 接頭辞は任意)。MCP サーバー環境で PRIVATE_KEY を設定することを推奨します。会話やリクエストのログに保存される可能性があるため、可能な限りツールのパラメーターに秘密鍵を渡さないでください。この値は署名にのみ使用され、サーバーには保存されません。
agentURIstringはいエージェントメタデータの URI(例:ipfs://...、https://...、または data:application/json,...)。type、name、description、image、services を含む ERC-8004 の登録形式に従ってください。
networkstringはいネットワーク名(例:'bsc'、'bsc-testnet'、'opbnb'、'opbnb-testnet'、'ethereum'、'base' など)またはチェーン ID。すべての書き込み操作(転送、デプロイ、コントラクトへの書き込みなど)で必須です。明示的に指定する必要があり、デフォルト値はありません。

詳細

BNBChain MCP(Model Context Protocol)

自然言語処理と AI アシスタンスを通じて、BNB Chain やその他の EVM 互換ネットワークを操作するための強力なツールキットです。

bnbchain-mcp MCP サーバー

説明

BNBChain MCP は、AI を活用したインターフェースを通じてブロックチェーンネットワークとシームレスにやり取りできるようにする、Model Context Protocol の実装です。ブロックチェーン開発、スマートコントラクトとのやり取り、ネットワーク管理のための包括的なツールとリソースを提供します。

コアモジュール

このプロジェクトは、いくつかのコアモジュールで構成されています。

  • Blocks:ブロックチェーンのブロックを照会、管理します
  • Contracts:スマートコントラクトとやり取りします
  • Network:ネットワーク情報と管理
  • NFT:NFT(ERC721/ERC1155)の操作
  • Tokens:トークン(ERC20)の操作
  • Transactions:トランザクション管理
  • Wallet:ウォレットの操作と管理
  • Common:共有ユーティリティと型
  • Greenfield:Greenfield ネットワーク上でのファイル管理操作(ファイルやバケットのアップロード、ダウンロード、管理など)をサポートします
  • その他の機能も近日公開予定です(Greenfield、Swap、Bridge など)
  • Agents(ERC-8004):BSC と BSC Testnet 上で、オンチェーン AI エージェント ID(ERC-8004 Trustless Agents)を登録、解決します

重要な注意事項

この MCP サーバーをパブリックインターネット上にデプロイすることは推奨しません。(1)SSE エンドポイントには認証がありません。そのため、アクセス可能なユーザーなら誰でもサーバーを利用できます。(2)秘密鍵や資金を管理する中央集権型のサービスはありません。鍵の管理と署名はクライアントの責任です。それでもパブリックにデプロイする必要がある場合は、前段に認証レイヤー(API キー、JWT、認証機能付きリバースプロキシなど)を追加するか、読み取り専用または機密性の低いツールのみを公開する鍵不要のバージョンをデプロイしてください。

**認証情報:**MCP サーバーの環境で PRIVATE_KEY を設定することを推奨します。会話履歴、クライアントのログ、リクエストログに保存されて漏えいするおそれがあるため、可能な限りツールのパラメーターに秘密鍵を渡さないでください。

送金と支払いの確認

送金および支払い用ツール(例:transfer_native_token、transfer_erc20、approve_token_spending、transfer_nft、transfer_erc1155、gnfd_deposit_to_payment、gnfd_withdraw_from_payment、gnfd_create_payment_account)は、デフォルトでプレビュー後に確認するフローを使用するため、ユーザーが明示的に確認するまでは資金が移動しません。

  • デフォルトの動作:送金または支払い用ツールを呼び出すと、受取人、金額、ネットワークなどのプレビューと、有効期間の短い confirmToken が返されます。トランザクションは送信されません。実行するには、その confirmToken と privateKey を指定して confirm_transfer ツールを呼び出します。トークンの有効期限は 5 分です。
  • **確認をスキップする(呼び出しごと):**呼び出し元がすでに確認済みの場合、または自動化スクリプトで実行する場合は、ツールの引数に skipConfirmation: true を渡してください。ツールは直ちに実行され、トランザクションの結果を返します。
  • **確認をスキップする(サーバー全体):**環境変数 BNBCHAIN_MCP_SKIP_TRANSFER_CONFIRMATION=true を設定すると、すべての送金・支払い用ツールがプレビューを返さず、直ちに実行されます。確認手順が不要なヘッドレス環境やスクリプト実行環境で使用してください。

確認を行う場合のフロー例:

  1. toAddress、amount、network(任意で privateKey)を指定して transfer_native_token を呼び出します。skipConfirmation は設定しないでください。
  2. サーバーから { preview: { toAddress, amount, network }, confirmToken: "...", message: "..." } が返されます。
  3. プレビューを確認した後、confirmToken と privateKey を指定して confirm_transfer を呼び出し、送金を実行します。

Cursor との統合

Cursor から MCP サーバーに接続するには、次の手順に従います。

  1. Cursor を開き、Settings(右上の歯車アイコン)に移動します
  2. 左側のサイドバーで「MCP」をクリックします
  3. 「Add new global MCP server」をクリックします
  4. 次の情報を入力します。

デフォルトモード

{
  "mcpServers": {
    "bnbchain-mcp": {
      "command": "npx",
      "args": ["-y", "@bnb-chain/mcp@latest"],
      "env": {
        "PRIVATE_KEY": "your_private_key_here. (optional)",
        "BNBCHAIN_MCP_SKIP_TRANSFER_CONFIRMATION": "false"
      }
    }
  }
}
  • PRIVATE_KEY:任意です。ツールのパラメーターに渡すより、ここに設定することをおすすめします。
  • BNBCHAIN_MCP_SKIP_TRANSFER_CONFIRMATION:任意です。"true"に設定すると、すべての送金/支払いツールが即座に実行されます(プレビュー手順はありません)。デフォルトの"false"では、プレビュー後に確認するフローが使用されます。

SSE モード

{
  "mcpServers": {
    "bnbchain-mcp": {
      "command": "npx",
      "args": ["-y", "@bnb-chain/mcp@latest", "--sse"],
      "env": {
        "PRIVATE_KEY": "your_private_key_here. (optional)",
        "BNBCHAIN_MCP_SKIP_TRANSFER_CONFIRMATION": "false"
      }
    }
  }
}

Claude Desktop との統合

Claude Desktop から MCP サーバーに接続するには、次の手順に従います。

  1. Claude Desktop を開き、Settings に移動します
  2. 左側のサイドバーで「Developer」をクリックします
  3. 「Edit Config」ボタンをクリックします
  4. claude_desktop_config.jsonファイルに次の設定を追加します。
{
  "mcpServers": {
    "bnbchain-mcp": {
      "command": "npx",
      "args": ["-y", "@bnb-chain/mcp@latest"],
      "env": {
        "PRIVATE_KEY": "your_private_key_here",
        "BNBCHAIN_MCP_SKIP_TRANSFER_CONFIRMATION": "false"
      }
    }
  }
}

任意の環境変数:BNBCHAIN_MCP_SKIP_TRANSFER_CONFIRMATION=trueを設定すると、プレビュー/確認なしで送金を即座に実行できます。

  1. ファイルを保存し、Claude Desktop を再起動します

接続すると、Claude Desktop の会話で MCP のプロンプトとツールをすべて直接使用できます。例:

  • 「このアドレスを分析してください:0x123...」
  • 「EVM のガスの概念について説明してください」
  • 「BSC の最新ブロックを確認してください」

その他のクライアントとの統合

BNBChain MCP を独自のクライアントに統合する場合は、詳細情報と実装例についてexamplesディレクトリを確認してください。

サンプルでは、次の方法を紹介しています。

  • MCP クライアントのセットアップ方法
  • 認証と設定
  • ブロックチェーンネットワークとやり取りするための API 呼び出し
  • レスポンスとエラーの処理
  • 統合のベストプラクティス

ローカル開発

前提条件
クイックスタート
  1. リポジトリをクローンします。
git clone https://github.com/bnb-chain/bnbchain-mcp.git
cd bnbchain-mcp
  1. 環境変数を設定します。
cp .env.example .env

.envファイルを編集し、設定を記述します。

  • PRIVATE_KEY:ウォレットの秘密鍵(トランザクション操作に必要)
  • LOG_LEVEL:ログレベルを設定します(DEBUG、INFO、WARN、ERROR)
  • PORT:サーバーのポート番号(デフォルト:3001)
  1. 依存関係をインストールし、開発サーバーを起動します。
# Install project dependencies
bun install

# Start the development server
bun dev:sse
MCP クライアントでのテスト

次のテンプレートを使用して、MCP クライアントでローカルサーバーを設定します。

{
  "mcpServers": {
    "bnbchain-mcp": {
      "url": "http://localhost:3001/sse",
      "env": {
        "PRIVATE_KEY": "your_private_key_here"
      }
    }
  }
}
Web UI でのテスト

テストには@modelcontextprotocol/inspectorを使用します。テスト UI を起動します。

bun run test
利用可能なスクリプト
  • bun dev:sse:ホットリロードを有効にして開発サーバーを起動します
  • bun build:プロジェクトをビルドします
  • bun test:テストスイートを実行します

利用可能なプロンプトとツール

プロンプト
名前説明
analyze_blockブロックを分析し、その内容について詳細な情報を提示します
analyze_transaction特定のトランザクションを分析します
analyze_addressEVM アドレスを分析します
interact_with_contractスマートコントラクトとのやり取りについて案内します
explain_evm_conceptEVM の概念について説明します
compare_networksさまざまな EVM 互換ネットワークを比較します
analyze_tokenERC20 または NFT トークンを分析します
how_to_register_mcp_as_erc8004_agentMCP サーバーを ERC-8004 エージェントとして登録する方法を案内します
ツール
名前説明
get_block_by_hashハッシュを指定してブロックを取得します
get_block_by_number番号を指定してブロックを取得します
get_latest_block最新のブロックを取得します
get_transactionハッシュを指定して特定のトランザクションの詳細情報を取得します
get_transaction_receiptハッシュを指定してトランザクションレシートを取得します
estimate_gasトランザクションのガス代を見積もります
transfer_native_tokenネイティブトークン(BNB、ETH、MATIC など)をアドレスに送金します
approve_token_spending別のアドレスに ERC20 トークンの使用を承認します
transfer_nftNFT(ERC721 トークン)をあるアドレスから別のアドレスに転送します
transfer_erc1155ERC1155 トークンを別のアドレスに転送します
transfer_erc20ERC20 トークンをアドレスに転送します
get_address_from_private_key秘密鍵から導出された EVM アドレスを取得します
get_chain_info特定のネットワークのチェーン情報を取得します
get_supported_networks対応しているネットワークの一覧を取得します
resolve_ensENS 名を EVM アドレスに解決します
is_contractアドレスがスマートコントラクトか外部所有アカウント(EOA)かを確認します
read_contractview/pure 関数を呼び出してスマートコントラクトからデータを読み取ります
write_contract状態を変更する関数を呼び出してスマートコントラクトに書き込みます
get_erc20_token_infoERC20 トークン情報を取得します
get_native_balanceアドレスのネイティブトークン残高を取得します
get_erc20_balanceアドレスの ERC20 トークン残高を取得します
get_nft_info特定の NFT に関する詳細情報を取得します
check_nft_ownershipアドレスが特定の NFT を所有しているか確認します
get_erc1155_token_metadataERC1155 トークンのメタデータを取得します
get_nft_balance特定のコレクションでアドレスが所有する NFT の合計数を取得します
get_erc1155_balanceアドレスが所有する特定の ERC1155 トークン ID の残高を取得します
ERC-8004 エージェントツール

ERC-8004 Identity Registry(Trustless Agents)でAIエージェントを登録および解決します。対応ネットワーク:BSC(56)、BSC Testnet(97)、Ethereum、Base、Polygon、および公式レジストリがデプロイされている各テストネット。agentURIは、Agent Metadata Profile(名前、説明、画像、MCP エンドポイントなどのservices)に準拠したJSONメタデータファイルを指す必要があります。

名前説明
register_erc8004_agentERC-8004 Identity Registryにエージェントを登録します。エージェントIDを返します
set_erc8004_agent_uri既存のERC-8004エージェントのメタデータURIを更新します(所有者のみ)
get_erc8004_agentIdentity Registryからエージェント情報(所有者とtokenURI)を取得します
get_erc8004_agent_walletエージェントの検証済み決済ウォレットを取得します(x402/決済用)
Greenfieldツール
名前説明
gnfd_get_bucket_info特定のバケットの詳細情報を取得します
gnfd_list_bucketsアドレスが所有するすべてのバケットを一覧表示します
gnfd_create_bucket新しいバケットを作成します
gnfd_delete_bucketバケットを削除します
gnfd_get_object_info特定のオブジェクトの詳細情報を取得します
gnfd_list_objectsバケット内のすべてのオブジェクトを一覧表示します
gnfd_upload_objectバケットにオブジェクトをアップロードします
gnfd_download_objectバケットからオブジェクトをダウンロードします
gnfd_delete_objectバケットからオブジェクトを削除します
gnfd_create_folderバケット内にフォルダーを作成します
gnfd_get_account_balanceアカウントの残高を取得します
gnfd_deposit_to_payment決済アカウントに資金を入金します
gnfd_withdraw_from_payment決済アカウントから資金を引き出します
gnfd_disable_refund決済アカウントの返金を無効にします(取り消し不可)
gnfd_get_payment_accountsアドレスが所有するすべての決済アカウントを一覧表示します
gnfd_get_payment_account_info決済アカウントの詳細情報を取得します
gnfd_create_payment新しい決済アカウントを作成します
gnfd_get_payment_balance決済アカウントの残高を取得します

対応ネットワーク

BSC、opBNB、Greenfield、Ethereum、およびその他の主要なEVM互換ネットワークに対応しています。詳細については、src/evm/chains.tsを参照してください。

ERC-8004エージェントの登録は、公式レジストリがデプロイされているチェーンで利用できます:BSC(56)、BSC Testnet(97)、Ethereum(1)、Sepolia(11155111)、Base(8453)、Base Sepolia(84532)、Polygon(137)、Polygon Amoy(80002)、Arbitrum(42161)、Arbitrum Sepolia(421614)。秘密鍵は登録または更新トランザクションへの署名にのみ使用され、保存もログへの記録もされません。

コントリビューション

BNBChain MCPへのコントリビューションを歓迎します!次の手順でご協力いただけます。

  1. リポジトリをフォークします
  2. 機能ブランチを作成します
  3. 変更をコミットします
  4. ブランチにプッシュします
  5. プルリクエストを作成します

コードがコーディング規約に準拠し、適切なテストが含まれていることを確認してください。

ライセンス

このプロジェクトはMITライセンスの下でライセンスされています。詳細についてはLICENSEファイルを参照してください。

参照および謝辞

このプロジェクトは、以下のオープンソースプロジェクトを基盤とし、着想を得ています。

ブロックチェーンエコシステムへの貢献に対し、オリジナルの作者の皆様に感謝申し上げます。

コメント

MCP は初めてですか?

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

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