Skip to main content
Glama

402-mcp

Nostr: npub1mgvlrnf5hm9yf0n5mf9nqmvarhvxkc6remu5ec3vf8r0txqkuk7su0e7q2

MIT licence TypeScript Node Coverage Nostr GitHub Sponsors

AI 에이전트에게 경제적 주체성을 부여하는 L402 + x402 클라이언트 MCP입니다. 인간의 등록, API 키, 중개자 없이 결제 게이트가 설정된 모든 API를 발견하고, 결제하며, 소비하세요.

  • 발견: Nostr에서 유료 API 발견 — 사전에 URL 필요 없음

  • 자동 결제: 라이트닝(NWC), Cashu ecash 또는 인간 QR 폴백을 통한 자동 결제

  • 자격 증명 캐싱 및 암호화: 저장 시 암호화 (AES-256-GCM)

  • 모든 L402 서버와 호환: toll-booth, Aperture 또는 향후 구현될 모든 서버와 작동

빠른 시작

1. 설치

npx 402-mcp

2. Claude Code에 연결

claude mcp add 402-mcp -- npx 402-mcp

3. 사용해 보기

Claude에게 다음과 같이 질문하세요: "l402-search를 사용하여 유료 농담 API를 검색해 줘" — 지갑이 필요 없으며, 발견만 수행합니다.

유료 호출을 수행할 준비가 되셨나요? 전체 빠른 시작 가이드를 참조하여 지갑을 설정하고 에이전트가 첫 번째 API 호출을 결제하는 과정을 확인하세요.

Related MCP server: Loop MCP DualRail

작동 원리

graph LR
    A["1. l402-config()"] --> B["2. l402-discover(url)"]
    B --> C["3. Agent reasons<br/>about pricing"]
    C --> D["4. l402-buy-credits()<br/>or l402-fetch()"]
    D --> E["5. l402-fetch(url)<br/>with credentials"]
    E --> F["6. Data returned<br/>+ balance cached"]

예시 세션:

Agent: "I need routing data from routing.trotters.cc"

1. l402-config()
   -> nwcConfigured: true, maxAutoPaySats: 1000

2. l402-discover("https://routing.trotters.cc/api/route")
   -> 10 sats/request, toll-booth detected, tiers available

3. Agent reasons: "I need ~20 requests. The 500-sat tier
   gives 555 credits. Better value."

4. l402-buy-credits(url, amountSats=500)
   -> Paid 500 sats, received 555 credits

5. l402-fetch("https://routing.trotters.cc/api/route?from=...&to=...")
   -> 200 OK, route data, 545 credits remaining

상세한 아키텍처 및 결제 흐름 다이어그램은 docs/architecture.md를 참조하세요.

구성

변수

기본값

설명

NWC_URI

-

자율적인 라이트닝 결제를 위한 Nostr Wallet Connect URI

CASHU_TOKENS

-

Cashu 토큰 저장소 파일 경로

MAX_AUTO_PAY_SATS

1000

안전 제한; 이 금액을 초과하는 결제는 인간의 승인이 필요함

CREDENTIAL_STORE

~/.402-mcp/credentials.json

영구적인 마카룬/자격 증명 저장소

TRANSPORT

stdio

전송 모드: stdio 또는 http

PORT

3402

HTTP 서버 포트 (TRANSPORT=http일 때)

TRANSPORT_PREFERENCE

onion,hns,https,http

다중 URL 서비스에 대한 선호 전송 순서 (쉼표로 구분)

TOR_PROXY

-

