Skip to main content
Glama

我们的 MCP 服务器

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

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

特征

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

  1. getProfile :通过公钥获取用户的个人资料信息

  2. getKind1Notes :获取用户撰写的文本注释(种类 1)

  3. getLongFormNotes :获取用户创作的长格式内容(种类 30023)

  4. getReceivedZaps :获取用户收到的 Zap,包括详细的付款信息

  5. getSentZaps :获取用户发送的 zap,包括详细的付款信息

  6. getAllZaps :获取用户发送和接收的 zap,并清晰标记方向和总数

  7. searchNips :通过相关性评分搜索 Nostr 实施可能性 (NIP)

  8. sendAnonymousZap :准备对个人资料或事件进行匿名发送,生成闪电发票以供付款

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

Related MCP server: Notion MCP Server

安装

# Clone the repository git clone https://github.com/austinkelsay/nostr-mcp-server.git cd nostr-mcp-server # Install dependencies npm install # Build the project npm run build

连接到 Claude 桌面版

  1. 确保您已安装Claude for Desktop并更新至最新版本。

  2. 通过编辑或创建配置文件来配置 Claude for Desktop:

    对于 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 桌面版。

连接到光标

  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. 重新启动光标。

Claude 中的用法

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

  • “显示 npub1qny3tkh0acurzla8x3zy4nhrjz5zd8ne6dvrjehx9n9hr3lnj08qwuzwc8 的个人资料信息”

  • “npub1qny3tkh0acurzla8x3zy4nhrjz5zd8ne6dvrjehx9n9hr3lnj08qwuzwc8 最近发布了哪些帖子?”

  • “向我展示来自 npub1qny3tkh0acurzla8x3zy4nhrjz5zd8ne6dvrjehx9n9hr3lnj08qwuzwc8 的长篇文章”

  • “npub1qny3tkh0acurzla8x3zy4nhrjz5zd8ne6dvrjehx9n9hr3lnj08qwuzwc8 受到了多少次攻击?”

  • “显示 npub1qny3tkh0acurzla8x3zy4nhrjz5zd8ne6dvrjehx9n9hr3lnj08qwuzwc8 发送的 zap”

  • “显示 npub1qny3tkh0acurzla8x3zy4nhrjz5zd8ne6dvrjehx9n9hr3lnj08qwuzwc8 的所有 zap(已发送和已接收)”

  • “搜索有关 zap 的 NIP”

  • “哪些 NIP 与长篇内容相关?”

  • “显示 NIP-23 的完整内容”

  • “向 npub1qny3tkh0acurzla8x3zy4nhrjz5zd8ne6dvrjehx9n9hr3lnj08qwuzwc8 匿名发送 100 sats”

  • “向 note1abcdef 发送 1000 sat...并附上评论说‘很棒的帖子!’”

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

高级用法

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

  • “使用中继 wss://relay.damus.io 显示 npub1qny3tkh0acurzla8x3zy4nhrjz5zd8ne6dvrjehx9n9hr3lnj08qwuzwc8 的个人资料”

您还可以指定要获取的注释或 zap 的数量:

  • “显示来自 npub1qny3tkh0acurzla8x3zy4nhrjz5zd8ne6dvrjehx9n9hr3lnj08qwuzwc8 的最新 20 条笔记”

对于匿名 zap,您可以包含可选注释并指定目标类型:

  • “向 note1abcdef 匿名发送 500 sats...并评论‘好帖子!’”

  • “使用中继 wss://relay.damus.io 匿名向 nevent1qys 发送 1000 个 Sats”

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

  • “显示 npub1qny3tkh0acurzla8x3zy4nhrjz5zd8ne6dvrjehx9n9hr3lnj08qwuzwc8 的所有 zap,并启用验证和调试”

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

  • “搜索有关 zap 的完整内容的 NIP”

  • “向我展示有关中继的前 5 个 NIP”

  • “哪些 NIP 与加密相关?请显示 15 个结果”

限制

  • 服务器默认设置 8 秒的查询超时时间,以防止挂起

  • 仅支持十六进制格式或 npub 格式的公钥

  • 默认情况下仅使用一部分中继

实现细节

  • 使用 NIP-19 编码/解码对 npub 格式进行原生支持

  • 符合 NIP-57 标准的 zap 接收检测,具有方向感知功能(发送/接收/自身)

  • 高级 bolt11 发票解析,带付款金额提取

  • 智能缓存系统,可提高大量 zap 的性能

  • 计算已发送/已接收/自发支付的总 Sats 值及净余额

  • 可选的 NIP-57 验证,以确保 zap 收据的完整性

  • 匿名 zap 支持闪电发票生成

  • 支持切换配置文件、事件(注释 ID)和可替换事件(naddr)

  • 每次工具调用都会与继电器建立新的连接,确保可靠的数据检索

匿名Zap

sendAnonymousZap工具允许用户在不暴露 Nostr 身份的情况下发送 Zap。匿名 Zap 的要点:

  • 转账看起来似乎是来自接收者钱包中的匿名用户

  • zap 遵循 NIP-57 协议,但没有发送者签名

  • 收件人仍然可以收到付款和任何包含的消息

  • 您可以删除配置文件(使用 npub/hex pubkey)、特定事件(使用 note/nevent/hex ID)或可替换事件(使用 naddr)

  • 服务器生成闪电付款发票,您可以将其复制到您的闪电钱包中

例子:

"Send an anonymous zap of 100 sats to npub1qny3tkh0acurzla8x3zy4nhrjz5zd8ne6dvrjehx9n9hr3lnj08qwuzwc8" "Send 1000 sats anonymously to note1abcdef... with the comment 'Great post!'"

该服务器根据 LNURL-pay(LUD-06)和 Lightning Address(LUD-16)规范对 LNURL 服务进行全面验证,确保与各种钱包实现的兼容性。

故障排除

  • 如果查询超时,请尝试增加源代码中的QUERY_TIMEOUT值(当前为 8 秒)

  • 如果未找到数据,请尝试指定可能具有数据的其他中继

  • 检查 Claude 的 MCP 日志以获取详细的错误信息

默认中继

服务器默认使用以下中继:

  • 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 for Desktop 或 Cursor 以使更改生效

代码库分为以下模块:

  • 核心服务器设置以及配置文件和注释的工具位于index.ts

  • Zap 功能封装在zap-tools.ts

  • NIPs 搜索在nips-tools.ts中实现

这种分离使得代码库更易于维护,并且更容易通过新功能进行扩展。

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/AustinKelsay/nostr-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server