# Lightning Enable MCP Server (oci · docker.io/refinedelement/lightning-enable-mcp:1.21.0)

AI agent Lightning payments: invoices, wallets, L402 access, API discovery, budgets, and commerce.

- Trust score: 39/100 (low)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-04

## Components

- nuget · `LightningEnable.Mcp`: 39/100, [markdown](https://verifymcp.io/servers/refined-element-lightning-enable-mcp/lightningenable-mcp.md), [page](https://verifymcp.io/servers/refined-element-lightning-enable-mcp/lightningenable-mcp)
- oci · `docker.io/refinedelement/lightning-enable-mcp:1.21.0`: 39/100 (this document), [markdown](https://verifymcp.io/servers/refined-element-lightning-enable-mcp/docker-io-refinedelement-lightning-enable-mcp-1-21-0.md), [page](https://verifymcp.io/servers/refined-element-lightning-enable-mcp/docker-io-refinedelement-lightning-enable-mcp-1-21-0)
- pypi · `lightning-enable-mcp`: 10/100, [markdown](https://verifymcp.io/servers/refined-element-lightning-enable-mcp/lightning-enable-mcp.md), [page](https://verifymcp.io/servers/refined-element-lightning-enable-mcp/lightning-enable-mcp)

## Channel facts

- Registry: `oci`
- Package: `docker.io/refinedelement/lightning-enable-mcp:1.21.0`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-04.

- **Supply Chain Security**: 0/100
  - Malware scan not yet available for this package.
  - CVE data not yet available for this package.
  - Install-script risk not yet assessed.
  - Dependency-health data not yet available.
- **Provenance & Transparency**: 45/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 1 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 74/100
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 2725 tokens (~104/item across 26 items; 26 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 0/100
  - Stability not yet verified: not enough scan history yet (needs a 30-day window).
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

**Unverified: 2 categories.** Categories scored 0 because we could not verify them: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

## Install

### Claude

```bash
claude mcp add refined-element-lightning-enable-mcp -- docker run --rm -i docker.io/refinedelement/lightning-enable-mcp:1.21.0
```

### Codex

```bash
codex mcp add refined-element-lightning-enable-mcp -- docker run --rm -i docker.io/refinedelement/lightning-enable-mcp:1.21.0
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "refined-element-lightning-enable-mcp": {
      "type": "local",
      "command": [
        "docker",
        "run",
        "--rm",
        "-i",
        "docker.io/refinedelement/lightning-enable-mcp:1.21.0"
      ],
      "enabled": true
    }
  }
}
```

### Hermes

```yaml
mcp_servers:
  refined-element-lightning-enable-mcp:
    command: "docker"
    args: ["run", "--rm", "-i", "docker.io/refinedelement/lightning-enable-mcp:1.21.0"]
```

### Other

```json
{
  "mcpServers": {
    "refined-element-lightning-enable-mcp": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "docker.io/refinedelement/lightning-enable-mcp:1.21.0"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-02 (score 39)

First indexed and scored.

## MCP tools (26)

### `access_l402_resource` (~167 tokens)

Fetch a URL with automatic L402 payment handling. If the server returns a 402 Payment Required response, the invoice will be automatically paid and the request retried.

Input parameters:

- `body` (string): Optional request body for POST/PUT requests
- `confirmation_nonce` (string): Confirmation code the human operator read from the server console, for payments above the auto-approve threshold. The code is NEVER in a tool result — ask the human for it. Omit on the first call to…
- `headers` (object): Optional additional request headers
- `max_sats` (integer): Maximum satoshis to pay for this request
- `method` (string): HTTP method (GET, POST, PUT, DELETE)
- `url` (string, required): The URL to fetch

### `test_l402_payment` (~144 tokens)

Self-test the Lightning wallet by paying the public 1-sat L402 test endpoint end to end. Proves the wallet is connected, returns a preimage, and can complete an L402 payment. Costs about 1 satoshi. Use this to verify setup or answer 'is my wallet actually working?'. If your budget config requires confirmation for this amount, the verdict is 'needs_confirmation' and the server prints a code to its console — re-run with confirmation_nonce set to that code.

Input parameters:

- `confirmation_nonce` (string): Confirmation code the human read from the server console, if a prior call returned test='needs_confirmation'. Omit on the first call.

### `pay_l402_challenge` (~170 tokens)

Manually pay an L402 or MPP invoice and receive the authorization token. Use this if you need to handle the L402/MPP flow yourself. Omit macaroon for MPP (Machine Payments Protocol) mode.

Input parameters:

- `confirmation_nonce` (string): Confirmation code the human operator read from the server console, for payments above the auto-approve threshold. The code is NEVER in a tool result — ask the human for it. Omit on the first call to…
- `invoice` (string, required): BOLT11 Lightning invoice string
- `macaroon` (string|null): Base64-encoded macaroon from the L402 challenge. Omit for MPP mode (preimage-only authentication).
- `max_sats` (integer): Maximum satoshis allowed for this payment

### `create_lightning_enable_account` (~191 tokens)

Self-bootstrapping signup: activate a Lightning Enable account with a tiny Lightning payment (~100 sats) and get back a merchant API key. Requires NO Lightning Enable API key (it CREATES one) — only a connected wallet. On success the API key is saved to ~/.lightning-enable/config.json so the producer/ASA tools unlock. Above-threshold fees require an out-of-band confirmation code (as with pay_l402_challenge).

Input parameters:

- `confirmation_nonce` (string): Confirmation code the human operator read from the server console, for an above-threshold activation fee. The code is NEVER in a tool result — ask the human for it. Omit on the first call to request…
- `email` (string, required): Email address to register the Lightning Enable account under.
- `max_sats` (integer): Maximum satoshis to pay for activation. The fee is ~100 sats.

### `check_wallet_balance` (~19 tokens)

Check the connected Lightning wallet balance via NWC.

### `get_payment_history` (~45 tokens)

List recent L402 payments made during this session.

Input parameters:

- `limit` (integer): Maximum number of payments to return
- `since` (string): ISO timestamp to filter payments from

### `get_receipts` (~90 tokens)

Read the durable, append-only payment receipt log (~/.lightning-enable/receipts.jsonl). Unlike get_payment_history (in-memory, this session only), receipts persist across sessions and include the spend policy and how to revoke the wallet. Use to review what an agent has spent and how to pull the plug.

Input parameters:

- `limit` (integer): Maximum number of recent receipts to return (1-200)

### `configure_budget` (~47 tokens)

Set spending limits for the session.

Input parameters:

- `per_request` (integer): Maximum satoshis per individual request
- `per_session` (integer): Maximum total satoshis for the entire session

### `pay_invoice` (~128 tokens)

Pay a Lightning invoice directly and get the preimage as proof of payment. Use this to pay any BOLT11 Lightning invoice without L402 protocol overhead.

Input parameters:

- `confirmation_nonce` (string): Confirmation code the human operator read from the server console, for payments above the auto-approve threshold. The code is NEVER in a tool result — ask the human for it. Omit on the first call to…
- `invoice` (string, required): BOLT11 Lightning invoice string to pay
- `max_sats` (integer): Maximum satoshis allowed to pay. Defaults to 1000

### `create_invoice` (~82 tokens)

Create a Lightning invoice to receive a payment. Returns a BOLT11 invoice string to share with the payer.

Input parameters:

- `amount_sats` (integer, required): Amount to receive in satoshis
- `expiry_secs` (integer): Invoice expiry time in seconds. Defaults to 3600 (1 hour)
- `memo` (string): Optional description/memo for the invoice

### `check_invoice_status` (~41 tokens)

Check if a Lightning invoice has been paid. Use the invoice ID from create_invoice.

Input parameters:

- `invoice_id` (string, required): The invoice ID returned from create_invoice

### `get_all_balances` (~34 tokens)

Get all currency balances from your wallet (USD, BTC, etc.). Most useful with Strike wallet which supports multiple currencies.

### `get_btc_price` (~24 tokens)

Get the current Bitcoin price in USD. Only available with Strike wallet.

### `exchange_currency` (~92 tokens)

Exchange currency within your wallet (USD to BTC or BTC to USD). Currently only available with Strike wallet.

Input parameters:

- `amount` (number, required): Amount in source currency (e.g., 100 for $100 or 0.001 for 0.001 BTC)
- `source_currency` (string, required): Currency to convert from: USD or BTC
- `target_currency` (string, required): Currency to convert to: BTC or USD

### `send_onchain` (~120 tokens)

Send an on-chain Bitcoin payment to a Bitcoin address. Currently only available with Strike wallet.

Input parameters:

- `address` (string, required): Bitcoin address to send to (e.g., bc1q...)
- `amount_sats` (integer, required): Amount to send in satoshis
- `confirmation_nonce` (string): Confirmation code the human operator read from the server console. On-chain sends always require it: the first call prints a code to the console (never in the result) and returns requiresConfirmation…

### `get_budget_status` (~31 tokens)

View current budget status and spending limits (read-only). Edit ~/.lightning-enable/config.json to change limits.

### `create_l402_challenge` (~126 tokens)

Create an L402 payment challenge to charge another agent or user for accessing a resource. Returns a Lightning invoice and macaroon. The payer must pay the invoice and present the L402 token (macaroon:preimage) back to you for verification. Requires LIGHTNING_ENABLE_API_KEY with an Agentic Commerce subscription.

Input parameters:

- `description` (string): Description shown on the Lightning invoice
- `price_sats` (integer, required): Price in satoshis to charge
- `resource` (string, required): Resource identifier - URL, service name, or description of what you're charging for

### `verify_l402_payment` (~100 tokens)

Verify an L402 token (macaroon + preimage) to confirm payment was made. Use this after receiving an L402 token from a payer to validate they paid before granting access to the resource. Requires LIGHTNING_ENABLE_API_KEY with an Agentic Commerce subscription.

Input parameters:

- `macaroon` (string, required): Base64-encoded macaroon from the L402 token
- `preimage` (string, required): Hex-encoded preimage (proof of payment)

### `confirm_payment` (~53 tokens)

Confirm a pending payment using the nonce code from a previous payment request. Call this after a payment tool returns requiresConfirmation=true with a nonce.

Input parameters:

- `nonce` (string, required): The 6-character confirmation code from the payment request

### `discover_api` (~181 tokens)

Discover L402-enabled APIs. Use 'query' to search the registry for available APIs by keyword, or use 'url' to fetch a specific API's manifest with full endpoint details and pricing. Use 'category' to browse by category. With budget_aware=true, shows how many calls you can afford.

Input parameters:

- `budget_aware` (boolean): If true, annotate endpoints with affordable call counts based on remaining budget. Default: true.
- `category` (string): Filter registry results by category (e.g., 'ai', 'data', 'finance').
- `query` (string): Search the L402 API registry by keyword (e.g., 'weather', 'ai', 'geocoding').
- `url` (string): Base URL of the L402-enabled API, or direct URL to the manifest JSON file. If omitted, searches the registry instead.

### `discover_agent_services` (~106 tokens)

Discover agent services on the Nostr network. Search by category, hashtag, or keyword. Returns capabilities published as kind 38400 events. Use this to find agents that offer services you can pay for via L402.

Input parameters:

- `category` (string): Filter by service category (e.g., 'ai', 'data', 'translation')
- `hashtags` (array): Filter by hashtags
- `limit` (integer): Maximum results to return
- `query` (string): Search query

### `publish_agent_capability` (~168 tokens)

Publish an agent capability advertisement to the Nostr network. Makes your agent discoverable by other agents. Creates a kind 38400 event. Optionally creates an L402 proxy for payment settlement. Requires LIGHTNING_ENABLE_API_KEY.

Input parameters:

- `categories` (array, required): Service categories (e.g., ['ai', 'translation'])
- `content` (string, required): Description of the service
- `hashtags` (array): Hashtags for discoverability
- `l402_endpoint` (string): L402 endpoint URL for payment settlement
- `price_sats` (integer, required): Price per request in satoshis
- `service_id` (string, required): Unique service identifier (used as d-tag)
- `target_url` (string): Target API URL (if auto-creating an L402 proxy via Lightning Enable)

### `request_agent_service` (~114 tokens)

Sends a service request (kind 38401 event) referencing the provider's capability. The provider responds with agreement/settlement terms; settle via settle_agent_service. If the provider has an L402 endpoint, you can skip this step and use settle_agent_service directly. Requires LIGHTNING_ENABLE_API_KEY.

Input parameters:

- `budget_sats` (integer, required): Maximum budget in satoshis
- `capability_event_id` (string, required): Event ID of the capability to request
- `parameters` (string): Additional parameters as a JSON string

### `publish_agent_attestation` (~127 tokens)

Publish an attestation (review) for an agent after a completed agreement. Creates a kind 38403 event that builds the agent's on-protocol reputation. Requires LIGHTNING_ENABLE_API_KEY.

Input parameters:

- `agreement_id` (string, required): Event ID of the agreement this review is for
- `content` (string, required): Free-text review content
- `proof` (string): Optional: hash of L402 payment preimage as proof of real transaction
- `rating` (integer, required): Rating from 1-5
- `subject_pubkey` (string, required): Pubkey of the agent being reviewed

### `get_agent_reputation` (~71 tokens)

Get an agent's reputation score and reviews. Queries kind 38403 attestation events for the given pubkey. Returns average rating and individual reviews.

Input parameters:

- `limit` (integer): Maximum number of attestations to return
- `pubkey` (string, required): Pubkey of the agent to query reputation for

### `settle_agent_service` (~254 tokens)

Settle an agent service agreement via L402 payment (CONSUMER/REQUESTER side). Pays the L402 endpoint specified in the agreement, completing the service transaction. Uses the same L402 auto-pay flow as access_l402_resource. The L402 endpoint URL comes from discover_agent_services or request_agent_service results. NOTE: If you are the PROVIDER (selling a service), use create_l402_challenge to generate a Lightning invoice at the agreed price, then verify_l402_payment to confirm payment before delivering the service.

Input parameters:

- `agreement_id` (string): Agreement event ID for tracking
- `body` (string): Optional request body for POST requests (e.g., service parameters as JSON)
- `confirmation_nonce` (string): Confirmation code the human operator read from the server console, for settlements above the auto-approve threshold. The code is NEVER in a tool result — ask the human for it. Omit on the first call…
- `l402_endpoint` (string, required): L402 endpoint URL from the service agreement
- `max_sats` (integer): Maximum satoshis to pay
- `method` (string): HTTP method (GET, POST, PUT, DELETE). Defaults to GET

## Diagnostics

Captured diagnostic sections: Provenance. The full working is on the page: https://verifymcp.io/servers/refined-element-lightning-enable-mcp/docker-io-refinedelement-lightning-enable-mcp-1-21-0#diagnostics

## Score history

- 2026-08-04: 39
- 2026-08-03: 39
- 2026-08-02: 39

## Links

- Repository: https://github.com/refined-element/lightning-enable-mcp
- Website: https://docs.lightningenable.com/products/l402-microtransactions/mcp-complete-guide
- Changelog RSS feed: https://verifymcp.io/servers/refined-element-lightning-enable-mcp/docker-io-refinedelement-lightning-enable-mcp-1-21-0/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/refined-element-lightning-enable-mcp/docker-io-refinedelement-lightning-enable-mcp-1-21-0/changelog.json
- HTML version of this page: https://verifymcp.io/servers/refined-element-lightning-enable-mcp/docker-io-refinedelement-lightning-enable-mcp-1-21-0
