mcpField
N
Nostr Signer

Nostr Signer

リモート
github.com/hudhaifahzセキュリティ07 週間前に更新
リポジトリ

Nostr Signer について

Nostr Signerは、ChatGPTやCodexがブラウザー署名ツールを通じてNostr署名を依頼するためのオープンソースのローカルブリッジです。秘密鍵を扱わず、Node.jsを実行でき、対応するブラウザー拡張機能で操作を個別に承認するデスクトップ利用者向けです。

主な機能

  1. 01NIP-07ブラウザー署名ツールに接続
  2. 02NIP-46署名フローに対応
  3. 03Nostrイベントの準備と検証
  4. 04署名操作ごとの承認
  5. 05リレー確認付きイベント公開
  6. 06署名セッションをメモリ内に保持

活用シーン

  1. 01準備済みのNostrノート署名を承認する
  2. 02別途確認してイベントを公開する
  3. 03一時的な署名リンクでNIP-46アプリに接続する
  4. 04リレーから範囲を限定してNostrイベントを読む

MCP 対応

ローカルstdioのMCPツールを通じて、ChatGPTやCodexから公開鍵アクセス、イベントの準備と署名、リレー読み取り、個別確認後の公開を依頼できます。ツールを絞ったホスト型MCPエンドポイントもあります。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://signer.frontiercrown.com/mcp
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

ツール

17

このツールにパラメーターはありません。

詳細

ChatGPT と Codex 用の Nostr 署名ツール

ChatGPT Work または Codex が、Alby、nos2x、その他の NIP-07 ブラウザー拡張機能、あるいは高度な NIP-46 リモート署名ツールに Nostr の署名を要求できる、ローカルファーストのオープンソース署名ブリッジです。秘密鍵は署名ツール内に保持されます。このプロジェクトが nsec を必要としたり、受け取ったり、保存したり、ログに記録したり、送信したりすることはありません。

最高のセキュリティを確保するには、ローカルインストールを使用してください。 承認ページとセッションコーディネーターがコンピューター上に保持されます。ホスト型ブリッジは利便性を目的としたベータ版です。イベントの内容、公開鍵、署名、暗号文、リレーからの応答は、Railway 上で Frontier Crown が運用するインフラを経由します。平文がこのインフラを経由する可能性があるため、ホスト型の NIP-44 暗号化と復号は無効になっています。

リリース状況:v0.4.0 ローカル公開ベータ版と、稼働中のアカウント不要のホスト型アルファ版です。Chrome 系ブラウザーでの NIP-07 公開鍵へのアクセスと署名は、2026-09-10 に成功しました。ユーザーが承認したお知らせが受け入れられ、nos.lol、nostr.mom、relay.primal.net から有効な署名付きで独立して読み戻されたことを確認しました。https://signer.frontiercrown.com/mcp のホスト型 MCP エンドポイントでは、外部からの初期化と、2 つのセッション間でのペアリングページの分離テストが完了しました。ホスト型では機能を縮小し、17 個のツールを公開して、NIP-44 の暗号化/復号は省いています。公式 MCP Registry では有効ですが、OpenAI ディレクトリではまだ承認されていません。

誰でも使えますか?

すべてのユーザーが使えるわけではありません。現行リリースの対象は、Node.js 22 以降を実行でき、ローカルの stdio MCP サーバーに接続でき、互換性のある NIP-07 拡張機能を備えた Chrome 系または Firefox 系のプロファイルで承認ページを開けるデスクトップユーザーです。モバイル署名ツールでも、無人署名デーモンでもありません。承認の前に、kind、content、tags、timestamp を含むイベント全体を表示する署名ツールを優先してください。

無料のローカルプラグインは、各ユーザーが鍵を保持し、ブリッジを実行するため、主な推奨公開リリースです。OAuth や別のアカウントは不要です。ブラウザー拡張機能が Nostr の公開鍵を提供し、署名ごとに承認します。ホスト型プロトタイプにも OAuth やユーザーアカウントはありません。短期間有効な高エントロピーのケイパビリティ URL を使って、各 AI MCP セッションを拡張機能が有効なブラウザーに紐付けます。ただし、セッションごとの分離、不正利用対策、プライバシー/データ保持の運用、独立したセキュリティレビューが引き続き必要です。LAUNCH_READINESS.md、COMPATIBILITY.md、HOSTED_SERVICE.md を参照してください。

