README.md•5.3 kB
# ⚠️ 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