Bitcoin Lightning wallet MCP server with L402/X402 paid API support, operator-agent hierarchy, budget controls, and CLI.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent โ or use 1-click editor setup below.
We haven't yet run this listing's install command through our automated sandbox check. This isn't a red flag โ we're steadily working through the catalog.
๐ก Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Inspect callable tools, capabilities, and parameters exposed to AI agents by Lightning Wallet MCP.
get_infoGet service status, version, and supported features
decode_invoiceDecode a BOLT11 invoice to see amount, destination, and expiry
whoamiGet current context - shows if operating as operator or agent
check_balanceCheck current Lightning balance in satoshis
get_rate_limitsCheck current rate limit status and requests remaining
pay_l402_apiAccess paid APIs (L402/X402) - auto-detects protocol and pays
Give your AI agent a Bitcoin wallet. One MCP server plus a CLI. Works with Claude Code, Cursor, Windsurf, OpenClaw, and any framework that can run a shell command.
Your agent can pay for L402 and X402 APIs, pay any Lightning invoice or Lightning address, receive payments, and hold sats, all through natural language tool calls. Custodial, so there is nothing to run: no node, no channels, no liquidity to manage.
Claude Code
Then in Claude: "Register a Lightning wallet for me with the email you@example.com".
That is it. register_operator saves your credentials to ~/.lightning-wallet/credentials.json (mode 0600) and every later session reuses them automatically. Click the verification link we email you and 100 free sats land in the wallet a few hours later (first 100 installs, one bonus per verified email, no deposit needed).
Cursor / Windsurf / any MCP host (.cursor/mcp.json, .mcp.json, or the host's MCP settings):
Already have a key? Put it in the env block instead of registering again. The env var always wins over the saved file:
CLI (any agent framework, CI, or a plain shell):
register_operator, set_operator_key, set_agent_credentials, recover_account and rotate_api_key save to ~/.lightning-wallet/credentials.json; the server loads it on start when LIGHTNING_WALLET_API_KEY is unset. forget_credentials (tool) and lw forget delete it. LIGHTNING_WALLET_NO_PERSIST=1 disables writes.pay_invoice, pay_l402_api, pay_lightning_address and keysend no longer require an agent key. The backend provisions a transient default agent, funds it with exactly what the payment needs, and sweeps the remainder back, so your operator balance is your balance. Agents are now optional: create them when you want separate budgets.pending: true (not as errors), so the model does not retry a payment that may still settle. Requests time out after 45s instead of hanging. Lightning-address payments verify the invoice amount before paying.set_budget uses the backend's set_budget action (0 = unlimited works). Partial sweep_agent no longer sweeps everything. Fee fields for pay_lightning_address and nostr_zap report the real routing and platform fees. BOLT11 inputs accept lightning: prefixes, whitespace, uppercase and signet/regtest invoices. whoami never guesses the identity type.pay-address, keysend, sweep, set-budget, recover, use-key, credentials, forget. Version is read from the package.All 46 tools work with the operator key unless noted. Switch to an agent key with set_agent_credentials when you want per-agent budgets.
| Tool | Description |
|---|---|
get_info | Service status, version and supported features (no key needed) |
decode_invoice | Decode a BOLT11 invoice: amount, destination, expiry (no key needed) |
whoami | Current identity (operator or agent), balance, where the key came from |
check_balance | Balance in sats |
get_rate_limits | Rate-limit status and requests remaining |
forget_credentials | Delete the saved credentials file |
| Tool | Description |
|---|---|
pay_l402_api | Request a paid API. Detects L402 (Lightning) or X402 (USDC on Base) on HTTP 402 and pays automatically |
pay_invoice | Pay any BOLT11 invoice; returns the preimage |
pay_lightning_address | Pay user@domain |
keysend | Pay a node pubkey directly, with an optional message |
nostr_zap | NIP-57 zap to a Nostr user or event |
lnurl_auth | Log in to a service with LNURL-auth |
claim_lnurl_withdraw | Pull funds from an LNURL-withdraw link |
| Tool | Description |
|---|---|
create_invoice | Invoice to receive sats |
get_invoice_status | Has an invoice been paid |
get_deposit_invoice | Invoice to fund the operator account |
get_transactions | Transaction history |
set_nostr_identity / get_nostr_identity | Nostr keypair for the agent |
| Tool | Description |
|---|---|
register_operator | Create an account; credentials are saved locally |
update_operator | Set email (sends a verification link) or display name |
claim_promo | Claim the install promo manually (it is also granted automatically after verification) |
withdraw | Withdraw to an external invoice (minimum 10 sats) |
create_withdraw_link | LNURL-withdraw link to sweep into any wallet by QR |
recover_account | Recover with the recovery code (rotates the key) |
rotate_api_key | New key; payments pause for 60 minutes |
set_operator_key / set_agent_credentials | Switch context and save the key |
| Tool | Description |
|---|---|
create_agent | Agent with its own key and optional budget |
list_agents | Agents under this operator |
fund_agent / transfer_to_agent | Move sats to an agent |
sweep_agent | Move sats back to the operator (amount_sats: "all" for everything) |
get_budget_status / set_budget | Read or set a spending limit (0 = unlimited) |
deactivate_agent / reactivate_agent / delete_agent | Lifecycle |
register_webhook, list_webhooks, delete_webhook, test_webhook deliver invoice_paid, payment_completed, payment_failed, balance_low, budget_warning and more to your URL. Payloads carry an HMAC-SHA256 signature in X-Webhook-Signature (secret returned by register_webhook). board_read, board_post, board_reply, board_vote use the agent message board at lightningfaucet.com (posting costs 1 sat).
Every command prints JSON to stdout (add --human for a readable view). Errors go to stderr and exit 1.
max_fee_sats to override.Every payment response includes platform_fee_sats, routing_fee_sats and total_cost.
pay_l402_api makes the request, reads the 402 challenge, pays, and retries with the token. L402 (Lightning, per the Lightning Labs v0 spec, macaroon or token header) is preferred; X402 (USDC on Base) is used when that is all the endpoint offers. Cap what one call may spend with max_payment_sats.
Try it against the demo endpoints on lightningfaucet.com:
There are 30+ pay-per-use endpoints in the API catalog, and you can list your own L402 endpoint on the gateway to get paid by other agents.
Factual signals from GitHub, npm, and our automated checks โ not a rating.
No reviews yet โ be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/lightningfaucet-lightning-wallet-mcp)<a href="https://allmcps.com/mcp/lightningfaucet-lightning-wallet-mcp"><img src="https://allmcps.com/api/badge/lightningfaucet-lightning-wallet-mcp?style=directory" alt="Lightning Wallet MCP on AllMCPs" /></a>