Codex にインストールする

公開ソースをクローンし、リリースタグを検証して、ローカルでビルドしたうえで、同梱の MCP サーバーを登録します。 その後、新しい Codex タスクを開始して、ツールを読み込んでください。

git clone --branch v0.4.0 https://github.com/hudhaifahz/nostr-signer-chatgpt.git
cd nostr-signer-chatgpt
npm ci
npm run check
codex mcp add nostr-signer -- node "$PWD/mcp/server.mjs"

リポジトリには移植可能なプラグインマニフェストが含まれていますが、ワンコマンドの Grynvault マーケットプレイス用ラッパーはまだ公開されていません。インストール前にソースとリリースタグを確認してください。ローカル署名ブリッジは、起動したデスクトップユーザーの権限で実行されます。

ビルド済みローカルバンドルをダウンロードする

リリースページには、ビルド済みのアーカイブと SHA-256 チェックサムが含まれています。アーカイブには、スタンドアロンの MCP バンドル、プラグインマニフェスト、署名スキル、ライセンス表記、ソース、テスト、ドキュメントが含まれています。秘密鍵、署名セッション、ブラウザーデータは含まれていません。

ビルドハッシュと、稼働中のデプロイで申告されているソースリビジョンは、PROVENANCE.md に記載されており、https://signer.frontiercrown.com/provenance で公開されています。 タグ付きアーカイブには、GitHub のビルド来歴証明が付与されます。

curl -LO https://github.com/hudhaifahz/nostr-signer-chatgpt/releases/download/v0.4.0/nostr-signer-chatgpt-0.4.0.tgz
curl -LO https://github.com/hudhaifahz/nostr-signer-chatgpt/releases/download/v0.4.0/nostr-signer-chatgpt-0.4.0.tgz.sha256
shasum -a 256 -c nostr-signer-chatgpt-0.4.0.tgz.sha256
mkdir nostr-signer-chatgpt
tar -xzf nostr-signer-chatgpt-0.4.0.tgz -C nostr-signer-chatgpt --strip-components=1
codex mcp add nostr-signer -- node "$PWD/nostr-signer-chatgpt/mcp/server.mjs"

v0.4.0 バンドルの予想 SHA-256: 75d2c2cc7070ce0a15dbc122c479c312919279ff4160ed9e7e1993c335ce95a5。

一般ユーザーの利用手順

  1. プラグインをローカルにインストールして起動します。
  2. Alby、nos2x、または別の NIP-07 署名者がインストールされている Chrome または Firefox のプロファイルで、ローカルセットアップページ http://127.0.0.1:34846/ を開きます。
  3. ブラウザー拡張機能に接続を一度クリックし、拡張機能で公開鍵へのアクセスを承認します。このページは開いたままにします。
  4. ChatGPT または Codex に Nostr ノートの作成を依頼します。
  5. 正確なノートの内容を確認します。ChatGPT または Codex に署名をリクエストするよう伝えます。
  6. ローカルページに保留中の操作の内容が正確に表示されます。拡張機能で続行をクリックし、拡張機能で確認を求められた場合は承認します。
  7. ChatGPT または Codex に、別途公開するよう伝えます。少なくとも 1 つのリレーがイベントを受信した場合にのみ、投稿が公開されたと報告されます。

Noornote や YakiHonne などの NIP-46 対応アプリ内で同じ署名者を使用するには、まずブラウザー拡張機能に接続し、アプリのサインインリンクを作成をクリックして、非公開の bunker:// リンクをコピーし、アプリのリモート署名者またはBunkerログインに貼り付けます。ローカルページに戻り、クライアントの正確な公開鍵と、その後のすべての署名、暗号化、復号リクエストを承認します。このリンクは有効期限があり、承認済みのクライアント 1 つに対してのみ有効です。一時的なパスワードとして扱ってください。

Codex のアプリ内ブラウザーで Grynvault を使用するには、https://frontiercrown.com/portal を開いて、Codex 署名者でサインインをクリックし、このプラグインを使って正確な短いコードを承認するよう Codex に依頼します。ポータルのタブには、高エントロピーの秘密情報が別途保持されます。短いコードは保留中のリクエストを特定するためにのみ使われます。署名済みの認証情報は、読み取り専用のアカウントダッシュボードを、その公開鍵のダッシュボードとして元のタブに返します。イベントの公開、請求書の作成、決済の変更、ウォレットの管理権限の付与は行いません。

