Bitcoin MCP
by tiero
README.md
# Bitcoin MCP

A Model Context Protocol (MCP) server that provides Bitcoin tools for AI applications like Claude Desktop and Cursor, allowing them to interact with the Bitcoin Network and manage wallet operations.
## Overview
The Bitcoin MCP server extends any MCP client's capabilities by providing tools to do anything with Bitcoin:
- Create and restore Bitcoin and Ark wallets
- Send Bitcoin and Ark transactions
- Retrieve Bitcoin and Ark wallet balances
- Real-time Bitcoin price conversion
- Cache-optimized price fetching via blockchain.info
- Strongly typed wallet operations
- Comprehensive error handling and fallbacks
- Schema validation with Zod
- Integration with `@arklabs/wallet-sdk`
## Available Tools
### `setup_wallet`
Create or restore a Bitcoin wallet:
```typescript
{
action: "create" | "restore",
privateKey?: string,
network?: "bitcoin" | "testnet" | "signet" | "mutinynet",
arkServerUrl?: string,
esploraUrl?: string
}
```
### `get_wallet_status`
Get the current wallet status and initialization state.
### `get_addresses`
Get all wallet addresses.
### `get_balance`
Get wallet balance with optional fiat conversion.
### `send_bitcoin`
Send Bitcoin to an address:
```typescript
{
address: string,
amount: number, // in satoshis
feeRate?: number // optional fee rate
}
```
## Development
This project uses:
- [pnpm](https://pnpm.io/) - Package manager
- [Vite](https://vitejs.dev/) - Build system
- [Vitest](https://vitest.dev/) - Testing framework
- [TypeScript](https://www.typescriptlang.org/) - Language
- [Zod](https://zod.dev/) - Schema validation
### Getting Started
1. Install dependencies:
```bash
pnpm install
```
2. Run tests:
```bash
pnpm test
```
3. Build the project:
```bash
pnpm build
```
## License
MIT License
TDQS
C2.1/5.0
Scored across 4 tools
Disambiguation5/5
Each tool targets a distinct operation: wallet setup, balance query, transaction sending, and address retrieval. There is no overlap in their purposes.
Naming Consistency5/5
All tool names follow a consistent verb_noun snake_case pattern: setup_wallet, get_balance, send_bitcoin, get_address. The naming is uniform and predictable.
Tool Count5/5
With four tools, the set is well-scoped for a Bitcoin wallet server. Each tool covers an essential function without redundancy or unnecessary bloat.
Completeness4/5
The core wallet lifecycle is covered: setup, balance check, sending, and address generation. A minor gap is the lack of transaction history or receive mechanisms, but the essential operations are present.
Maintenance
ActivityInactive
ResponsivenessNo issues