区块链AI交互工具包

BNBChain MCP是一个通过自然语言处理和AI辅助与BNB Chain及其他EVM兼容网络交互的强大工具包,提供区块链开发、智能合约交互和网络管理的全套工具。

  • by bnb-chain
  • TypeScript
  • 本地部署
  • 60 星标
  • 更新于
在 GitHub 查看 bnb-chain/bnbchain-mcp

使用说明

BNBChain MCP(模型上下文协议)

一个强大的工具包,用于通过自然语言处理和人工智能辅助与BNB-Chain和其他EVM兼容网络进行交互。

描述

BNBChain MCP是一种模型上下文协议实现,通过人工智能接口实现与区块链网络的无缝交互。它为区块链开发、智能合约交互和网络管理提供了一套全面的工具和资源。

核心模块

该项目分为几个核心模块:

  • 积木:查询和管理区块链块
  • 合同:与智能合约交互
  • 网络:网络信息和管理
  • 非同质化代币:NFT(ERC721/ERC1155)操作
  • 代币:代币(ERC20)操作
  • 交易:交易管理
  • 钱包:钱包运营和管理
  • 共同:共享公用设施和类型
  • 绿地:支持绿地网络上的文件管理操作,包括上传、下载和管理文件和存储桶
  • 其他功能即将推出(绿地、交换、桥接等)
  • 代理(ERC-8004):在BSC和BSC测试网上注册和解析链上AI代理身份(ERC-8004无信任代理)

重要提示

我们不建议在公共互联网上部署此MCP服务器。 (1) SSE端点具有 无认证--任何可以访问它的人都可以使用服务器。(2)有 没有集中式服务 保管私钥或资金;密钥和签名是客户的责任。如果您仍然需要公开部署它,请添加 认证层 在前面(例如API密钥、JWT或带有auth的反向代理),或者部署 无钥匙版本 仅公开只读或非敏感工具。

资格证书: 首选设置 PRIVATE_KEY 在MCP服务器环境中。在可避免的情况下,不要在工具参数中传递私钥,因为它可能存储在对话历史、客户端日志或请求日志中,并导致暴露。

转账和付款确认

转账和支付工具(例如。 transfer_native_token, transfer_erc20, approve_token_spending, transfer_nft, transfer_erc1155, gnfd_deposit_to_payment, gnfd_withdraw_from_payment, gnfd_create_payment_account)使用a 预览然后确认 默认情况下,资金不会流动,直到用户明确确认。

  • 默认行为: 调用转账或支付工具会返回 预览 (收件人、金额、网络等)和短命 confirmToken。未发送交易。要执行,请调用 confirm_transfer 工具与此 confirmToken 和你的 privateKey。令牌将在5分钟后过期。
  • 跳过确认(每次通话): 通过 skipConfirmation: true 当调用者已经确认或在自动脚本中运行时,在工具参数中。然后,该工具将立即执行并返回交易结果。
  • 跳过确认(服务器范围): 设置环境变量 BNBCHAIN_MCP_SKIP_TRANSFER_CONFIRMATION=true 使得所有转账/支付工具立即执行而不返回预览。对于不需要确认步骤的无头或脚本环境,请使用此选项。

确认流程示例:

  1. 呼叫 transfer_native_token 随着 toAddress, amount, network (以及可选 privateKey).做 不 集 skipConfirmation.
  2. 服务器返回 { preview: { toAddress, amount, network }, confirmToken: "...", message: "..." }.
  3. 查看预览,然后致电 confirm_transfer 随着 confirmToken 和 privateKey 以执行转移。

与Cursor集成

要从Cursor连接到MCP服务器:

  1. 打开光标并转到设置(右上角的齿轮图标)
  2. 点击左侧边栏中的“MCP”
  3. 点击“添加新的全局MCP服务器”
  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_转让_确认:可选。吃起来 "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. 打开克劳德桌面并转到设置
  2. 点击左侧边栏中的“开发人员”
  3. 点击“编辑配置”按钮
  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集成到您自己的客户端中,请查看 例子 目录以获取更详细的信息和参考实现。

这些例子表明:

  • 如何设置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:设置日志记录级别(调试、信息、警告、错误)
  • 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_address 分析EVM地址