nsec、生の秘密鍵、シードフレーズ、バックアップを、ChatGPT、Codex、セットアップページ、またはツール呼び出しに貼り付けないでください。nsec が漏えいした場合は、このプロジェクト以外の信頼できる署名者を使ってローテーションしてください。

アーキテクチャ

flowchart LR
  U[User] --> C[ChatGPT Work or Codex]
  U --> E[Alby, nos2x, or NIP-07 extension]
  U --> S[Advanced NIP-46 signer]
  U --> A[Noornote, YakiHonne,
  or another NIP-46 app]
  C -->|focused MCP tools| P[Local plugin process]
  B[Local approval page\n127.0.0.1 only] <--> P
  B -->|window.nostr request| E
  E -->|signed or encrypted result| B
  P -->|NIP-46 encrypted requests| R[(Configured Nostr relays)]
  A -->|NIP-46 encrypted requests| R
  R -->|approval-gated responses| P
  R -->|NIP-46 events| S
  S -->|approve or reject| R
  P -->|verified signed event\nafter separate publish intent| R

  K[nsec] -. remains inside signer .-> E
  K -. remains inside signer .-> S

コードは、署名者インターフェース、セッション/インテントの状態、リレーゲートウェイ、MCP アダプター、ローカル UI を分離しています。将来の MCP Apps コンポーネント、WebMCP サイトツール、ハードウェア署名者、または別のトランスポートも、イベント検証ポリシーを変更せずにサービスレイヤーを再利用できます。

実装済みの機能

  • Alby、nos2x、および互換性のある拡張機能向けの主要な NIP-07 ブリッジです。ローカル接続は1つ、承認待ちのリクエストは同時に1つで、ランダムなリクエスト ID、古いレスポンスの拒否、秘密鍵へのアクセスなしを実現します。
  • nostr-tools の NIP-46 サポートを使用した、高度な bunker:// およびクライアント生成の nostrconnect:// フローです。
  • サードパーティの NIP-46 クライアント向けの実験的なリモート署名者モードです。1つのクライアント向けの有効期間の短い bunker:// リンクを作成し、NIP-44 および従来の NIP-04 暗号化 RPC トランスポートの両方を受け入れます。また、接続、イベント署名、NIP-04、NIP-44 の操作にはローカルでの承認が必要です。
  • get_public_key、汎用イベントおよび kind:1 の厳密な準備、署名者を紐付けた sign_event、nip44_encrypt、nip44_decrypt、個別に確認する publish_event、kind 0 と 1 の範囲を限定したリレー読み取りに対応しています。
  • 未署名イベントの厳密な検証、署名とハッシュの検証、署名者の公開鍵の紐付け、1回限りの署名インテント、タイムアウト、セッションの有効期限切れ、古いペアリングの拒否に対応しています。
  • リレーごとの公開確認に対応しています。すべてのリレーで拒否またはタイムアウトした場合、成功したとは報告しません。
  • 署名者セッションはメモリ内のみで保持されます。再起動または切断すると、ペアリング情報と準備済みイベントは破棄されます。
  • プロセスごとの CSRF 対策トークン、リクエストサイズ制限、外部スクリプトなし、永続化なしを備えた、localhost 専用のセットアップページです。
  • 機密情報を伏せた構造化ログと、nsec に類似した入力の厳格な拒否に対応しています。
  • Grynvault アカウントダッシュボードへの署名付きアクセスに加え、サポーター向けおよび 2,000-sat の [email protected] NIP-05 請求リクエストを個別に準備・確認します。請求レスポンスは常に保留中として報告し、支払い済みまたは決済完了とは報告しません。
  • 短時間有効な Grynvault アプリ内ブラウザーの引き渡し承認は、正確な HTTPS URL、チャレンジ、コード、ペイロードハッシュに紐付けられます。別途保持するシークレットを持つブラウザーのみが、読み取り専用ダッシュボードを要求できます。
  • ポータブルな Agent Plugins マニフェストと、ひな形として用意された Codex 互換マニフェストです。
  • CI とオンボーディング向けの、決定論的で安全なシミュレーション署名者/リレーパスです。

ローカルでのセットアップ

