local-only server
The server can only run on the client’s local machine because it depends on local resources.
Nostr MCP サーバー
Claude などの LLM に Nostr 機能を提供するモデル コンテキスト プロトコル (MCP) サーバー。
https://github.com/user-attachments/assets/1d2d47d0-c61b-44e2-85be-5985d2a81c64
特徴
このサーバーは、Nostr ネットワークと対話するためのいくつかのツールを実装しています。
getProfile
: 公開鍵でユーザーのプロフィール情報を取得しますgetKind1Notes
: ユーザーが作成したテキストメモ(種類1)を取得します。getLongFormNotes
: ユーザーが作成した長文コンテンツ(種類30023)を取得します。getReceivedZaps
: 詳細な支払い情報を含む、ユーザーが受信したZapを取得します。getSentZaps
: 詳細な支払い情報を含む、ユーザーが送信したZapを取得します。getAllZaps
: ユーザーの送信済み Zap と受信済み Zap の両方を取得し、方向と合計を明確にラベル付けします。searchNips
: 関連性スコアリングによる Nostr 実装可能性 (NIP) の検索sendAnonymousZap
: プロフィールやイベントに匿名のZapを送信し、支払い用のLightning Invoiceを生成する
すべてのツールは、Nostr 識別子をユーザーフレンドリーに表示し、16 進公開キーと npub 形式の両方を完全にサポートします。
インストール
Claude for Desktop への接続
- Claude for Desktopがインストールされ、最新バージョンに更新されていることを確認してください。
- 構成ファイルを編集または作成して、Claude for Desktop を構成します。macOSの場合:Windowsの場合:CopyCopy
- 構成に Nostr サーバーを追加します。Copy
/ABSOLUTE/PATH/TO/
プロジェクトへの実際のパスに置き換えてください。 - Claude for Desktop を再起動します。
カーソルに接続
- Cursorがインストールされ、最新バージョンに更新されていることを確認してください。
- 構成ファイルを作成または編集してカーソルを構成します。macOSの場合:Windowsの場合:CopyCopy
- 構成に Nostr サーバーを追加します。Copy
/ABSOLUTE/PATH/TO/
プロジェクトへの実際のパスに置き換えてください。 - カーソルを再起動します。
クロードでの使用
設定が完了したら、次のようなリクエストを行って、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 を使用)をザッピングできます。
- サーバーは支払い用のライトニング請求書を生成し、それをライトニングウォレットにコピーすることができます。
例:
サーバーは、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
発達
このサーバーを変更または拡張するには:
- プロジェクト ルート内の関連ファイルを編集します。
index.ts
: メインサーバーとツールの登録zap-tools.ts
: Zap 関連の機能 (getSentZaps、getReceivedZaps、getAllZaps)nips-tools.ts
: NIPs 検索機能
npm run build
を実行してコンパイルする- 変更を反映するには、デスクトップ版のClaudeまたはCursorを再起動してください。
コードベースはモジュールに編成されています:
- コアサーバーのセットアップとプロファイルおよびメモのツールは
index.ts
にあります - Zapの機能は
zap-tools.ts
にカプセル化されています。 - NIPs検索は
nips-tools.ts
に実装されています
この分離により、コードベースの保守性が向上し、新しい機能の拡張が容易になります。
You must be authenticated.
Claude のような LLM が Nostr ソーシャル ネットワークと対話し、ユーザー プロファイル、テキスト メモ、および Zap 支払い情報を取得できるようにするモデル コンテキスト プロトコル サーバー。
- Features
- Installation
- Connecting to Claude for Desktop
- Connecting to Cursor
- Usage in Claude
- Advanced Usage
- Limitations
- Implementation Details
- Anonymous Zaps
- Troubleshooting
- Default Relays
- Development