Skip to main content
Glama

Nostr MCP サーバー

Claude などの LLM に Nostr 機能を提供するモデル コンテキスト プロトコル (MCP) サーバー。

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 と受信済み Zap の両方を取得し、方向と合計を明確にラベル付けします。

  7. searchNips : 関連性スコアリングによる Nostr 実装可能性 (NIP) の検索

  8. sendAnonymousZap : プロフィールやイベントに匿名のZapを送信し、支払い用のLightning Invoiceを生成する

すべてのツールは、Nostr 識別子をユーザーフレンドリーに表示し、16 進公開キーと npub 形式の両方を完全にサポートします。

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 for Desktop への接続

  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 for Desktop を再起動します。

カーソルに接続

  1. Cursorがインストールされ、最新バージョンに更新されていることを確認してください。

  2. 構成ファイルを作成または編集してカーソルを構成します。

    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 に Nostr ツールを使用するように依頼できます。

  • 「npub1qny3tkh0acurzla8x3zy4nhrjz5zd8ne6dvrjehx9n9hr3lnj08qwuzwc8のプロフィール情報を表示」

  • 「npub1qny3tkh0acurzla8x3zy4nhrjz5zd8ne6dvrjehx9n9hr3lnj08qwuzwc8 からの最近の投稿は何ですか?」

  • 「npub1qny3tkh0acurzla8x3zy4nhrjz5zd8ne6dvrjehx9n9hr3lnj08qwuzwc8 の長文記事を表示」

  • 「npub1qny3tkh0acurzla8x3zy4nhrjz5zd8ne6dvrjehx9n9hr3lnj08qwuzwc8 はいくつの ZAP を受信しましたか?」

  • 「npub1qny3tkh0acurzla8x3zy4nhrjz5zd8ne6dvrjehx9n9hr3lnj08qwuzwc8 から送信された Zap を表示してください」

  • 「npub1qny3tkh0acurzla8x3zy4nhrjz5zd8ne6dvrjehx9n9hr3lnj08qwuzwc8 のすべての Zap(送信済みと受信済みの両方)を表示」

  • 「Zapに関するNIPを検索」

  • 「長編コンテンツに関連する NIP は何ですか?」

  • 「NIP-23の全内容を表示」

  • 「npub1qny3tkh0acurzla8x3zy4nhrjz5zd8ne6dvrjehx9n9hr3lnj08qwuzwc8 に 100 個の sats の匿名の Zap を送信してください」

  • 「note1abcdef に 1000 sats を送信します。コメントには「素晴らしい投稿です!」と添えてください。」

サーバーはnpub形式とhex形式間の変換を自動的に処理するため、クエリではどちらの形式も使用できます。結果はユーザーフレンドリーなnpub識別子で表示されます。

高度な使用法

任意のクエリに対してカスタム リレーを指定できます。

  • 「リレー wss://relay.damus.io を使用して npub1qny3tkh0acurzla8x3zy4nhrjz5zd8ne6dvrjehx9n9hr3lnj08qwuzwc8 のプロファイルを表示します」

取得するノートや Zap の数を指定することもできます。

  • 「npub1qny3tkh0acurzla8x3zy4nhrjz5zd8ne6dvrjehx9n9hr3lnj08qwuzwc8 の最新の 20 件のノートを表示」

匿名の Zap の場合は、オプションのコメントを追加し、ターゲット タイプを指定できます。

  • 「500 sats の匿名の Zap を note1abcdef に送信してください...コメントとして「素晴らしい投稿です!」と付けてください。」

  • 「リレー wss://relay.damus.io を使用して、1000 個の SAT を匿名で nevent1qys に送信します...」

zap クエリの場合、追加の検証とデバッグを有効にすることができます。

  • 「検証とデバッグが有効になっている npub1qny3tkh0acurzla8x3zy4nhrjz5zd8ne6dvrjehx9n9hr3lnj08qwuzwc8 のすべての Zap を表示」

NIP 検索では、結果の数を制御し、完全なコンテンツを含めることができます。

  • 「完全なコンテンツを含む Zap に関する NIP を検索」

  • 「リレーに関するトップ5のNIPを教えてください」

  • 「暗号化に関連するNIPは何ですか? 15件の結果を表示」

制限事項

  • サーバーはハングアップを防ぐためにクエリに対してデフォルトで8秒のタイムアウトを持っています。

  • 16進形式またはnpub形式の公開鍵のみがサポートされています

  • デフォルトではリレーのサブセットのみが使用されます

実装の詳細

  • NIP-19 エンコード/デコードを使用した npub 形式のネイティブ サポート

  • NIP-57準拠の方向認識機能付きZAP受信検出(送信/受信/自己)

  • 支払い金額の抽出を含む高度なbolt11請求書解析

  • 大量のZapでパフォーマンスを向上するスマートなキャッシュシステム

  • 送信/受信/自己Zapの合計SAT計算とネット残高

  • ZAP受信の整合性を保証するためのオプションのNIP-57検証

  • 匿名のZapサポートとLightning Invoice生成

  • ザッピング プロファイル、イベント (ノート ID)、および置き換え可能なイベント (naddr) のサポート

  • 各ツール呼び出しはリレーへの新しい接続を作成し、信頼性の高いデータ取得を保証します。

匿名のザップ

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または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