Skip to main content
Glama
kukapay

bsc-multisend-mcp

by kukapay
README.md
# BSC MultiSend MCP

An MCP server that enables agents to perform bulk BNB and BEP20 token transfers on BSC.

![License](https://img.shields.io/badge/license-MIT-blue.svg)
![Node.js](https://img.shields.io/badge/Node.js-18.x-green.svg)
![Status](https://img.shields.io/badge/status-active-brightgreen.svg)


## 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

B3.3/5.0

Scored across 2 tools

Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count3/5

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.

Completeness2/5

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.

Maintenance

ActivityInactive
ResponsivenessNo issues