一个强大的工具包,通过自然语言处理和AI辅助与BNB链及其他EVM兼容网络进行交互。
<a href="https://glama.ai/mcp/servers/@bnb-chain/bnbchain-mcp"> <img width="380" height="200" src="https://gips2.baidu.com/it/u=1659521774,4153770201&fm=3081&app=3081&f=PNG?w=760&h=400" alt="bnbchain-mcp MCP服务器" /> </a>BNBChain MCP是一个模型上下文协议实现,它通过AI驱动的界面无缝地与区块链网络进行交互。它提供了一整套工具和资源,用于区块链开发、智能合约交互和网络管理。
该项目组织成几个核心模块:
要从Cursor连接到MCP服务器:
默认模式
{
"mcpServers": {
"bnbchain-mcp": {
"command": "npx",
"args": ["-y", "@bnb-chain/mcp@latest"],
"env": {
"PRIVATE_KEY": "在这里输入你的私钥. (可选)"
}
}
}
}
SSE模式
{
"mcpServers": {
"bnbchain-mcp": {
"command": "npx",
"args": ["-y", "@bnb-chain/mcp@latest", "--sse"],
"env": {
"PRIVATE_KEY": "在这里输入你的私钥. (可选)"
}
}
}
}
要从Claude Desktop连接到MCP服务器:
claude_desktop_config.json文件中添加以下配置:{
"mcpServers": {
"bnbchain-mcp": {
"command": "npx",
"args": ["-y", "@bnb-chain/mcp@latest"],
"env": {
"PRIVATE_KEY": "在这里输入你的私钥"
}
}
}
}
一旦连接,您可以在Claude Desktop对话中直接使用所有MCP提示和工具。例如:
如果您想将BNBChain MCP集成到自己的客户端,请查看示例目录以获取更详细的说明和参考实现。
示例演示了:
git clone https://github.com/bnb-chain/bnbchain-mcp.git
cd bnbchain-mcp
cp .env.example .env
编辑.env文件以包含您的配置:
PRIVATE_KEY:您的钱包私钥(用于交易操作)LOG_LEVEL:设置日志级别(DEBUG, INFO, WARN, ERROR)PORT:服务器端口号(默认:3001)# 安装项目依赖项
bun install
# 启动开发服务器
bun dev:sse
使用此模板在您的MCP客户端中配置本地服务器:
{
"mcpServers": {
"bnbchain-mcp": {
"url": "http://localhost:3001/sse",
"env": {
"PRIVATE_KEY": "在这里输入你的私钥"
}
}
}
}
我们使用@modelcontextprotocol/inspector进行测试。启动测试UI:
bun run test
bun dev:sse:启动具有热重载的开发服务器bun build:构建项目bun test:运行测试套件| 名称 | 描述 |
|---|---|
| analyze_block | 分析一个区块并提供关于其内容的详细信息 |
| analyze_transaction | 分析特定的交易 |
| analyze_address | 分析一个EVM地址 |
| interact_with_contract | 获取与智能合约交互的指导 |
| explain_evm_concept | 获取对EVM概念的解释 |
| compare_networks | 比较不同的EVM兼容网络 |
| analyze_token | 分析ERC20或NFT代币 |
| 名称 | 描述 |
|---|---|
| get_block_by_hash | 通过哈希获取一个区块 |
| get_block_by_number | 通过编号获取一个区块 |
| get_latest_block | 获取最新的区块 |
| get_transaction | 通过其哈希获取特定交易的详细信息 |
| get_transaction_receipt | 通过其哈希获取交易收据 |
| estimate_gas | 估计交易的gas成本 |
| transfer_native_token | 将原生代币(BNB、ETH、MATIC等)转移到一个地址 |
| approve_token_spending | 批准另一个地址花费您的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_contract | 检查一个地址是否是智能合约或外部拥有账户(EOA) |
| read_contract | 通过调用view/pure函数从智能合约读取数据 |
| 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_metadata | 获取ERC1155代币的元数据 |
| get_nft_balance | 获取地址拥有的特定集合中的NFT总数 |
| get_erc1155_balance | 获取地址拥有的特定ERC1155代币ID的余额 |
| 名称 | 描述 |
|---|---|
| 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、绿野、以太坊和其他主要的EVM兼容网络。更多详情,请参见src/evm/chains.ts。
我们欢迎对BNBChain MCP的贡献!以下是您可以如何帮助:
请确保您的代码遵循我们的编码标准,并包含适当的测试。
本项目根据MIT许可证发布 - 详情请参见LICENSE文件。
本项目基于并受到以下开源项目的启发:
我们感谢原始作者对区块链生态系统所做的贡献。