必要条件:Node.js 22 以降と npm。パブリックベータではテスト用の Nostr アイデンティティを使用してください。

npm ci
cp .env.example .env
npm run build
npm start

ライブペアリングまたは公開の前に、NOSTR_RELAYS にカンマ区切りの wss:// リレー URL を設定してください。サンプルファイルには初期値が含まれていますが、利用可能であることを保証するものではありません。ws:// は、localhost/ループバックのテスト用リレーを除き拒否されます。

セットアップページは 127.0.0.1 にのみバインドし、同アドレスからの接続のみを受け付けます。NIP-07 拡張機能があるブラウザープロファイルでページを開いてください。そのような拡張機能が実際にある場合を除き、Codex のアプリ内ブラウザーは使用しないでください。一度接続したら、署名中はタブを開いたままにしてください。ページは正確なリクエストをキューに入れ、window.nostr を呼び出す前にブラウザー側でクリックすることを要求します。この操作ゲートは、ホスト側でもブラウザー自動化が実行されている場合、人間が操作している証明にはなりません。そのため、最終的な保護は拡張機能独自の承認ポリシーに委ねられます。

高度なセクションでは bunker: URI をメモリ内のみで受け付け、ログには記録しません。生成された nostrconnect: URI には一時的なペアリング用シークレットが含まれます。機密情報として扱い、公開の場に投稿しないでください。

実験的なサードパーティアプリ用セクションでは、このプラグインをリモート署名者として動作させます。生成された bunker:// リンクはループバックページにのみ表示され、MCP ツールとして公開されません。一度に接続できるクライアントは1つです。ブリッジの停止、プロセスの再起動、またはセッションの有効期限切れにより、そのアプリ接続は無効になります。新しいリンクを使ってアプリを再接続してください。

ローカルデモ

安全なオンボーディングデモでは、準備 → 署名 → 検証 → 公開の流れをすべてメモリ内で実行します。

npm run demo

出力には、シミュレートされた公開鍵、イベント ID、リレーの確認応答が含まれます。実際の署名者や公開リレーとの互換性を証明するものではありません。

ローカルで実際の MCP ツールの構成を確認するには、次を実行します。

npm run build
npx @modelcontextprotocol/inspector node mcp/server.mjs

マーケットプレイスのパッケージをインストールせずに、このチェックアウトをローカルの Codex ホストへ直接接続するには、次を実行します。

codex mcp add nostr-signer -- node /absolute/path/to/nostr-signer-chatgpt/mcp/server.mjs

その後、ChatGPT デスクトップアプリ/Codex ホストを再起動し、/mcp または MCP の設定でサーバーを確認します。パッケージ版をインストールする場合は、ローカルのマーケットプレイスで、同梱の plugin.json、mcp.json、.codex-plugin/plugin.json、.mcp.json、スキル、およびコミット済みの mcp/server.mjs バンドルを使用します。現在の OpenAI ドキュメントでは、ローカルの Codex による stdio サポートと ChatGPT web は区別されています。アカウント不要のホステッドアルファ版は https://signer.frontiercrown.com/mcp から利用できます。OAuth ではなく、有効期間の短いケイパビリティセッションを使用します。

OpenClaw では現在、Agent Plugin/Codex バンドルのサポートが説明されています。リリースをダウンロードして展開した後、ローカルディレクトリ(または、お使いの OpenClaw バージョンが対応している場合はリリースアーカイブ)をインストールし、プラグインを確認してから、OpenClaw を再起動します。

openclaw plugins install /absolute/path/to/nostr-signer-chatgpt
openclaw plugins inspect nostr-signer-chatgpt

このパッケージは必要なバンドル構成を備えていますが、この検証環境では OpenClaw を利用できませんでした。実際のインストール、ツールの検出、署名者との往復処理を COMPATIBILITY.md に記録するまでは、互換性は想定上のものとして扱ってください。

関連する OpenAI のガイダンス:プラグインのパッケージ化、接続とテスト、Codex MCP の設定。

会話の例

あなた:署名者を安全に接続してください。

アシスタント:Alby または nos2x がインストールされているブラウザープロファイルでローカルのセットアップ URL を開き、ブラウザー拡張機能を接続をクリックして、公開鍵へのアクセスを許可してください。署名者のステータスが接続済みになるまで待ちます。

あなた:「Hello Nostr」をノートとして準備してください。

