Nostr MCP Server

Nostr MCP Server

镜子 (jìng zi)

MCP-Mirror

开发者工具
访问服务器

README

Nostr MCP 服务器

一个模型上下文协议 (MCP) 服务器,为 Claude 等 LLM 提供 Nostr 功能。

https://github.com/user-attachments/assets/1d2d47d0-c61b-44e2-85be-5985d2a81c64

功能

此服务器实现了七个与 Nostr 网络交互的工具:

  1. getProfile: 通过公钥获取用户的个人资料信息
  2. getKind1Notes: 获取用户撰写的文本笔记 (kind 1)
  3. getLongFormNotes: 获取用户撰写的长篇内容 (kind 30023)
  4. getReceivedZaps: 获取用户收到的 zaps,包括详细的支付信息
  5. getSentZaps: 获取用户发送的 zaps,包括详细的支付信息
  6. getAllZaps: 获取用户发送和接收的所有 zaps,清楚地标记方向和总额
  7. searchNips: 搜索 Nostr Implementation Possibilities (NIPs),并进行相关性评分

所有工具都完全支持十六进制公钥和 npub 格式,并以用户友好的方式显示 Nostr 标识符。

安装

# 克隆仓库
git clone https://github.com/austinkelsay/nostr-mcp-server.git
cd nostr-mcp-server

# 安装依赖
npm install

# 构建项目
npm run build

连接到桌面版 Claude

  1. 确保您已安装 桌面版 Claude 并更新到最新版本。

  2. 通过编辑或创建配置文件来配置桌面版 Claude:

    对于 macOS:

    vim ~/Library/Application\ Support/Claude/claude_desktop_config.json
    

    对于 Windows:

    notepad %AppData%\Claude\claude_desktop_config.json
    
  3. 将 Nostr 服务器添加到您的配置中:

    {
        "mcpServers": {
            "nostr": {
                "command": "node",
                "args": [
                    "/ABSOLUTE/PATH/TO/nostr-mcp-server/build/index.js"
                ]
            }
        }
    }
    

    请务必将 /ABSOLUTE/PATH/TO/ 替换为您的项目的实际路径。

  4. 重新启动桌面版 Claude。

连接到 Cursor

  1. 确保您已安装 Cursor 并更新到最新版本。

  2. 通过创建或编辑配置文件来配置 Cursor:

    对于 macOS:

    vim ~/.cursor/config.json
    

    对于 Windows:

    notepad %USERPROFILE%\.cursor\config.json
    
  3. 将 Nostr 服务器添加到您的配置中:

    {
        "mcpServers": {
            "nostr": {
                "command": "node",
                "args": [
                    "/ABSOLUTE/PATH/TO/nostr-mcp-server/build/index.js"
                ]
            }
        }
    }
    

    请务必将 /ABSOLUTE/PATH/TO/ 替换为您的项目的实际路径。

  4. 重新启动 Cursor。

在 Claude 中使用

配置完成后,您可以向 Claude 发出如下请求来使用 Nostr 工具:

  • "Show me the profile information for npub1qny3tkh0acurzla8x3zy4nhrjz5zd8ne6dvrjehx9n9hr3lnj08qwuzwc8" (显示 npub1qny3tkh0acurzla8x3zy4nhrjz5zd8ne6dvrjehx9n9hr3lnj08qwuzwc8 的个人资料信息)
  • "What are the recent posts from npub1qny3tkh0acurzla8x3zy4nhrjz5zd8ne6dvrjehx9n9hr3lnj08qwuzwc8?" (npub1qny3tkh0acurzla8x3zy4nhrjz5zd8ne6dvrjehx9n9hr3lnj08qwuzwc8 最近的帖子是什么?)
  • "Show me the long-form articles from npub1qny3tkh0acurzla8x3zy4nhrjz5zd8ne6dvrjehx9n9hr3lnj08qwuzwc8" (显示 npub1qny3tkh0acurzla8x3zy4nhrjz5zd8ne6dvrjehx9n9hr3lnj08qwuzwc8 的长篇文章)
  • "How many zaps has npub1qny3tkh0acurzla8x3zy4nhrjz5zd8ne6dvrjehx9n9hr3lnj08qwuzwc8 received?" (npub1qny3tkh0acurzla8x3zy4nhrjz5zd8ne6dvrjehx9n9hr3lnj08qwuzwc8 收到了多少 zaps?)
  • "Show me the zaps sent by npub1qny3tkh0acurzla8x3zy4nhrjz5zd8ne6dvrjehx9n9hr3lnj08qwuzwc8" (显示 npub1qny3tkh0acurzla8x3zy4nhrjz5zd8ne6dvrjehx9n9hr3lnj08qwuzwc8 发送的 zaps)
  • "Show me all zaps (both sent and received) for npub1qny3tkh0acurzla8x3zy4nhrjz5zd8ne6dvrjehx9n9hr3lnj08qwuzwc8" (显示 npub1qny3tkh0acurzla8x3zy4nhrjz5zd8ne6dvrjehx9n9hr3lnj08qwuzwc8 的所有 zaps(发送和接收))
  • "Search for NIPs about zaps" (搜索关于 zaps 的 NIPs)
  • "What NIPs are related to long-form content?" (哪些 NIPs 与长篇内容相关?)
  • "Show me NIP-23 with full content" (显示包含完整内容的 NIP-23)

服务器会自动处理 npub 和十六进制格式之间的转换,因此您可以在查询中使用任一格式。 结果以用户友好的 npub 标识符显示。

高级用法

