Skip to main content
Glama
zbdpay

ZBD MCP Server

Official
by zbdpay
README.md
# ⚠️ DEPRECATION NOTICE

**🚨 This MCP Server is no longer maintained. 🚨**

We’ve moved to a new and improved MCP Server implementation. All future updates, features, and support will be provided there.

👉 Please migrate to the new MCP Server here: https://github.com/zebedeeio/zbd-payments-typescript-sdk/tree/main/packages/mcp-server

This repo will remain available for reference, but is not recommended for production use.

------------------------

# ZBD MCP Server (deprecated -- use this instead: https://github.com/zebedeeio/zbd-payments-typescript-sdk/tree/main/packages/mcp-server)

Add Bitcoin powers to your LLM.

## Base SDK

This MCP server uses the official TypeScript SDK -- https://github.com/modelcontextprotocol/typescript-sdk

## Prerequisites

- Node.js 23+ (or Bun/Deno/Anything that supports running .ts files)
- Bun (for building executables)
- ZBD API key for payment processing

## ZBD Setup

Get your API key from the ZBD Developer Dashboard and put it in a new `.env` file under `ZBD_API_KEY=XXXXXXXXXXXX` (check `.env.example` for an example).

Once that's done run the `pnpm build` command and setup the MCP server on your client (e.g. Claude Desktop or Cursor).

## Installing Bun

If you don't have Bun installed, you can install it using one of the following methods:

### macOS and Linux

```bash
# Using curl (recommended)
curl -fsSL https://bun.sh/install | bash

# Using Homebrew
brew install oven-sh/bun/bun

# Using npm
npm install -g bun
```

### Windows

```bash
# Using PowerShell
powershell -c "irm bun.sh/install.ps1|iex"

# Using npm
npm install -g bun

# Using Scoop
scoop install bun
```

Verify your installation by running:

```bash
bun --version
```

## Installation

```bash
pnpm install
```

## Troubleshooting

- Use `ps aux | grep mcp-zbd | grep -v grep` to list all running ZBD MCP Server instances.
- Use `pkill -f mcp-zbd` to kill any duplicate ZBD MCP Server instances that may linger.

## Project Structure

This project demonstrates a modular approach to building MCP tools:

- Each tool is defined in its own TypeScript file in the `src` directory
- Each tool can be built into a standalone executable in the `bin` directory
- The main `index.ts` provides the actual tooling implementation

### Available Tools

1. **ZBD** (`src/zbd.ts`): ZBD API for global Bitcoin Lightning payments

## Creating New Tool

To create a new tool:

1. Create a new TypeScript file in the `src` directory (e.g., `src/mytool.ts`)
2. Use the existing tools as templates
3. Add a build script to `package.json`:

```json
"build:mytool": "mkdir -p bin && bun build src/mytool.ts --compile --minify --sourcemap --outfile bin/mcp-mytool"
```

4. Update the `build:all` script to include your new tool

## Usage

### Building Executables

```bash
# Build all tools
pnpm build

# Build a specific tool
pnpm build:zbd
```

The resulting executables will be in the `bin` directory and can be run directly:

```bash
./bin/mcp-zbd
```

## Cursor Notes

When using these tools with Cursor, always use the full path to the executable:

```
/path/to/your/project/bin/mcp-zbd
```

Alternatively, you can run the TypeScript files directly with Node:

```
/path/to/node ~/path/to/project/src/index.ts
```

## Testing

```bash
# Run all tests
pnpm test

# Run tests in watch mode
pnpm test:watch

# Run tests with coverage
pnpm test:coverage
```

## ZBD.ts Tools Available

The following tools are available in the ZBD MCP Server:

1. `send-lightning-payment` - Send a Bitcoin Lightning Network payment to a Lightning Address using ZBD
2. `send-gamertag-payment` - Send a Bitcoin payment to a ZBD Gamertag
3. `create-gamertag-charge` - Generate a payment request for a ZBD User
4. `validate-lightning-address` - Verify the validity of a Lightning Address
5. `create-lightning-charge` - Generate a payment request for a Lightning Address
6. `get-userid-by-gamertag` - Retrieve User ID from a ZBD Gamertag
7. `get-gamertag-by-userid` - Retrieve ZBD Gamertag from a User ID
8. `send-email-payment` - Send instant Bitcoin payments to any email
9. `get-wallet-info` - Retrieve all data about a ZBD Project's Wallet
10. `check-supported-region` - Verify if a user is coming from a supported region
11. `get-zbd-ip-addresses` - Get the official IP addresses of ZBD servers
12. `internal-transfer` - Performs a transfer of funds between two Projects
13. `create-withdrawal-request` - Create a Bitcoin withdrawal QR code
14. `get-withdrawal-request` - Retrieve all data about a single Withdrawal Request
15. `send-payment` - Send a Bitcoin Lightning Network payment
16. `get-payment` - Retrieve all data about a single Payment
17. `decode-charge` - Understand the inner properties of a Charge QR code
18. `create-charge` - Create a new Bitcoin Lightning Network charge
19. `get-charge` - Retrieve all data about a single Charge
20. `create-voucher` - Create a single-use ZBD Voucher that can be redeemed by any ZBD user
21. `get-voucher` - Retrieve details about a ZBD Voucher
22. `redeem-voucher` - Redeem a ZBD Voucher to credit your Project wallet
23. `revoke-voucher` - Revoke a valid ZBD Voucher and reclaim the sats to your Project wallet
24. `send-batch-lightning-payments` - Send multiple Bitcoin Lightning Network payments to Lightning Addresses in a single request