
BNBChain
STDIOAI-powered toolkit for interacting with BNB Chain and EVM networks through natural language
AI-powered toolkit for interacting with BNB Chain and EVM networks through natural language
A powerful toolkit for interacting with BNB Chain and other EVM-compatible networks through natural language processing and AI assistance.
BNBChain MCP is a Model Context Protocol implementation that enables seamless interaction with blockchain networks through AI-powered interfaces. It provides a comprehensive set of tools and resources for blockchain development, smart contract interaction, and network management.
The project is organized into several core modules:
To connect to the MCP server from Cursor:
Default mode
{ "mcpServers": { "bnbchain-mcp": { "command": "npx", "args": ["-y", "@bnb-chain/mcp@latest"], "env": { "PRIVATE_KEY": "your_private_key_here. (optional)" } } } }
SSE mode
{ "mcpServers": { "bnbchain-mcp": { "command": "npx", "args": ["-y", "@bnb-chain/mcp@latest", "--sse"], "env": { "PRIVATE_KEY": "your_private_key_here. (optional)" } } } }
To connect to the MCP server from Claude Desktop:
claude_desktop_config.json
file:{ "mcpServers": { "bnbchain-mcp": { "command": "npx", "args": ["-y", "@bnb-chain/mcp@latest"], "env": { "PRIVATE_KEY": "your_private_key_here" } } } }
Once connected, you can use all the MCP prompts and tools directly in your Claude Desktop conversations. For example:
If you want to integrate BNBChain MCP into your own client, please check out the examples directory for more detailed information and reference implementations.
The examples demonstrate:
git clone https://github.com/bnb-chain/bnbchain-mcp.git cd bnbchain-mcp
cp .env.example .env
Edit .env
file with your configuration:
PRIVATE_KEY
: Your wallet private key (required for transaction operations)LOG_LEVEL
: Set logging level (DEBUG, INFO, WARN, ERROR)PORT
: Server port number (default: 3001)# Install project dependencies bun install # Start the development server bun dev:sse
Configure the local server in your MCP clients using this template:
{ "mcpServers": { "bnbchain-mcp": { "url": "http://localhost:3001/sse", "env": { "PRIVATE_KEY": "your_private_key_here" } } } }
We use @modelcontextprotocol/inspector
for testing. Launch the test UI:
bun run test
bun dev:sse
: Start development server with hot reloadbun build
: Build the projectbun test
: Run test suiteName | Description |
---|---|
analyze_block | Analyze a block and provide detailed information about its contents |
analyze_transaction | Analyze a specific transaction |
analyze_address | Analyze an EVM address |
interact_with_contract | Get guidance on interacting with a smart contract |
explain_evm_concept | Get an explanation of an EVM concept |
compare_networks | Compare different EVM-compatible networks |
analyze_token | Analyze an ERC20 or NFT token |
Name | Description |
---|---|
get_block_by_hash | Get a block by hash |
get_block_by_number | Get a block by number |
get_latest_block | Get the latest block |
get_transaction | Get detailed information about a specific transaction by its hash |
get_transaction_receipt | Get a transaction receipt by its hash |
estimate_gas | Estimate the gas cost for a transaction |
transfer_native_token | Transfer native tokens (BNB, ETH, MATIC, etc.) to an address |
approve_token_spending | Approve another address to spend your ERC20 tokens |
transfer_nft | Transfer an NFT (ERC721 token) from one address to another |
transfer_erc1155 | Transfer ERC1155 tokens to another address |
transfer_erc20 | Transfer ERC20 tokens to an address |
get_address_from_private_key | Get the EVM address derived from a private key |
get_chain_info | Get chain information for a specific network |
get_supported_networks | Get list of supported networks |
resolve_ens | Resolve an ENS name to an EVM address |
is_contract | Check if an address is a smart contract or an externally owned account (EOA) |
read_contract | Read data from a smart contract by calling a view/pure function |
write_contract | Write data to a smart contract by calling a state-changing function |
get_erc20_token_info | Get ERC20 token information |
get_native_balance | Get native token balance for an address |
get_erc20_balance | Get ERC20 token balance for an address |
get_nft_info | Get detailed information about a specific NFT |
check_nft_ownership | Check if an address owns a specific NFT |
get_erc1155_token_metadata | Get the metadata for an ERC1155 token |
get_nft_balance | Get the total number of NFTs owned by an address from a specific collection |
get_erc1155_balance | Get the balance of a specific ERC1155 token ID owned by an address |
Name | Description |
---|---|
gnfd_get_bucket_info | Get detailed information about a specific bucket |
gnfd_list_buckets | List all buckets owned by an address |
gnfd_create_bucket | Create a new bucket |
gnfd_delete_bucket | Delete a bucket |
gnfd_get_object_info | Get detailed information about a specific object |
gnfd_list_objects | List all objects in a bucket |
gnfd_upload_object | Upload an object to a bucket |
gnfd_download_object | Download an object from a bucket |
gnfd_delete_object | Delete an object from a bucket |
gnfd_create_folder | Create a folder in a bucket |
gnfd_get_account_balance | Get the balance for an account |
gnfd_deposit_to_payment | Deposit funds into a payment account |
gnfd_withdraw_from_payment | Withdraw funds from a payment account |
gnfd_disable_refund | Disable refund for a payment account (IRREVERSIBLE) |
gnfd_get_payment_accounts | List all payment accounts owned by an address |
gnfd_get_payment_account_info | Get detailed information about a payment account |
gnfd_create_payment | Create a new payment account |
gnfd_get_payment_balance | Get payment account balance |
Supports BSC, opBNB, Greenfield, Ethereum, and other major EVM-compatible networks. For more details, see src/evm/chains.ts
.
We welcome contributions to BNBChain MCP! Here's how you can help:
Please ensure your code follows our coding standards and includes appropriate tests.
This project is licensed under the MIT License - see the LICENSE file for details.
This project is built upon and inspired by the following open-source projects:
We extend our gratitude to the original authors for their contributions to the blockchain ecosystem.