您可以为任何查询指定自定义 relay:

  • "Show me the profile for npub1qny3tkh0acurzla8x3zy4nhrjz5zd8ne6dvrjehx9n9hr3lnj08qwuzwc8 using relay wss://relay.damus.io" (使用 relay wss://relay.damus.io 显示 npub1qny3tkh0acurzla8x3zy4nhrjz5zd8ne6dvrjehx9n9hr3lnj08qwuzwc8 的个人资料)

您还可以指定要获取的笔记或 zaps 的数量:

  • "Show me the latest 20 notes from npub1qny3tkh0acurzla8x3zy4nhrjz5zd8ne6dvrjehx9n9hr3lnj08qwuzwc8" (显示 npub1qny3tkh0acurzla8x3zy4nhrjz5zd8ne6dvrjehx9n9hr3lnj08qwuzwc8 最新的 20 条笔记)

对于 zap 查询,您可以启用额外的验证和调试:

  • "Show me all zaps for npub1qny3tkh0acurzla8x3zy4nhrjz5zd8ne6dvrjehx9n9hr3lnj08qwuzwc8 with validation and debug enabled" (显示 npub1qny3tkh0acurzla8x3zy4nhrjz5zd8ne6dvrjehx9n9hr3lnj08qwuzwc8 的所有 zaps,并启用验证和调试)

对于 NIP 搜索,您可以控制结果数量并包含完整内容:

  • "Search for NIPs about zaps with full content" (搜索关于 zaps 的 NIPs,并包含完整内容)
  • "Show me the top 5 NIPs about relays" (显示关于 relays 的前 5 个 NIPs)
  • "What NIPs are related to encryption? Show me 15 results" (哪些 NIPs 与加密相关? 显示 15 个结果)

局限性

  • 服务器对查询具有默认的 8 秒超时,以防止挂起
  • 仅支持十六进制格式或 npub 格式的公钥
  • 默认情况下仅使用一部分 relays

实现细节

  • 使用 NIP-19 编码/解码对 npub 格式的本机支持
  • 符合 NIP-57 标准的 zap 收据检测,具有方向感知(发送/接收/自我)
  • 具有支付金额提取功能的高级 bolt11 发票解析
  • 智能缓存系统,用于提高大量 zaps 的性能
  • 发送/接收/自我 zaps 的总 sats 计算,具有净余额
  • 可选的 NIP-57 验证,用于确保 zap 收据的完整性
  • 每个工具调用都会创建一个与 relays 的新连接,从而确保可靠的数据检索

故障排除

  • 如果查询超时,请尝试增加源代码中的 QUERY_TIMEOUT 值(当前为 8 秒)
  • 如果未找到数据,请尝试指定可能具有数据的不同 relays
  • 检查 Claude 的 MCP 日志以获取详细的错误信息

默认 Relays

服务器默认使用以下 relays:

  • wss://relay.damus.io
  • wss://relay.nostr.band
  • wss://relay.primal.net
  • wss://nos.lol
  • wss://relay.current.fyi
  • wss://nostr.bitcoiner.social

开发

要修改或扩展此服务器:

  1. 编辑项目根目录中的相关文件:

    • index.ts: 主要服务器和工具注册
    • zap-tools.ts: 与 Zap 相关的功能(getSentZaps、getReceivedZaps、getAllZaps)
    • nips-tools.ts: NIPs 搜索功能
  2. 运行 npm run build 进行编译

  3. 重新启动桌面版 Claude 或 Cursor 以获取您的更改

代码库被组织成模块:

  • 核心服务器设置以及用于个人资料和笔记的工具位于 index.ts
  • Zap 功能封装在 zap-tools.ts
  • NIPs 搜索在 nips-tools.ts 中实现

这种分离使代码库更易于维护,并且更易于扩展新功能。

推荐服务器

Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
MCP Package Docs Server

MCP Package Docs Server

促进大型语言模型高效访问和获取 Go、Python 和 NPM 包的结构化文档,通过多语言支持和性能优化来增强软件开发。

精选
本地
TypeScript
Claude Code MCP

Claude Code MCP

一个实现了 Claude Code 作为模型上下文协议(Model Context Protocol, MCP)服务器的方案,它可以通过标准化的 MCP 接口来使用 Claude 的软件工程能力(代码生成、编辑、审查和文件操作)。

精选
本地
JavaScript
@kazuph/mcp-taskmanager

@kazuph/mcp-taskmanager

用于任务管理的模型上下文协议服务器。它允许 Claude Desktop(或任何 MCP 客户端)在基于队列的系统中管理和执行任务。

精选
本地
JavaScript
mermaid-mcp-server

mermaid-mcp-server

一个模型上下文协议 (MCP) 服务器,用于将 Mermaid 图表转换为 PNG 图像。

精选
JavaScript
Jira-Context-MCP

Jira-Context-MCP

MCP 服务器向 AI 编码助手(如 Cursor)提供 Jira 工单信息。

精选
TypeScript
Linear MCP Server

Linear MCP Server

一个模型上下文协议(Model Context Protocol)服务器,它与 Linear 的问题跟踪系统集成,允许大型语言模型(LLM)通过自然语言交互来创建、更新、搜索和评论 Linear 问题。

精选
JavaScript
Sequential Thinking MCP Server

Sequential Thinking MCP Server

这个服务器通过将复杂问题分解为顺序步骤来促进结构化的问题解决,支持修订,并通过完整的 MCP 集成来实现多条解决方案路径。

精选
Python
Curri MCP Server

Curri MCP Server

通过管理文本笔记、提供笔记创建工具以及使用结构化提示生成摘要,从而实现与 Curri API 的交互。

官方
本地
JavaScript