アシスタント:こちらが正確な kind:1 イベントのプレビューです。署名も公開もされていません。署名をリクエストしますか?

あなた:はい、署名をリクエストしてください。

アシスタント:正確なリクエストがローカルページで待機しています。拡張機能で続行をクリックし、拡張機能で承認してください。検証済みイベントには署名が付きますが、公開を別途指示するまで公開されません。

あなた:公開してください。

アシスタント:リレー A はイベントを受け付けました。リレー B はタイムアウトしました。イベントは少なくともリレー A で公開されています。

ツールと安全ゲート

ツール目的ゲート
get_setup_urlループバックの拡張機能/セットアップページを返しますなし
get_signer_statusメモリ内の接続状態を読み取りますなし
begin_nostrconnect_pairing高度な操作:一時的なペアリング URI を作成しますユーザーがペアリングを開始し、署名者が承認します
connect_bunker高度な操作:既存の bunker URI に接続しますlocalhost UI を優先し、署名者が承認します
get_public_key署名者が公開する公開鍵を読み取りますアクティブなセッション
prepare_note正確な kind:1 イベントをバインドします署名もネットワークへの書き込みも行いません
prepare_event正確で有効な任意のイベントテンプレートをバインドします署名もネットワークへの書き込みも行いません。すべてのフィールドを表示します
sign_event準備済みのインテントを正確に 1 つ署名しますツールの明示的な確認と署名者の承認
publish_event検証済みの保存イベントを公開します別途、明示的な確認が必要です
nip44_encrypt / nip44_decryptローカル版のみ:NIP-44 操作を署名者に要求しますホスト型サービスでは無効です。ローカルでの使用には明示的な確認が必要です
query_events検証済みの公開 kind 0/1 イベントを読み取りますフィルターと結果件数に上限があります
disconnect_signerセッションとインテントを破棄します明示的な確認が必要です
get_grynvault_account_dashboard接続済みの pubkey の読み取り専用 Grynvault ダッシュボードに署名してアクセスします署名付きアクセスへの明示的な確認が必要です。請求書は作成されません
approve_grynvault_browser_handoffGrynvault アプリ内ブラウザーのタブに表示された正確な短縮コードを承認します明示的な確認が必要です。読み取り専用ダッシュボードのみで、公開や請求書作成は行いません
prepare_grynvault_supporter_invoice21~1,000,000 sats の寄付、または 2,100 sats/30 日のリクエストを準備します署名も請求書作成も行いません
create_grynvault_supporter_invoice準備済みのサポーターリクエストを 1 件署名して送信します別途、請求書作成への明示的な確認が必要です。返されるのは保留状態のみです
prepare_grynvault_nip05_invoice2,000 sats の [email protected] リクエストを確認して準備します署名、予約、請求書作成は行いません
create_grynvault_nip05_invoice準備済みの NIP-05 リクエストを 1 件署名して送信します別途、請求書作成への明示的な確認が必要です。有効化を保証するものではありません

Grynvault との統合

Grynvault の認証では、正確な HTTPS URL、POST メソッド、サーバーチャレンジ、および正確な JSON ボディの SHA-256 ハッシュにバインドされた、新しい kind 27235 の Nostr HTTP 認証イベントを使用します。NIP-07/NIP-46 の署名者と署名検証パイプラインをそのまま使用し、認証情報は固定された Grynvault 本番 API オリジンにのみ送信されます。

サポーターメンバーシップと有料 NIP-05 は別々のサービスです。1 回限りのサポーター寄付は 21~1,000,000 sats、任意の 30 日プランは 2,100 sats、[email protected] の請求書は 2,000 sats です。請求書を作成しても支払いは行われません。チェックアウト URL、ブラウザーのリダイレクト、または pending の応答によって、サポーター特典や NIP-05 識別子が有効になることはありません。有効化できるのは、別途検証された BTCPay による決済のみです。

本番環境の v117 はコミット 7517fea8fe2a46ee96321e2ba694e91f781a4fc0 で稼働しています。アプリ内ブラウザーのハンドオフを実際に承認し、正確な署名付きリクエストを処理したところ、pubkey 0ab377…9b5bd のリクエスト元タブのダッシュボードが返されました。その後、ポータルにはアカウント、Drive、Arkade、NIP-05、および決済済みの支払い状況が表示されました。このテストでは請求書は作成されず、Nostr イベントも公開されず、決済状況にも変更はありませんでした。