interact_with_connect 获取与智能合约交互的指导
explain_evm_concept 获取evm概念的解释
compare_networks 比较不同的EVM兼容网络
analyze_token 分析ERC20或NFT令牌
how_to_register_mcp_as_erc8004_agent 获取将mcp服务器注册为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_fanding 批准另一个地址来使用您的ERC20代币
transfer_nft 将nft(ERC721令牌)从一个地址转移到另一个地址
transfer_erc1155 将erc1155令牌转移到另一个地址
transfer_erc20 将erc20令牌转移到一个地址
get_address_from_private_key 获取从私钥导出的EVM地址
get_chain_info 获取特定网络的链信息
get_supported_networks 获取支持的网络列表
resolve_ens 将ens名称解析为EVM地址
is_connect 检查地址是智能合约还是外部拥有的帐户(EOA)
read_contract 通过调用视图/纯函数从智能合约中读取数据
write_contract 通过调用状态更改函数将数据写入智能合约
get_erc20_token_info 获取erc20令牌信息
get_native_balance 获取地址的本机令牌余额
get_erc20_balance 获取地址的erc20令牌余额
get_nft_info 获取特定nft的详细信息
check_nft_ownership 检查地址是否拥有特定nft
get_erc1155_token_media 获取erc1155令牌的元数据
get_nft_balance 从特定集合中获取地址所拥有的nft总数
get_erc1155_balance 获取地址所拥有的特定erc1155令牌ID的余额

ERC-8004代理工具

在上注册和解析AI代理 ERC-8004 身份注册(无信任代理)。支持的网络:BSC(56)、BSC测试网(97)、以太坊、Base、Polygon及其测试网 官方注册表 已部署。这 agentURI 应指向以下JSON元数据文件 代理元数据配置文件 (名称、描述、图像和 services 例如MCP端点)。

名称 描述
register_erc8004_agent 在ERC-8004身份注册处注册代理人;返回代理ID
set_erc8004_agent_uri 更新现有ERC-8004代理的元数据uri(仅限所有者)
get_erc8004_agent 从身份注册表获取代理信息(所有者和tokenURI)
get_erc8004_agent_wallet 获取代理的已验证支付钱包(用于x402/支付)

绿地工具

名称 描述
gnfd_get_bucket_info 获取特定bucket的详细信息
gnfd_list_buckets 列出一个地址拥有的所有bucket
gnfd_create_bucket 创建一个新的bucket
gnfd_delete_bucket 删除bucket
gnfd_get_object_info 获取特定对象的详细信息
gnfd_list_objects 列出bucket中的所有对象
gnfd_upload_object 将对象上传到bucket
gnfd_download_object 从bucket下载对象
gnfd_delete_object 从bucket中删除对象
gnfd_create_folder 在bucket中创建文件夹
gnfd_get_account_balance 获取账户余额
gnfd_deposit_to_payment 将资金存入支付账户
gnfd_withdraw_from_palayment 从支付账户中提取资金
gnfd_disable_refund 禁用付款帐户的退款(不可逆)
gnfd_get_payment_accounts 列出某个地址拥有的所有付款帐户
gnfd_get_payment_account_info 获取支付账户的详细信息
gnfd_create_palayment 创建新的付款帐户
gnfd_get_payment_balance 获取付款账户余额

支持的网络

支持BSC、opBNB、Greenfield、以太坊和其他主要EVM兼容网络。有关更多详细信息,请参阅 src/evm/chains.ts.

ERC-8004代理商注册 可在部署了官方注册的链上使用:BSC(56)、BSC测试网(97)、以太坊(1)、赛多利亚(11155111)、Base(8453)、Base Sepolia(84532)、Polygon(137)、Polygon-Amoy(80002)、Arbitrum(42161)、Arbitrum Sepolia。私钥仅用于对注册或更新交易进行签名,不会被存储或记录。

贡献

我们欢迎对BNBChain MCP的贡献!以下是您可以提供帮助的方式:

  1. 分叉存储库
  2. 创建要素分支
  3. 提交您的更改
  4. 推到您的分支
  5. 创建拉取请求

请确保您的代码遵循我们的编码标准,并包含适当的测试。

许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

参考文献和致谢

本项目基于以下开源项目并受到其启发:

我们感谢原作者对区块链生态系统的贡献。