使用说明
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使得所有转账/支付工具立即执行而不返回预览。对于不需要确认步骤的无头或脚本环境,请使用此选项。
确认流程示例:
- 呼叫
transfer_native_token随着toAddress,amount,network(以及可选privateKey).做 不 集skipConfirmation. - 服务器返回
{ preview: { toAddress, amount, network }, confirmToken: "...", message: "..." }. - 查看预览,然后致电
confirm_transfer随着confirmToken和privateKey以执行转移。
与Cursor集成
要从Cursor连接到MCP服务器:
- 打开光标并转到设置(右上角的齿轮图标)
- 点击左侧边栏中的“MCP”
- 点击“添加新的全局MCP服务器”
- 输入以下详细信息:
默认模式
{
"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服务器:
- 打开克劳德桌面并转到设置
- 点击左侧边栏中的“开发人员”
- 点击“编辑配置”按钮
- 将以下配置添加到
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 立即执行传输,无需预览/确认。
- 保存文件并重新启动Claude Desktop
连接后,您可以在Claude Desktop对话中直接使用所有MCP提示和工具。例如:
- “分析此地址:0x123…”
- “解释EVM气体概念”
- “检查BSC上的最新块”
与其他客户的整合
如果您想将BNBChain MCP集成到您自己的客户端中,请查看 例子 目录以获取更详细的信息和参考实现。
这些例子表明:
- 如何设置MCP客户端
- 身份验证和配置
- 进行API调用以与区块链网络进行交互
- 处理响应和错误
- 集成的最佳实践
本地开发
先决条件
快速开始
- 克隆存储库:
git clone https://github.com/bnb-chain/bnbchain-mcp.git
cd bnbchain-mcp
- 设置环境变量:
cp .env.example .env
编辑 .env 使用您的配置文件:
PRIVATE_KEY:您的钱包私钥(交易操作所需)LOG_LEVEL:设置日志记录级别(调试、信息、警告、错误)PORT:服务器端口号(默认值:3001)
- 安装依赖项并启动开发服务器:
# 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的贡献!以下是您可以提供帮助的方式:
- 分叉存储库
- 创建要素分支
- 提交您的更改
- 推到您的分支
- 创建拉取请求
请确保您的代码遵循我们的编码标准,并包含适当的测试。
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
参考文献和致谢
本项目基于以下开源项目并受到其启发:
- TermiX官方/bsc mcp -原始BSC MCP实施
- mcpdotdirect/evm-mcp服务器 -EVM兼容的MCP服务器实现
我们感谢原作者对区块链生态系统的贡献。