.onion 주소를 위한 SOCKS5 프록시 (예: socks5h://127.0.0.1:9050)

SOCKS_PROXY

-

설정 시 모든 요청에 대한 일반 SOCKS5 프록시

HNS_GATEWAY_URL

-

Handshake (.hns) 도메인을 위한 HTTP 게이트웨이 (예: https://hns.to)

전송 선택 및 폴백

kind 31402 이벤트가 여러 URL(전송당 하나)을 광고할 때, 402-mcp는 구성에 따라 최적의 URL을 선택합니다:

  1. 선호도 우선 — TRANSPORT_PREFERENCE=tor이고 .onion URL을 사용할 수 있는 경우, 이를 먼저 시도합니다.

  2. 가용성 폴백 — 선호하는 전송에 도달할 수 없는 경우(프록시 미구성, 타임아웃), 클라이언트는 목록의 다음 URL로 폴백합니다.

  3. Clearnet 기본값 — 선호도가 설정되지 않은 경우, .onion 또는 HNS 항목보다 Clearnet URL을 먼저 시도합니다.

서비스는 서로 다른 전송에서 동일한 서비스(동일한 가격, 동일한 마카룬 키)에 대해 여러 엔드포인트를 발표할 수 있습니다. 이는 순전히 검열 저항을 위한 것이며, 전송을 전환할 때 다시 인증할 필요가 없습니다. Tor 또는 HNS 엔드포인트에 도달하려면 위의 해당 프록시/게이트웨이 환경 변수를 구성해야 합니다.

도구

핵심 L402 (모든 서버)

도구

설명

l402-config

결제 기능(지갑, 제한, 자격 증명 수) 검사

l402-discover

결제 없이 가격을 확인하기 위해 엔드포인트 탐색

l402-fetch

L402 지원 HTTP 요청; 예산 내에서 자동 결제

l402-pay

특정 인보이스 결제 (NWC, Cashu 또는 인간 개입)

l402-credentials

저장된 자격 증명 및 캐시된 잔액 나열

l402-balance

서버에 대한 캐시된 크레딧 잔액 확인

l402-search

Nostr 릴레이에서 L402 서비스 발견 (kind 31402 공지)

l402-store-token

결제 페이지에서 얻은 L402 토큰 저장

toll-booth 확장

도구

설명

l402-buy-credits

대량 할인 등급 탐색 및 구매

l402-redeem-cashu

Cashu 토큰 직접 상환 (라이트닝 왕복 방지)

결제 방법

우선순위에 따라 시도되는 세 가지 결제 레일:

  1. NWC (Nostr Wallet Connect) — 완전 자율; 연결된 지갑에서 결제

  2. Cashu — 완전 자율; ecash 토큰을 녹여 인보이스 결제

  3. 인간 개입 — QR 코드를 제시하고 결제 완료 대기

에이전트는 호출별로 방법을 재정의할 수 있으며, 원하는 방법만 구성할 수도 있습니다.

l402-fetch는 네 가지 HTTP 402 챌린지 변형을 투명하게 처리합니다:

프로토콜

챌린지 헤더

결제

L402

WWW-Authenticate: L402

지갑 스택을 통한 라이트닝 인보이스

IETF Payment (draft-ryan-httpauth-payment-01)

WWW-Authenticate: Payment

지갑 스택을 통한 라이트닝 인보이스

xCashu (NUT-18)

X-Cashu: creqA…

직접 전송된 Ecash 토큰 (Cashu 지갑 필요)

x402

X-Payment-Required: x402

온체인 EVM 전송; EIP-681 딥링크와 함께 인간에게 표시

안전성

MAX_AUTO_PAY_SATS는 모든 단일 자율 결제에 대한 상한선을 설정합니다. 이 제한을 초과하면 에이전트는 인간에게 승인을 요청해야 합니다. 에이전트는 l402-config를 통해 이 제한을 읽고 구매 결정에 반영할 수 있습니다.

개인정보 보호

402-mcp는 자격 증명을 로컬 머신에만 저장합니다 (~/.402-mcp/credentials.json, 저장 시 암호화). 제3자에게 데이터가 전송되지 않습니다. 계정, 추적, 분석이 없습니다. 결제는 설계상 가명인 라이트닝 또는 Cashu를 사용합니다.

생태계

결제 게이트가 설정된 API를 위한 탈중앙화 마켓플레이스인 402.pub에서 실시간 L402 서비스를 찾아보세요.

프로젝트

역할

toll-booth

결제 레일 독립적 HTTP 402 미들웨어

satgate

토큰당 결제 AI 추론 프록시 (toll-booth 기반)

402-mcp

MCP 클라이언트 — AI 에이전트가 L402 + x402 API를 발견, 결제 및 소비

402-announce

탈중앙화 발견을 위해 Nostr에 L402 서비스 게시

402-mcp는 Lightning Labs의 lightning-agent-tools 및 Coinbase의 x402에 대한 결제 레일 독립적 대안입니다. 라이트닝 노드가 필요 없으며, 다중 지갑과 암호화된 자격 증명을 지원합니다.

402-mcp

Lightning Labs 에이전트 도구

결제 레일

NWC + Cashu + 인간 폴백

라이트닝 전용

노드 필요 여부

아니요 — 모든 NWC 지갑에 연결

예 — LND 실행

서버 호환성

모든 L402 서버

Aperture 중심

지출 안전성

결제당 상한선 + 60초 롤링 윈도우

호출당 최대 비용

자격 증명 저장

저장 시 암호화 (AES-256-GCM)

파일 권한

개인정보 보호

PII 없음, SSRF 보호, 오류 삭제

표준

에이전트가 자신의 라이트닝 노드를 실행하기를 원한다면 Lightning Labs의 도구를 사용하세요. 에이전트가 인프라 없이 모든 지갑에서 결제하기를 원한다면 402-mcp를 사용하세요.

개발 설정 및 가이드라인은 CONTRIBUTING.md를 참조하세요.


@forgesworn 제작.

  • 라이트닝 팁: thedonkey@strike.me

  • Nostr: npub1mgvlrnf5hm9yf0n5mf9nqmvarhvxkc6remu5ec3vf8r0txqkuk7su0e7q2


ForgeSworn 툴킷의 일부

ForgeSworn은 Nostr을 위한 오픈 소스 암호화 ID, 결제 및 조정 도구를 구축합니다.

라이브러리

기능

nsec-tree

결정론적 하위 ID 파생

ring-sig

secp256k1에서의 SAG/LSAG 링 서명

range-proof

Pedersen 커밋먼트 범위 증명

canary-kit

강압 저항 음성 검증

spoken-token

인간이 말할 수 있는 검증 토큰

toll-booth

L402 결제 미들웨어

geohash-kit

폴리곤 커버리지를 포함한 Geohash 툴킷

nostr-attestations

NIP-VA 검증 가능한 증명

dominion

에포크 기반 암호화 액세스 제어

nostr-veil

개인정보 보호 신뢰의 웹

라이선스

MIT

Available Tools

14 tools
l402-balanceA
Read-only

Check cached credit balance for a server. Returns the last known balance from the credential store without making a network request. The "stale" flag is true if the balance was last updated more than 5 minutes ago.

ParametersJSON Schema
NameRequiredDescriptionDefault
originYesThe server origin (e.g. https://api.example.com)

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses key behaviors beyond the readOnlyHint annotation: it returns 'last known balance' from a credential store, performs no network request, and explains the condition for the 'stale' flag (updated more than 5 minutes ago). This adds meaningful context that annotations alone don't provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences deliver all essential information: the action, the caching behavior, and the staleness rule. Every sentence earns its place with no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter tool with no output schema, the description explains the return concept (balance and stale flag) sufficiently well. It stops short of detailing the full response structure or edge cases (e.g., no cached value), but given the simplicity, this is a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the only parameter 'origin' already has a clear description with a URI format and example. The description adds no additional parameter-specific meaning, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Check cached credit balance for a server.' It distinguishes this tool from siblings by emphasizing that it uses a cached value and makes no network request, which sets it apart from other l402 tools like l402-fetch or l402-pay.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly implies when to use this tool: when you want a fast, cached balance check without network overhead. However, it doesn't explicitly name alternatives or state when not to use it, so it lacks explicit exclusions that would merit a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

l402-buy-creditsA
Destructive

Buy credits from a toll-booth server with volume discounts. Omit amountSats to discover available tiers. Provide amountSats to purchase a specific tier. Only works with toll-booth servers.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe toll-booth server URL
methodNoPayment method override
amountSatsNoAmount in sats to purchase. Omit to list available tiers.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already flag destructiveHint=true and openWorldHint=true, so the safety profile is handled. The description adds the mode behavior and the toll-booth restriction, but it does not clarify side effects of a purchase, such as spending funds, irreversibility, or error/response behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences front-load the purpose and immediately state the key branching behavior. Minor redundancy exists between 'from a toll-booth server' and 'Only works with toll-booth servers,' but overall it is tight.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a three-parameter tool with no nested objects, core invocation is covered: required URL, optional method, optional amountSats, and the toll-booth constraint. However, there is no output schema and the description does not say what a successful purchase or tier-discovery response contains, which is a notable gap for a financial operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The narrative about omitting/providing amountSats adds a little clarity, but it largely repeats the schema's description of amountSats and does not enrich method or url beyond what the schema already says.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific action ('Buy credits') and identifies the resource ('a toll-booth server') and a differentiator ('volume discounts'). It distinguishes this from sibling payment tools by restricting it to toll-booth servers, though it never names a sibling explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit branching guidance: omit amountSats to discover tiers, provide amountSats to buy a specific tier, and only works with toll-booth servers. This gives clear when-to-use context, but it does not compare against siblings such as l402-pay or l402-discover, so it falls just short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

l402-configA
Read-only

Introspect the MCP's payment capabilities: which wallets are configured, spending limits, and stored credential count. Call this first to understand what payment methods are available.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true, which the description aligns with by using 'Introspect'. The description adds value beyond the annotation by revealing what kind of read-only data is returned: wallet configuration, spending limits, and credential count. No hidden mutation or side effects are suggested.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with no filler. The first sentence states exactly what the tool does and its outputs; the second gives actionable usage guidance. Every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no parameters and no output schema, the description sufficiently explains what the tool returns at a categorical level. It could be more explicit about output format or whether any setup is required, but for a zero-input introspection tool it is adequately complete for an agent to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so there is no schema burden to compensate for. The description accurately describes the tool's no-input introspection behavior, and the baseline of 4 is appropriate since no parameter documentation is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description uses specific verb 'Introspect' with resource 'payment capabilities' and enumerates concrete outputs: wallets configured, spending limits, stored credential count. The instruction to call this first also distinguishes it from sibling tools like l402-pay or l402-fetch, making its role clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly says 'Call this first to understand what payment methods are available', giving clear context for when to invoke it. It does not explicitly list alternatives or when not to use it, but the sequencing guidance and broad discovery purpose sufficiently differentiate it from siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

l402-credentialsA
Read-only

List all stored L402 credentials. Shows origin, cached credit balance, and server type. Balance values are cached and may be stale; check lastUsed timestamp.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already marks it safe, and the description adds genuinely useful behavior: balances are cached and possibly stale, and the lastUsed timestamp is the way to judge freshness. This is beyond the annotation and gives the agent a realistic expectation of data reliability. No contradiction exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences front-load the action and displayed fields, then add the stale-balance caveat. Every sentence carries operational value, and no redundant filler is present.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, read-only listing tool, this description is complete: it says what is listed, what fields are shown, and warns about cache freshness. The lack of an output schema is mitigated by naming the visible fields, and there are no params/options whose behavior would need elaboration.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema is empty (0 parameters), so there are no parameter semantics for the description to enrich. With schema coverage at 100%, the description cannot add anything parameter-related, and the baseline of 4 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States the action ('List all stored L402 credentials') and the resource/scope precisely, then names the displayed fields (origin, cached credit balance, server type). This distinguishes it from siblings like l402-store-token or l402-balance by focusing on stored credentials rather than operations or current balance.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: an agent can infer this is for inspecting stored credentials, and the 'cached/may be stale' caveat hints that l402-balance might be the alternative for fresh numbers. However, it never explicitly states when to prefer this tool or names an alternative, so it stops short of clear routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

l402-discoverA
Read-only

Probe an endpoint to discover its L402 pricing without committing to payment. Returns the cost in sats, available payment methods, and credit tiers (if toll-booth server). The challenge is cached so a subsequent l402-pay can reuse it.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe URL to probe for L402 pricing
methodNoHTTP method to useGET

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With readOnlyHint=true and openWorldHint=true already present, the description adds meaningful behavioral details: no payment is committed, the challenge is cached for later reuse, and responses include pricing and payment-method information. It does not contradict the annotations and gives enough context for safe usage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded: the core action appears first, followed by return-value highlights and the caching behavior. Every sentence earns its place without fluff or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple probe tool with one required parameter and no output schema, the description covers what the tool returns, when to use it, and the relevant caching side effect. It does not specify failure behavior or non-L402 endpoints, but those are minor gaps given the overall clarity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents both parameters and their defaults. The description reinforces that 'url' is the endpoint being probed but adds little about 'method' beyond what the schema provides. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Probe') and resource ('endpoint') and states the purpose: discover L402 pricing without payment. It also names concrete outputs (cost in sats, payment methods, credit tiers) and distinguishes itself from l402-pay by mentioning challenge caching. This makes the tool's role clear even among many siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly implies the tool is a pre-payment discovery step: 'without committing to payment' and 'a subsequent l402-pay can reuse it' provide strong context for when to use it. It does not explicitly enumerate exclusions or alternative tools, but the intended workflow is evident.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

l402-fetchA
Destructive

Fetch a URL, paying its HTTP 402 challenge (L402, IETF Payment, Cashu or LNURLcash) when autoPay is true and the price is within MAX_AUTO_PAY_SATS, maxCostSats and the spend limits. Reuses stored credentials. Without autoPay, a 402 comes back with its price and paymentHash so the user can decide; l402-pay can then pay it. For x402 services, which this server supports only in an experimental custom format, returns the payment details for the user to pay in their own wallet. Response bodies are marked as untrusted content. With widget hosts, call l402-fetch-preview first to show the price.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe primary URL to request. When using search results, pass the first URL here and all URLs in the urls field.
bodyNoRequest body (for POST/PUT)
urlsNoAll transport URLs from l402-search results (clearnet, onion, HNS). When present, transports are tried in preference order with automatic fallback on connection failure.
methodNoHTTP methodGET
pubkeyNoService pubkey from l402-search results — used to share credentials across all transport URLs for the same service
txHashNoTransaction hash from a completed x402 on-chain payment. When provided, retries the request with X-Payment header for server verification.
autoPayNoAutomatically pay if within MAX_AUTO_PAY_SATS budget
headersNoAdditional request headers
maxCostSatsNoMost this call may pay, in sats. Pass the price the user saw in l402-fetch-preview so a server cannot charge more than it showed. Lowers MAX_AUTO_PAY_SATS for this call; never raises it.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare openWorldHint and destructiveHint, so the description adds value by explaining the payment side effects, credential reuse, untrusted response bodies, and the maxCostSats cap. It doesn't fully detail what happens to stored credentials or whether failures are reversible, but it covers the key behavioral traits beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but well-organized, front-loading the core fetch-and-pay behavior before edge cases. Every sentence adds information, though the x402 and widget-host sentences could be seen as slightly crammed. Overall it earns its length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex tool with 9 parameters, no output schema, and payment side effects, the description covers the main flows, the autoPay decision, the preview routing, and the untrusted-content warning. It doesn't specify the exact return shape of a 402 response, but the description says the price and paymentHash come back, which is enough for an agent to proceed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds meaning by explaining the relationship between maxCostSats and MAX_AUTO_PAY_SATS, the purpose of pubkey for sharing credentials, and the txHash retry behavior. It doesn't describe every parameter in prose, but the schema already does that.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool fetches a URL and handles HTTP 402 payment challenges, distinguishing it from siblings like l402-pay and l402-fetch-preview. It names the specific protocols (L402, IETF Payment, Cashu, LNURLcash) and the autoPay behavior, so an agent can tell exactly what this tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly explains when to use autoPay vs not, when to call l402-fetch-preview first for widget hosts, and when to use l402-pay for a returned 402. It also mentions x402 experimental format handling. This is strong routing guidance relative to siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

l402-fetch-previewA
Read-only

Preview payment requirements for a URL without spending any sats. Returns cost, protocol, and payment method so a confirmation dialog can be shown. Use this before l402-fetch to give the user a chance to approve or cancel payment. For widget hosts, the result drives a payment confirmation dialog.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesURL to preview payment requirements for
urlsNoBatch: multiple URLs to preview
methodNoHTTP methodGET
pubkeyNoNostr pubkey for xcashu auth
headersNoAdditional request headers

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the description's claim of 'without spending any sats' reinforces but adds specific meaning (no financial side effect). It also describes what the tool returns (cost, protocol, payment method) and the intended UI usage, which goes beyond the annotation. However, it does not mention potential errors or connection issues, a minor gap given the annotations cover safety.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the primary purpose, and no filler. The usage guidance is embedded efficiently. Every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a preview tool with read-only annotations, the description covers the core purpose, return data, and usage context. It does not describe the exact output schema (since none exists), but that is compensated by stating the key fields. Minor gaps like error handling or authentication requirements are not addressed, but given the simplicity, it is largely complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so each parameter is already documented. The description adds no parameter-specific usage detail beyond what the schema provides. It does not explain how to format arrays or headers, but the schema already covers that. Thus, baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Preview'), resource ('payment requirements for a URL'), and outcome ('without spending any sats'). It clearly distinguishes from l402-fetch by positioning itself as a pre-check. The purpose is unambiguous and actionable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly instructs to 'Use this before l402-fetch' and gives the condition (to give the user a chance to approve or cancel payment). Also mentions the widget host context. This directly routes the agent to the correct tool and tells when not to use the alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

l402-payA
Destructive

Pay a challenge that l402-fetch or l402-discover returned, by its paymentHash, and store the credential so the next l402-fetch succeeds. For human wallets, polls the payment page for settlement for up to 120s; call it straight after showing the payment URL to the user. An invoice that did not come from such a challenge is paid only if the human approves it in the client.

ParametersJSON Schema
NameRequiredDescriptionDefault
methodNoPayment method override. Defaults to wallet priority: NWC > Cashu > LNURLcash > human.
invoiceNoBOLT-11 invoice. Leave out when paying a challenge by paymentHash; any other invoice needs the human to approve it.
macaroonNoMacaroon from the L402 challenge. Optional if paymentHash matches a cached challenge.
paymentHashNoPayment hash of a challenge from l402-fetch or l402-discover.

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already flag destructiveHint and openWorldHint, but the description adds substantial behavioral detail: it stores credentials for the next fetch, polls the payment page for up to 120s for human wallets, and requires human approval for unrelated invoices. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three dense, purposeful sentences: the core action and effect come first, followed by the human-wallet polling behavior and timing, then the approval condition. There is no filler or redundant restating of schema content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a payment tool with no output schema, the description provides rich context: source of the challenge, credential storage, polling window, and human approval rule. The only minor gap is that it does not state what the caller receives on success, failure, or timeout.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all four parameters, including the paymentHash/invoice relationship and the human-approval caveat. The description reinforces these ideas but adds no new parameter-level format or constraint details beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a concrete verb-object pair: 'Pay a challenge ... by its paymentHash.' It names the exact source tools (l402-fetch or l402-discover), making it clearly distinct from payment-adjacent siblings like l402-buy-credits or l402-redeem-cashu.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear timing guidance ('call it straight after showing the payment URL') and restricts automatic payment to challenges from l402-fetch or l402-discover. It does not explicitly list when to prefer an alternative payment sibling, so it falls just short of full routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

l402-reconcileA

Resolve a payment whose outcome is unknown. While one is unresolved, auto-pay to that service is paused. Call with no arguments to list them, or with a paymentHash to ask the wallet (NWC lookup_invoice, or the Cashu mint for a reserved melt). A settled payment stores its credential when it can; a failed one is cleared. A preimage that hashes to the payment hash also settles it. abandon: true asks the human to confirm that the payment did not go out.

ParametersJSON Schema
NameRequiredDescriptionDefault
abandonNoStop tracking the payment. Requires the human to approve through the client.
preimageNoSettlement preimage, if the human has one from their wallet
paymentHashNoPayment hash from an unknown-outcome payment. Omit to list unresolved payments.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only provide openWorldHint=true and destructiveHint=false, but the description adds substantial behavioral detail: auto-pay to the service is paused while unresolved, settled payments store credentials when possible, failed payments are cleared, and abandon requires human approval. This is far beyond what the annotations alone convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single dense paragraph with the core purpose front-loaded, followed by invocation modes and parameter-specific behavior. Every sentence earns its place; there is no filler or repetition of schema details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given three optional parameters, no output schema, and significant side effects, the description covers invocation modes, resolution outcomes, credential storage, and the human-in-the-loop requirement. It does not describe the return format of listing unresolved payments, but this is a minor gap for an agent already given the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but the description adds real meaning beyond the schema: paymentHash triggers an NWC lookup_invoice or Cashu mint lookup, preimage must hash to the payment hash to settle, and abandon requires human confirmation. It enriches each parameter with behavioral context rather than repeating schema text.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Resolve a payment whose outcome is unknown' and immediately distinguishes the two main modes: listing unresolved payments versus resolving a specific one. This clearly separates it from siblings like l402-pay or l402-fetch by focusing on reconciliation of uncertain payments.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit call patterns: call with no arguments to list, with paymentHash to query the wallet, with preimage to settle, or with abandon for human confirmation. It does not explicitly name sibling alternatives or state when not to use the tool, but the usage conditions are clear enough for an agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

l402-redeem-cashuA
Destructive

Redeem Cashu ecash tokens directly on a toll-booth server, avoiding the Lightning round-trip. Handles the two-step flow automatically (create invoice then redeem token). Only works with toll-booth servers.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe toll-booth server URL
tokenYesCashu token string to redeem (e.g. cashuAey...)

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, the description reveals an important behavioral trait: it automatically handles the two-step flow of creating an invoice then redeeming the token. It also clarifies that the tool only works against toll-booth servers. It does not detail the destructive consumption of the Cashu token, but destructiveHint=true already signals the mutation risk.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the core purpose, and contains no fluff. The only minor inefficiency is repeating the toll-booth-server constraint in both the first and final sentences.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter tool with no output schema, the description covers the main selection criteria, the target server type, and the internal two-step flow. It does not specify return values or post-redemption behavior, but the annotations and simple parameter surface make this a minor gap rather than a blocking one.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already documents both parameters with 100% coverage, so the baseline is 3. The description adds contextual flow details but no additional parameter-level meaning beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Redeem Cashu ecash tokens directly on a toll-booth server', and adds a clear differentiator by noting it avoids the Lightning round-trip. It also closes with a scope limitation ('Only works with toll-booth servers'), making it easy to distinguish from siblings like l402-pay or l402-fetch.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives useful context for when to choose this tool: it is for direct Cashu redemption on toll-booth servers, avoids Lightning, and automates the two-step flow. It does not explicitly name alternative sibling tools or state 'use X instead', but the toll-booth-only constraint and direct-vs-Lightning framing provide adequate selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

l402-service-directoryService DirectoryA
Read-only

Browse and search paid API services. Opens an interactive directory of L402/x402 services discovered on Nostr. Calls l402-search internally.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, covering safety and open-world behavior. The description adds value by revealing that the tool is interactive ('Opens an interactive directory') and that it internally calls l402-search, which implies a wrapper behavior and potential user-interface side effects. This is beyond the annotations and is not contradictory.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with zero waste. The primary purpose is front-loaded ('Browse and search paid API services'), and the additional details about the interactive directory and internal call are placed efficiently. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no parameters and annotations already convey read-only and open-world behavior, the description provides sufficient context to understand what the tool does. However, it does not describe the return format or what 'interactive' means precisely, and it does not differentiate from similar siblings. These gaps are minor for a zero-parameter tool, so a 4 is appropriate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so there is nothing to document. Per the instructions, a zero-parameter tool gets a baseline of 4 since the schema coverage is trivially 100% and no description compensation is needed. The description does not need to add parameter meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb and resource: 'Browse and search paid API services.' It adds context by mentioning it opens an interactive directory of L402/x402 services discovered on Nostr and that it calls l402-search internally. However, it does not explicitly differentiate itself from siblings like l402-search or l402-discover, which could be confused as alternatives, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context by saying it opens an interactive directory and calls l402-search internally, suggesting it is a higher-level wrapper for interactive browsing. But it provides no explicit 'when to use' vs 'when not to use' guidance, nor does it name any sibling tools as alternatives. The usage conditions are left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

l402-store-tokenA
Idempotent

Store an L402 token (macaroon:preimage) obtained from a payment page. Use this when a user pastes back a token from a toll-booth payment page. The token is stored as a credential so subsequent l402-fetch calls are authenticated.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe service URL this token is for
tokenYesThe L402 token in macaroon:preimage format

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds behavioral context beyond the idempotentHint annotation by stating the token is persistently 'stored as a credential' and that this makes subsequent l402-fetch calls authenticated. It does not contradict the annotations; the readOnlyHint=false aligns with the mutation implied by 'Store.'

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no wasted words. It front-loads the core action, then provides the usage trigger and downstream benefit, making it easy for an agent to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter store operation, the description covers what the token is, where it comes from, and why it matters. It does not describe the return value or error behavior, but given the simple side-effect model and the idempotentHint annotation, this is a minor gap rather than a blocking omission.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already has 100% coverage with clear descriptions for both parameters, including the token format 'macaroon:preimage'. The description reinforces the token format and purpose but does not add meaningfully beyond the schema's parameter descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Store an L402 token (macaroon:preimage) obtained from a payment page.' It also clarifies the token's role as a stored credential for authenticating subsequent l402-fetch calls, making the purpose unambiguous and distinguishable from sibling tools like l402-credentials or l402-fetch.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives an explicit trigger: 'Use this when a user pastes back a token from a toll-booth payment page.' It also explains the downstream effect by noting the token is stored for later l402-fetch authentication, but it does not explicitly mention alternatives or cases where this tool should not be used.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

l402-wallet-dashboardWallet DashboardA
Read-only

View wallet status, balances, and stored credentials. Opens an interactive dashboard showing NWC connection, Cashu balance, auto-pay limit, and credential list.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint-only annotation is complemented by the description's added behavioral detail that this 'opens an interactive dashboard' rather than merely returning data. This is important context for an agent deciding whether the tool is suitable for automated workflows. No contradiction with the read-only annotation exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences carry the full message with no filler: the first states the action and subject, the second adds the specific dashboard contents. The information is front-loaded and every phrase earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, read-only dashboard tool, the description is largely complete: it names the visible elements (NWC connection, Cashu balance, auto-pay limit, credential list) and signals that the result is an interactive interface. A bit more context about how this relates to the sibling balance/credential tools would round it out.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and the schema's property list is empty, so there is no parameter documentation burden on the description. The description correctly implies no inputs are required by framing the tool as a view-only dashboard.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('View') and resource ('wallet status, balances, and stored credentials'), making the core purpose clear. It also lists concrete dashboard contents, but it does not explicitly distinguish itself from siblings like l402-balance or l402-credentials.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for a consolidated wallet overview ('View wallet status, balances, and stored credentials') and clearly indicates an interactive dashboard. However, it does not state when to prefer this tool over the sibling balance, credential, or config tools, and provides no exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 3 tool updatesv4.3.1
    • Changedl402-search1 field changed
      • changedInput schema / properties / paymentMethod / description
        Previous value: -"Filter by payment method (e.g. \"l402\", \"cashu\", \"x402\", \"xcashu\")"New value: +"Filter by payment rail, the first value of an announcement's pmi tag (e.g. \"l402\", \"cashu\", \"xcashu\", \"lnurlcash\", \"x402\", \"payment\"). A Cashu service may list \"cashu\", \"xcashu\" or both"
    • Addedl402-service-directory
    • Addedl402-wallet-dashboard
  2. 3 tool updatesv4.3.0
    • Changedl402-fetch1 field changed
      • addedInput schema / properties / maxCostSats
        Added value: +{
        +  "description": "Most this call may pay, in sats. Pass the price the user saw in l402-fetch-preview so a server cannot charge more than it showed. Lowers MAX_AUTO_PAY_SATS for this call; never raises it.",
        +  "maximum": 9007199254740991,
        +  "minimum": 0,
        +  "type": "integer"
        +}
    • Changedl402-pay2 fields changed
      • changedInput schema / properties / invoice / description
        Previous value: -"BOLT-11 invoice to pay. Optional if paymentHash matches a cached challenge from l402-discover."New value: +"BOLT-11 invoice. Leave out when paying a challenge by paymentHash; any other invoice needs the human to approve it."
      • changedInput schema / properties / paymentHash / description
        Previous value: -"Payment hash to look up cached challenge from l402-discover."New value: +"Payment hash of a challenge from l402-fetch or l402-discover."
    • Addedl402-reconcile
  3. 11 tool updatesv4.2.1
    • First observedl402-balance
    • First observedl402-buy-credits
    • First observedl402-config
    • First observedl402-credentials
    • First observedl402-discover
    • First observedl402-fetch
    • First observedl402-fetch-preview
    • First observedl402-pay
    • First observedl402-redeem-cashu
    • First observedl402-search
    • First observedl402-store-token

TDQS

A3.9/5.0

Scored across 14 tools

Disambiguation3/5

Most tools have concrete, well-scoped jobs, but several read-only/status tools overlap: l402-credentials, l402-balance, l402-config, and l402-wallet-dashboard all expose balances, credentials, or wallet state, and l402-discover overlaps with l402-fetch-preview for discovering pricing. The descriptions help, but an agent could easily call the wrong one.

Naming Consistency3/5

All names share the l402- prefix and lowercase kebab-case, but the grammatical pattern is mixed: verb-noun actions like l402-store-token and l402-buy-credits sit beside bare verbs like l402-pay and l402-fetch and nouns like l402-config and l402-credentials. This is readable but not a predictable verb_noun convention.

Tool Count4/5

14 tools is within a reasonable range for an L402 payment server, and most tools serve a distinct workflow step. The count is slightly high because the status/introspection surface could be consolidated and l402-service-directory is essentially a wrapper around l402-search.

Completeness4/5

The payment lifecycle is well covered: discover, preview, fetch, pay, store tokens, buy credits, redeem cashu, and reconcile uncertain payments. Minor gaps remain, such as no explicit credential deletion/revocation or payment history beyond cached balances, but agents can work around these for core flows.

Maintenance

ActivityActive
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    MCP server that enables AI agents to make autonomous Bitcoin Lightning Network payments using the L402 protocol. Agents can pay for API access, purchase resources, and complete transactions without human intervention — invoice comes in, sats go out, done.
    17
    9
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to pay for MCP tool calls using either Bitcoin/Lightning (L402) or USDC (x402) rails, with unified settlement and a 21% discount for Bitcoin payments.
    32 npm
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server for the x402 protocol that lets AI agents discover and call payment-gated HTTP APIs automatically.
    144 npm
    Apache 2.0