
Money
STDIONostr-based Cashu ecash wallet with Lightning Network integration via MCP
Nostr-based Cashu ecash wallet with Lightning Network integration via MCP
An MCP (Model Context Protocol) money implementation for Nostr using NDK (Nostr Development Kit) with Cashu ecash functionality.
npm install mcp-money
Run without arguments to start the MCP server:
npx mcp-money
Use specific commands for direct wallet operations:
# Get total balance npx mcp-money get_balance # Get balance per mint npx mcp-money get_mint_balances # Create deposit invoice npx mcp-money deposit 1000 https://testnut.cashu.space # Pay lightning invoice npx mcp-money pay lnbc1... # Send a zap npx mcp-money zap npub1... 100 "Great post!" # Add a new mint npx mcp-money add_mint https://mint.example.com
The wallet supports multiple ways to provide your Nostr private key:
--nsec nsec1...
NSEC=nsec1...
.wallet.json
When running as an MCP server, the following tools are available:
get_balance
: Get the total wallet balanceget_mint_balances
: Get balance breakdown per mintdeposit
: Create a deposit invoice for specified amount and mintpay
: Pay a Lightning invoicezap
: Send a zap to a useradd_mint
: Add a mint to the walletTo use this wallet with Claude Code, add it to your project's MCP configuration:
{ "mcpServers": { "mcp-money": { "command": "npx", "args": ["mcp-money"] } } }
Or install globally and reference the binary directly:
npm install -g mcp-money
{ "mcpServers": { "mcp-money": { "command": "mcp-money" } } }
To use this wallet with Goose, add it to your ~/.config/goose/config.yaml
:
If you have an nsec you want to use, you can set it by passing it as --nsec nsec1...
.
extensions: money: args: - -y - mcp-money bundled: null cmd: npx description: Money for agents enabled: true env_keys: [] envs: {} name: money timeout: 300 type: stdio
After adding the configuration, restart your AI assistant to begin using the wallet tools.
The wallet automatically creates a .wallet.json
file to store:
Built on top of:
.wallet.json
MIT
For issues and questions, please open an issue on the GitHub repository.