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 形式の両方を完全にサポートします。
Related MCP server: Notion MCP Server
インストール
Claude for Desktop への接続
Claude for Desktopがインストールされ、最新バージョンに更新されていることを確認してください。
構成ファイルを編集または作成して、Claude for Desktop を構成します。
macOSの場合:
vim ~/Library/Application\ Support/Claude/claude_desktop_config.jsonWindowsの場合:
notepad %AppData%\Claude\claude_desktop_config.json構成に Nostr サーバーを追加します。
{ "mcpServers": { "nostr": { "command": "node", "args": [ "/ABSOLUTE/PATH/TO/nostr-mcp-server/build/index.js" ] } } }/ABSOLUTE/PATH/TO/プロジェクトへの実際のパスに置き換えてください。Claude for Desktop を再起動します。
カーソルに接続
Cursorがインストールされ、最新バージョンに更新されていることを確認してください。
構成ファイルを作成または編集してカーソルを構成します。
macOSの場合:
vim ~/.cursor/config.jsonWindowsの場合:
notepad %USERPROFILE%\.cursor\config.json構成に Nostr サーバーを追加します。
{ "mcpServers": { "nostr": { "command": "node", "args": [ "/ABSOLUTE/PATH/TO/nostr-mcp-server/build/index.js" ] } } }/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に実装されています
この分離により、コードベースの保守性が向上し、新しい機能の拡張が容易になります。