正確な MCP 入力、HTTP ボディ、および署名タグについては、GRYNVAULT_INTEGRATION.md を参照してください。

署名者の状態

署名者想定される接続自動テストによる証拠この RC での実動作の証拠
シミュレート署名者プロセス内テストアダプター合格実動作する署名者ではありません
AlbyNIP-07 ブラウザーブリッジブリッジテスト実動作テストではプロバイダー/バージョンを記録していません
nos2xNIP-07 ブラウザーブリッジブリッジテスト実動作テストではプロバイダー/バージョンを記録していません
Brave の未特定の互換拡張機能NIP-07 ブラウザーブリッジ同じブリッジテスト公開鍵による実動作接続と v117 Grynvault の引き継ぎに合格
AmberNIP-46/bunker 互換の対象プロトコル経路のみ未テスト
nsec.appNIP-46/bunker 互換の対象プロトコル経路のみ未テスト
ClaveNIP-46/bunker 互換の対象プロトコル経路のみ未テスト
その他の bunker 互換署名者bunker: または nostrconnect:プロトコル経路のみ未テスト

「想定」は互換性を示すものではありません。署名者/バージョン、ペアリングモード、リレーセット、要求されたメソッド、承認 UI、返されたイベントの検証、公開の確認応答を記録してから、署名者の状態を「テスト済み」に変更してください。

NIP-07 ブリッジの仕組み

NIP-07 は、ブラウザーページ向けに window.nostr.getPublicKey()、window.nostr.signEvent()、および任意の暗号化メソッドを定義しています。このプラグインは拡張機能を挿入したり、なりすましたりしません。ループバックページは、インストール済み署名者が提供する API を検出し、内容を確認した 1 件のリクエストを署名者に送信して、その結果を NIP-46 と同じ検証パイプラインに返します。NIP-07 の仕様で標準インターフェースが定義されています。

拡張機能は、プロンプトを表示するか、承認するか、拒否するかを決定します。承認のたびにイベント全体を表示する署名者を使用してください。イベントを確認できない一般的な「署名」プロンプトからは承認しないでください。インストールされている複数の署名者拡張機能が window.nostr を取り合う場合があります。選択が不明確な場合は、専用のブラウザープロファイルを使用してください。

秘密鍵へのフォールバックがない理由

GitHub と Cloudflare のシークレットストアは保存時の値を保護しますが、署名コードが実行時に使用可能な鍵素材を復元する必要があります。そうすると、このプラグインはリモートで管理されるホット署名者となり、デプロイ認証情報、運用担当者、および侵害された実行環境にまで署名権限が拡大します。ローカルの暗号化ストレージにも、実行時にロックを解除するという同じ問題があります。そのため、このプロジェクトでは秘密鍵をユーザーの拡張機能またはリモート署名者に保持します。

トラブルシューティング

  • リレーが設定されていません: .env.example を .env にコピーするか、ペアリングツールにリレーを指定してください。付属の起動コマンドは、.env が存在する場合に読み込みます。
  • 拡張機能が検出されません: Alby または nos2x がインストールされ、ロック解除されている Chrome または Firefox のプロファイルでセットアップ URL を開き、ページを再読み込みしてください。通常、Codex アプリ内ブラウザーではこれらの拡張機能を共有しません。
  • 複数の拡張機能がインストールされています: このサイトで不要な署名者を無効にするか、使用する拡張機能だけをインストールしたブラウザープロファイルを使用してください。
  • リクエストが保留中です: セットアップページを開いたまま、表示された操作を確認し、拡張機能で続行をクリックして、拡張機能のプロンプトに応答してください。タイムアウト後に、通知なく再試行しないでください。
  • ペアリングが保留状態のままです: クライアントと署名者の両方から正確なリレーセットに到達できることを確認し、署名者で承認してから、5 分後に新しい URI で再試行してください。ペアリング URI は 1 セッション限りのシークレットです。
  • 署名者リクエストがタイムアウトします: 署名者の接続状態とリレーへの到達性を確認してください。新しいイベントを作成し、結果が不明な署名リクエストを通知なく再試行しないでください。
  • 公開の確認応答がすべて失敗します: 署名済みイベントは保持され、同じセッション中に明示的に再試行できます。リレーのポリシー、認証要件、ネットワークアクセスを確認してください。
  • セットアップページが起動しません: 別のプロセスがポート 34846 を使用している可能性があります。NOSTR_SETUP_PORT を空いているローカルポートに設定してください。
  • ChatGPT Web からサーバーに接続できません: stdio はローカルホストのみを対象とします。開発には内容を確認した Secure MCP Tunnel を使用するか、ホスト環境で使用する前に認証付きのストリーミング可能な HTTP サーバーをデプロイしてください。

