bsc-multisend-mcp
# BSC MultiSend MCP
An MCP server that enables agents to perform bulk BNB and BEP20 token transfers on BSC.



## Features
- **distributeNative Tool**: Sends BNB to multiple addresses in a single transaction.
- Parameters:
- `receivers`: Array of BSC addresses to receive BNB.
- `amounts`: Array of BNB amounts (e.g., 0.1 BNB) to send, automatically summed for the total.
- Automatically converts amounts to wei and handles gas estimation.
- **distributeToken Tool**: Sends BEP20 tokens to multiple addresses.
- Parameters:
- `tokenAddress`: Address of the BEP20 token contract.
- `receivers`: Array of BSC addresses to receive tokens.
- `amounts`: Array of token amounts (e.g., 100.5 tokens).
- Queries token decimals, checks allowance, and auto-approves if needed.
## Prerequisites
- **Node.js**: Version 18 or higher.
- **pnpm**: For installing dependencies.
- **BNB Smart Chain Wallet**: A wallet with sufficient BNB for gas and tokens for distribution.
- **BSC RPC Endpoint**: Access to a BSC node (e.g., `https://bsc-dataseed.binance.org/`).
## Installation
1. Clone the repository:
```bash
git clone https://github.com/kukapay/bsc-multisend-mcp.git
cd bsc-multisend-mcp
```
2. Install dependencies:
```bash
pnmp install
```
3. Configure MCP client:
Claude Desktop configuration file as a reference:
```json
{
"mcpServers": {
"BSC MultiSend": {
"command": "node",
"args": [ "/path/to/bsc-multisend-mcp/index.js" ],
"env": { "PRIVATE_KEY": "your-private-key" }
}
}
}
```
Replace `/path/to/bsc-multisend-mcp` with your actual installation path, and `your-private-key` with your BSC wallet private key.
## Usage
The server offers two tools — distributeNative and distributeToken — for bulk token distribution.
### distributeNative
**Purpose**: Distributes BNB to multiple addresses in a single transaction.
Example Prompt:
```
I want to send 0.1 BNB to 0xRecipient1 and 0.2 BNB to 0xRecipient2 on BSC.
```
Expected Response:
```
BNB distribution successful. Tx Hash: 0x...
```
### distributeToken
**Purpose**: Distributes BEP20 tokens to multiple addresses. It queries the token's decimals, checks the contract's allowance, approves the contract if needed, and executes the transfer.
Example Prompt:
```
Send tokens to the following addresses on BSC using the token contract at 0xTokenAddress:
- 0xRecipient1: 100.5 tokens
- 0xRecipient2: 200 tokens
- 0xRecipient3: 50.75 tokens
- 0xRecipient4: 150 tokens
- 0xRecipient5: 75.25 tokens
```
Expected Response:
```
Token distribution successful. Tx Hash: 0x...
```
## License
This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.
TDQS
Scored across 2 tools
The two tools have clearly distinct purposes: one handles native BNB transfers and the other handles ERC20 token transfers. There is no overlap or ambiguity between them, as each targets a specific asset type with no functional duplication.
Both tools follow a consistent verb_noun pattern with 'distribute' as the verb and descriptive nouns ('Native', 'Token'). The naming is perfectly uniform and predictable across the set.
With only 2 tools, the set feels thin for a multisend server, lacking operations like checking balances, viewing transaction history, or handling batch configurations. While the core functionality is present, the scope is minimal and may limit agent workflows.
The server covers the basic distribution actions for two asset types but has significant gaps: no tools for querying contract status, validating addresses, estimating gas, or managing batches. This incomplete surface could lead to agent failures in complex scenarios.