返回市场
MCP资金

MCP资金

作者:pablof7z16 星标更新:2025-06-06

项目介绍

MCP Money

MCP Money

使用NDK(Nostr开发工具包)实现的Nostr Cashu电子现金功能的MCP(模型上下文协议)货币实现。

特性

  • Cashu钱包集成:完全支持Cashu电子现金铸币厂和代币
  • 闪电网络:通过闪电发票存入和支付
  • Nostr Zaps:使用npub或NIP-05标识符向用户发送Zaps
  • 多铸币支持:同时管理多个Cashu铸币厂
  • 持久存储:将钱包状态保存到本地文件,并缓存铸币信息
  • MCP服务器:通过模型上下文协议暴露钱包功能
  • 命令行界面:所有钱包操作的直接命令行使用

安装

npm install mcp-money

使用

MCP服务器模式(默认)

无参数运行以启动MCP服务器:

npx mcp-money

命令行模式

使用特定命令进行直接钱包操作:

# 获取总余额
npx mcp-money get_balance

# 获取每个铸币厂的余额
npx mcp-money get_mint_balances

# 创建存款发票
npx mcp-money deposit 1000 https://testnut.cashu.space

# 支付闪电发票
npx mcp-money pay lnbc1...

# 发送一个Zap
npx mcp-money zap npub1... 100 "Great post!"

# 添加一个新的铸币厂
npx mcp-money add_mint https://mint.example.com

认证

钱包支持多种方式提供您的Nostr私钥:

  1. 命令行--nsec nsec1...
  2. 环境变量NSEC=nsec1...
  3. 配置文件:自动保存到.wallet.json
  4. 自动生成:如果没有提供,则创建新的密钥

MCP工具

作为MCP服务器运行时,以下工具可用:

  • get_balance:获取总钱包余额
  • get_mint_balances:获取每个铸币厂的余额明细
  • deposit:为指定金额和铸币厂创建存款发票
  • pay:支付闪电发票
  • zap:向用户发送Zap
  • add_mint:向钱包添加一个铸币厂

与AI助手的集成

Claude Code集成

要使用此钱包与Claude Code,将其添加到项目中的MCP配置中:

{
  "mcpServers": {
    "mcp-money": {
      "command": "npx",
      "args": ["mcp-money"]
    }
  }
}

或者全局安装并直接引用二进制文件:

npm install -g mcp-money
{
  "mcpServers": {
    "mcp-money": {
      "command": "mcp-money"
    }
  }
}

Goose集成

要使用此钱包与Goose,将其添加到您的~/.config/goose/config.yaml中:

如果您有一个想要使用的nsec,可以通过传递--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

添加配置后,重启您的AI助手开始使用钱包工具。

配置

钱包会自动创建一个.wallet.json文件来存储:

  • 私钥(nsec)
  • 公钥(npub)
  • 已配置的中继
  • 已配置的铸币厂
  • 缓存的铸币信息

架构

基于以下构建:

  • NDK:用于Nostr协议交互的Nostr开发工具包
  • NDK Wallet:Cashu钱包实现
  • Nostr Tools:低级Nostr实用工具
  • Bun:快速JavaScript运行时和包管理器

安全

  • 私钥本地存储在.wallet.json
  • 为了性能,铸币信息被缓存
  • 所有Nostr通信均使用标准NIP协议
  • 闪电支付需要明确确认

许可证

MIT

贡献

  1. 分叉仓库
  2. 创建功能分支
  3. 进行更改
  4. 如适用,请添加测试
  5. 提交拉取请求

支持

对于问题和疑问,请在GitHub仓库上打开一个issue。