開発者向けコマンド

コマンド結果
npm run formatソース、テスト、マニフェストをフォーマットします
npm run format:check書き込みを行わずにフォーマットを確認します
npm run lint静的 lint ルールを実行します
npm run typecheck厳格な TypeScript チェックを実行します
npm testユニットテストとモックを使った統合テストを実行します
npm run build型チェックを行い、コミット対象のスタンドアロン mcp/server.mjs エントリーポイントを作成します
npm start実際の MCP サーバーとローカルセットアップページを起動します
npm run demo完全にシミュレートされたエンドツーエンドのデモを実行します
npm run smoke:bundle配布用バンドルを起動し、その MCP ツールを検証します
npm run validate:releaseポータブルなマニフェスト、バージョンの整合性、必須のリリースファイル、シークレットらしき内容をチェックします
npm run checkリリース候補向けの完全なゲートを実行します

ローカルで得られる証拠とその限界の詳細については、VALIDATION.md を参照してください。

制限事項とロードマップ

  • 実際の Brave NIP-07 フローと正確な Grynvault ハンドオフは成功しましたが、拡張機能の名前とバージョンは記録されていません。Alby、nos2x、NIP-46 署名者、およびリレー固有の互換性はまだ実証されていません。
  • セッションは意図的に永続化されません。プロセスの再起動または期限切れのたびに再接続してください。
  • ブラウザー拡張機能はブラウザーページにのみ window.nostr を公開するため、NIP-07 のブラウザータブは開いたままにする必要があります。
  • MCP Apps の iframe は署名に使用しません。通常のブラウザー拡張機能やその権限モデルを自動的に継承しないためです。
  • 署名者の auth_url チャレンジは v0.4.0 では表示されません。これに依存する NIP-46 署名者はペアリングを完了できない可能性があります。
  • NIP-46 リレー認証、動的なリレー切り替え、オフラインキュー、サードパーティークライアントとの同時セッション、複数アカウントの選択、自動イベント検出は含まれていません。
  • ChatGPT Work/web には、デプロイ済みのリモート HTTPS MCP トランスポート、プライバシー開示、ワークスペース/公開レビューが必要です。ホスト型ベータ版では、意図的に OAuth ではなくアカウント不要の機能セッションを使用します。
  • Noornote v1.5.3 と YakiHonne web では、Codex アプリ内ブラウザーでリモート署名者へのログインに成功しました。 投稿、フォロー、ダイレクトメッセージ、暗号化リクエスト、公開は試していないため、これらの操作は指定したクライアントで未検証です。
  • v117 の Grynvault ブラウザーハンドオフは実際に動作し、実証済みです。ハンドオフテスト中に Supporter/NIP-05 の作成は呼び出されなかったため、請求書や支払いは作成されていません。
  • 今後の作業:変更可能なホスト型承認ウェブページを、監査可能なブラウザー拡張機能または署名付きローカルコンパニオンに置き換え、運用者が承認ページのコードを密かに変更できないようにすること。実際の互換性マトリックス、検証済みの OpenClaw インストール、キーを一切エクスポートしないオプションのハードウェア対応ローカル署名者アダプターを追加すること。

ライセンス

Apache License 2.0 です。幅広い再利用を認めつつ、明示的な特許許諾を追加し、ライセンスおよび通知に関する義務を維持します。複数の実装が登場する可能性のある、セキュリティに配慮した相互運用プロジェクトに適しています。

コントリビューションとセキュリティ

プロトコル、信頼境界、パッケージング、依存関係のコードを変更する前に、CONTRIBUTING.md、SECURITY.md、DECISIONS.md、COMPATIBILITY.md、 LAUNCH_READINESS.md、MARKETPLACE_CHECKLIST.md、THIRD_PARTY_NOTICES.md をお読みください。公開ローンチ用の草案は LAUNCH_KIT.md にありますが、まだ公開されていません。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。