l402-search-mcp について
l402-search-mcpは、検索ごとにLightning satsで支払う、L402対応ウェブ検索用のMCPサーバーです。ウォレット鍵は保持せず、エージェント自身のウォレットで請求書を支払い、支払いpreimageを渡して結果を取得します。
主な機能
- 01L402経由で検索結果をリクエスト
- 02請求書とpayment_hashを返却
- 03支払いpreimageで結果を取得
- 04エンドポイント状態と保留中のチャレンジを確認
- 05イベントを監査ログに追記
活用シーン
- 01Lightning satsでウェブ検索を1回購入
- 02エージェント自身のウォレット制限で支払い
- 03同じL402方式のエンドポイントに接続
MCP 対応
MCPクライアント向けに`search`と`search_service_info`ツールを公開します。検索時に請求書を返し、エージェントが自身のウォレットで支払ってpreimageを渡すと、L402エンドポイントから結果を取得します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
2掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| query | string | はい | 検索クエリ。支払い後の再試行では、完全に同じ内容を指定する必要があります。 |
| payment_preimage | string | いいえ | 請求書の支払い後にウォレットから返される 64 桁の 16 進数 preimage。初回呼び出しでは省略します。 |
詳細
l402-search-mcp
AI エージェント向けの本人確認不要のウェブ検索 — MCP 経由で、クエリごとに Lightning の sats で支払います。
これは、L402 で課金される検索エンドポイント向けの、MCP のクライアントサイドサーバーです。MCP 対応エージェント(Claude Desktop、Claude Code、Cursor、nostr-merchant など)に、API キーの代わりに sats を使う search ツールを提供します。
search(query)→ bolt11 Lightning インボイスとpayment_hashを返します- エージェントが自身のウォレットでインボイスを支払います — たとえば、エージェント自身の予算上限の範囲内で
nwc-mcpのnwc_pay_invoiceを使います search(query, payment_preimage)→ JSON の検索結果
アカウント不要。API キー不要。本人確認不要。支払い 1 回で検索 1 回分を購入します。
デフォルトでは **https://llmops-search.fly.dev**(1 回の検索につき 50 sats、当社運営)を参照しますが、SEARCH_SERVICE_URL を設定すれば、同じ L402 方式に対応した任意のエンドポイントを利用できます。
信頼モデル(必ずお読みください)
このサーバーはキーを一切保持しません。 ウォレット接続も、nsec も、何も保持しません。支払いはエージェントのウォレットで行われ、エージェント自身の予算上限、許可リスト、監査ログが適用されます。l402-search-mcp が行うのは、次のことだけです。
- L402 のチャレンジ(インボイス)をエージェントに中継する
- どのマカロンがどの
payment_hashに対応するかを記憶する(エージェントが扱うのは、ウォレットからすでに返されたプリイメージだけです) - 認証済みのリトライを実行する
このプロセスが侵害された場合の最悪のケースでも、漏えいするのは保留中の検索クエリであり、資金が漏れることはありません。
インストール
npx -y l402-search-mcp
Claude Code(プロジェクトスコープ):
claude mcp add l402-search -s project -- npx -y l402-search-mcp
Claude Desktop(claude_desktop_config.json):
{
"mcpServers": {
"l402-search": { "command": "npx", "args": ["-y", "l402-search-mcp"] }
}
}
エージェントが実際に支払えるように、ウォレットサーバー(例:nwc-mcp)と組み合わせてください。
ツール
| ツール | 価格 | 機能 |
|---|---|---|
search | sats(エンドポイントで設定。デフォルトでは 50) | 最初の呼び出しではインボイスを返します。payment_preimage を指定した呼び出しでは検索結果を返します。 |
search_service_info | 無料 | エンドポイントへの接続状況、保留中のチャレンジ、処理フローの説明を確認できます。 |
設定
すべて任意です。デフォルト設定のままで動作します。環境変数、またはインストール先の隣にある .env で設定してください(cwd からは読み込みません)。
SEARCH_SERVICE_URL=https://llmops-search.fly.dev # any L402 search endpoint
CHALLENGE_TTL_SECONDS=900 # match the endpoint's macaroon TTL
AUDIT_LOG_PATH=./l402-search-mcp-audit.log # NDJSON, append-only
HTTP_TIMEOUT_MS=15000
最初から最後までの処理フロー
agent l402-search-mcp endpoint agent's wallet
│ search("foo") │ │ │
│ ────────────────────────► │ GET /search?q=foo │ │
│ │ ───────────────────────► │ │
│ │ 402 {macaroon, invoice} │ │
│ {invoice, payment_hash} │ ◄─────────────────────── │ │
│ ◄──────────────────────── │ (macaroon cached) │ │
│ nwc_pay_invoice(invoice) │ │ │
│ ──────────────────────────┼──────────────────────────┼─────────────────────► │
│ {preimage} │ │ │
│ ◄─────────────────────────┼──────────────────────────┼────────────────────── │
│ search("foo", preimage) │ │ │
│ ────────────────────────► │ GET + Authorization: │ │
│ │ L402 macaroon:preimage │ │
│ │ ───────────────────────► │ │
│ {results} │ 200 {results} │ │
│ ◄──────────────────────── │ ◄─────────────────────── │ │
マカロンが LLM を経由して往復することはありません。エージェントに見えるのはインボイスだけで、ウォレットから返されたプリイメージを渡します。sha256(preimage) = payment_hash により、残りの情報を復元します。
監査ログ
NDJSON 形式で、イベントごとに 1 行です。イベントは startup、challenge_received、results_received、unknown_preimage、endpoint_error です。キット内の他のサーバーと同じ形式です。
LLMOps.Pro エージェント決済キットの一部
nwc-mcp(ウォレット) · nostr-ops-mcp(NOSTR の ID/公開) · marketplace-mcp(ストアフロント) · albyhub-admin-mcp(ノード管理) · paywall-mcp(あなたのツールを sats で販売) · l402-search-mcp(sats で検索を購入)
MIT。開発:LLMOps.Pro · ⚡ [email protected]
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。