使用说明

项目简介

Nostr MCP Server 是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在为大型语言模型 (LLM) 提供与去中心化社交网络 Nostr 互动的能力。通过此服务器,LLM 可以访问 Nostr 网络中的用户资料、文本内容和闪电支付 (Zaps) 信息,从而扩展 LLM 的应用场景,使其能够感知和利用实时的社交网络数据。

主要功能点

  • 获取用户资料 (getProfile): 根据用户公钥(支持 npub 和 hex 格式)查询并返回用户的 Nostr 个人资料信息,包括姓名、简介、头像等。
  • 获取用户帖子 (getKind1Notes): 检索指定用户公钥发布的文本帖子 (kind 1 notes),可自定义返回数量。
  • 获取收到的闪电支付 (getReceivedZaps): 查询指定用户公钥收到的闪电支付 (Zaps),包括支付详情和总额。
  • 获取发出的闪电支付 (getSentZaps): 查询指定用户公钥发出的闪电支付 (Zaps),包括支付详情和总额。
  • 获取所有闪电支付 (getAllZaps): 综合查询指定用户公钥发出和收到的所有闪电支付 (Zaps),并清晰标记支付方向和统计总额。
  • 支持 npub 和 hex 公钥格式: 所有工具均接受 npub 和 hex 两种格式的 Nostr 公钥,方便用户使用。
  • 可指定 Relays: 允许用户在查询时指定自定义的 Nostr Relays 服务器,以扩展数据来源或优化查询效率。
  • Zap 支付信息详细展示: 对于闪电支付信息,服务器会解析 bolt11 发票,提取支付金额等详细信息,并进行友好展示。
  • Zap 收据验证 (可选): 支持根据 NIP-57 标准验证 Zap 收据的有效性 (可选)。

安装步骤

  1. 克隆仓库:

    git clone https://github.com/AustinKelsay/nostr-mcp-server.git
    cd nostr-mcp-server
  2. 安装依赖:

    npm install
  3. 构建项目:

    npm run build

服务器配置

要将 Nostr MCP Server 连接到 MCP 客户端(例如 Claude for Desktop),您需要配置客户端的 MCP 服务器设置。以下是 Claude for Desktop 的配置示例,您需要编辑或创建 Claude 的配置文件 'claude_desktop_config.json',并添加如下 'mcpServers' 配置:

配置文件路径:

  • macOS: '~/Library/Application\ Support/Claude/claude_desktop_config.json'
  • Windows: '%AppData%\Claude\claude_desktop_config.json'

配置内容 (JSON 格式):

{
    "mcpServers": {
        "nostr": {  // 服务器名称,可以自定义,例如 "nostr"
            "command": "node", // 启动服务器的命令,这里使用 Node.js 解释器
            "args": [
                "/ABSOLUTE/PATH/TO/nostr-mcp-server/build/index.js" // 服务器程序入口文件的绝对路径
            ]
        }
    }
}

配置参数说明:

  • '"nostr"': 服务器名称,在 Claude 中引用该服务器时使用。您可以自定义名称。
  • '"command": "node"': 指定用于启动服务器的命令,这里假设您已安装 Node.js 并将其添加到系统 PATH 环境变量中。
  • '"args": [...]"': 启动服务器命令的参数列表。
    • '"/ABSOLUTE/PATH/TO/nostr-mcp-server/build/index.js"': 请务必替换为 'nostr-mcp-server' 项目 'build/index.js' 文件的实际绝对路径。 您需要根据您的项目存放位置修改此路径。

配置完成后,重启 Claude for Desktop 使配置生效。

基本使用方法

配置完成后,您可以在 Claude 中通过自然语言指令调用 Nostr 工具。以下是一些示例:

  • 查询用户资料:
    Show me the profile information for npub1qny3tkh0acurzla8x3zy4nhrjz5zd8ne6dvrjehx9n9hr3lnj08qwuzwc8
  • 查询用户最近的帖子:
    What are the recent posts from npub1qny3tkh0acurzla8x3zy4nhrjz5zd8ne6dvrjehx9n9hr3lnj08qwuzwc8?
  • 查询用户收到的闪电支付数量:
    How many zaps has npub1qny3tkh0acurzla8x3zy4nhrjz5zd8ne6dvrjehx9n9hr3lnj08qwuzwc8 received?
  • 查询用户发出的闪电支付:
    Show me the zaps sent by npub1qny3tkh0acurzla8x3zy4nhrjz5zd8ne6dvrjehx9n9hr3lnj08qwuzwc8
  • 查询用户所有闪电支付 (收发):
    Show me all zaps (both sent and received) for npub1qny3tkh0acurzla8x3zy4nhrjz5zd8ne6dvrjehx9n9hr3lnj08qwuzwc8

高级用法:

  • 指定 Relays 服务器: 可以在查询指令中指定自定义的 Relays 服务器,例如:
    Show me the profile for npub1qny3tkh0acurzla8x3zy4nhrjz5zd8ne6dvrjehx9n9hr3lnj08qwuzwc8 using relay wss://relay.damus.io
  • 指定返回数量: 可以指定要获取的帖子或闪电支付的数量,例如:
    Show me the latest 20 notes from npub1qny3tkh0acurzla8x3zy4nhrjz5zd8ne6dvrjehx9n9hr3lnj08qwuzwc8
  • 启用 Zap 验证和调试: 对于闪电支付查询,可以启用额外的验证和调试信息,例如:
    Show me all zaps for npub1qny3tkh0acurzla8x3zy4nhrjz5zd8ne6dvrjehx9n9hr3lnj08qwuzwc8 with validation and debug enabled

注意: 服务器默认使用一组预定义的公共 Relays 服务器。如果查询超时或无结果,可以尝试指定其他 Relays 或检查网络连接。

信息

分类

通信与社交