mcp-money

MCP server to give nutsack wallets to agents, an important milestone in the path towardsskynet

GitHubスター

13

ユーザー評価

未評価

フォーク

0

イシュー

0

閲覧数

1

お気に入り

0

README
MCP Money

MCP Money

An MCP (Model Context Protocol) money implementation for Nostr using NDK (Nostr Development Kit) with Cashu ecash functionality.

Features
  • Cashu Wallet Integration: Full support for Cashu ecash mints and tokens
  • Lightning Network: Deposit via Lightning invoices and pay Lightning invoices
  • Nostr Zaps: Send zaps to users using npub or NIP-05 identifiers
  • Multi-mint Support: Manage multiple Cashu mints simultaneously
  • Persistent Storage: Wallet state saved to local file with mint info caching
  • MCP Server: Expose wallet functionality through Model Context Protocol
  • CLI Interface: Direct command-line usage for all wallet operations
Installation
npm install mcp-money
Usage
MCP Server Mode (Default)

Run without arguments to start the MCP server:

npx mcp-money
CLI Mode

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
Authentication

The wallet supports multiple ways to provide your Nostr private key:

  1. Command line: --nsec nsec1...
  2. Environment variable: NSEC=nsec1...
  3. Config file: Automatically saved to .wallet.json
  4. Auto-generate: Creates new key if none provided
MCP Tools

When running as an MCP server, the following tools are available:

  • get_balance: Get the total wallet balance
  • get_mint_balances: Get balance breakdown per mint
  • deposit: Create a deposit invoice for specified amount and mint
  • pay: Pay a Lightning invoice
  • zap: Send a zap to a user
  • add_mint: Add a mint to the wallet
Integration with AI Assistants
Claude Code Integration

To 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"
    }
  }
}
Goose Integration

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.

Configuration

The wallet automatically creates a .wallet.json file to store:

  • Private key (nsec)
  • Public key (npub)
  • Configured relays
  • Configured mints
  • Cached mint information
Architecture

Built on top of:

  • NDK: Nostr Development Kit for Nostr protocol interactions
  • NDK Wallet: Cashu wallet implementation
  • Nostr Tools: Low-level Nostr utilities
  • Bun: Fast JavaScript runtime and package manager
Security
  • Private keys are stored locally in .wallet.json
  • Mint information is cached for performance
  • All Nostr communications use standard NIP protocols
  • Lightning payments require explicit confirmation
License

MIT

Contributing
  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests if applicable
  5. Submit a pull request
Support

For issues and questions, please open an issue on the GitHub repository.

作者情報

471

フォロワー

152

リポジトリ

18

Gist

3

貢献数

トップ貢献者

スレッド