L402 Search Mcp

io.github.llmops-proPublished by GitHub account llmops-prov0.1.0Updated Oct 24, 2026

No-KYC web search for AI agents, paid per query in Lightning sats (L402). Holds no keys.

VerifiedSTDIODesktop onlyWeb Search & ScrapingFinance

Overview

AI-generated overview

Local MCP server that gives an agent a pay-per-query web search tool on L402 endpoints, settled in Lightning sats instead of an API key.

What you can do
  • Run a web search against an L402-paywalled endpoint; the first call returns a Lightning invoice and payment hash.
  • Complete the search by passing the payment preimage returned by the agent's own wallet.
  • Inspect the configured endpoint's reachability, pending challenges and payment flow.
  • Record events such as challenges, results and endpoint errors to an append-only audit log.
When to use it
Useful when an agent needs web search without accounts, API keys or KYC, and you already have a Lightning wallet server (such as nwc-mcp) that can pay invoices under budget caps. Also fits pointing at your own L402-compatible search endpoint.
Requirements
Runs locally via npx (Node.js). No account or API key. Optional environment variables: SEARCH_SERVICE_URL (defaults to a hosted endpoint), CHALLENGE_TTL_SECONDS, AUDIT_LOG_PATH, HTTP_TIMEOUT_MS. A separate wallet server is needed to actually pay invoices. Network access to the search endpoint.
Before you install
Each search costs sats, 50 per query on the default endpoint, set by whichever endpoint you configure. The server holds no keys, but it relays invoices to the agent's wallet, so payment limits depend on that wallet's caps. Pending search queries are held in memory and could leak if the process is compromised. Queries are sent to the configured third-party endpoint.

Installation

In SourceWeft

  1. Open L402 Search Mcp in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

l402-search-mcp

No-KYC web search for AI agents — paid per query in Lightning sats, via MCP.

This is an MCP client-side server for L402-paywalled search endpoints. It gives any MCP-capable agent (Claude Desktop, Claude Code, Cursor, nostr-merchant, …) a search tool that costs sats instead of an API key:

  1. search(query) → returns a bolt11 Lightning invoice + payment_hash
  2. The agent pays the invoice with its own wallet — e.g. nwc-mcp's nwc_pay_invoice, under the agent's own budget caps
  3. search(query, payment_preimage) → JSON results

No account. No API key. No KYC. Each payment buys exactly one search.

By default it points at https://llmops-search.fly.dev (50 sats/search, run by us), but SEARCH_SERVICE_URL works with any endpoint speaking the same L402 dialect.

The trust model (read this)

This server holds NO keys. Not a wallet connection, not an nsec, nothing. Payment happens in the agent's wallet, where the agent's own budget caps, allowlists, and audit logs apply. l402-search-mcp only:

  • relays the L402 challenge (invoice) to the agent,
  • remembers which macaroon belongs to which payment_hash (so the agent only handles the preimage its wallet already returned),
  • makes the authorized retry.

Worst-case compromise of this process leaks pending search queries — never money.

Install

bash
npx -y l402-search-mcp

Claude Code (project scope):

bash
claude mcp add l402-search -s project -- npx -y l402-search-mcp

Claude Desktop (claude_desktop_config.json):

json
{  "mcpServers": {    "l402-search": { "command": "npx", "args": ["-y", "l402-search-mcp"] }  }}

Pair it with a wallet server (e.g. nwc-mcp) so the agent can actually pay.

Tools

ToolPriceWhat it does
searchsats (set by the endpoint; 50 on the default)First call returns the invoice; the call with payment_preimage returns results.
search_service_infofreeEndpoint reachability, pending challenges, flow explainer.

Configuration

Everything is optional — the defaults work. Set in the environment or a .env next to the install (never read from cwd):

bash
SEARCH_SERVICE_URL=https://llmops-search.fly.dev  # any L402 search endpointCHALLENGE_TTL_SECONDS=900                          # match the endpoint's macaroon TTLAUDIT_LOG_PATH=./l402-search-mcp-audit.log         # NDJSON, append-onlyHTTP_TIMEOUT_MS=15000

The flow, end to end

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}           │                       │  │ ◄──────────────────────── │ ◄─────────────────────── │                       │

The macaroon never round-trips through the LLM — the agent only sees the invoice and hands back the preimage its wallet returned. sha256(preimage) = payment_hash recovers the rest.

Audit log

NDJSON, one line per event: startup, challenge_received, results_received, unknown_preimage, endpoint_error. Same shape as the other servers in the kit.

Part of the LLMOps.Pro agent-payments kit

nwc-mcp (wallet) · nostr-ops-mcp (NOSTR identity/publishing) · marketplace-mcp (storefront) · albyhub-admin-mcp (node admin) · paywall-mcp (sell YOUR tools for sats) · l402-search-mcp (buy search with sats)

MIT. Built by LLMOps.Pro · ⚡ [email protected]

Source: README.md at commit 1d0080f

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.1.0LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts